Как я могу получить доступ к произведенным Weka наивным байесовским деревьям на Яве? - PullRequest
0 голосов
/ 23 октября 2018

Из того, что я понимаю о наивном байесовском классификаторе, для каждого ярлыка (или возможности) создается дерево, основанное на «доказательствах» (обучающих наборах).Используя эти деревья, можно сделать прогнозы для будущих примеров, например, можно ли классифицировать экземпляр как «аномалию» или «нормальность».

Есть ли в библиотеке weka способ для меня визуально вывести каждое дерево меток?Или получить доступ к этим деревьям в Java?

Спасибо

1 Ответ

0 голосов
/ 27 октября 2018

Наивный Байес не производит дерево, поэтому, возможно, стоит рассмотреть использование классификатора, такого как J48.Классификаторы дерева можно найти в каталоге weka / classifiers / trees / в клиентском интерфейсе WEKA.

Пример наивного байесовского классификатора:

enter image description here

В то время как пример классификатора на основе дерева, такого как J48:1012 *

enter image description here

Доступ к этому дереву возможен как в графическом интерфейсе WEKA, так и в Java.При использовании графического интерфейса пользователя WEKA дерево можно визуализировать, щелкнув правой кнопкой мыши результат классификации и нажав Визуализировать дерево *:

enter image description here

В Java дерево можно распечатать в консоли, напечатав сам объект классификатора следующим образом:

    //Get File
    reader = new BufferedReader(new FileReader(path + "/ArffFile.arff"));

    //Get the data
    Instances data = new Instances(reader);
    reader.close();

    //Setting class attribute
    data.setClassIndex(data.numAttributes() - 1);

    //Make tree
    J48 tree = new J48();
    String[] options = new String[1];
    tree.buildClassifier(data);

    //Print tree
    System.out.println(tree);

* Обратите внимание, что по умолчанию оно также будет напечатано в окне вывода классификатора.

...