【发布时间】:2019-03-27 22:17:30
【问题描述】:
根据我对朴素贝叶斯分类器的理解,基于“证据”(训练集)为每个标签(或可能性)生成一棵树。使用这些树可以对未来的例子进行预测,例如实例是否可以归类为“异常”或“正常”。
在 weka 库中是否有一种方法可以让我直观地输出每个标签树?或者用 Java 访问这些树?
谢谢
【问题讨论】:
标签: java weka naivebayes
根据我对朴素贝叶斯分类器的理解,基于“证据”(训练集)为每个标签(或可能性)生成一棵树。使用这些树可以对未来的例子进行预测,例如实例是否可以归类为“异常”或“正常”。
在 weka 库中是否有一种方法可以让我直观地输出每个标签树?或者用 Java 访问这些树?
谢谢
【问题讨论】:
标签: java weka naivebayes
朴素贝叶斯不会生成树,因此可能值得研究使用可以生成树的分类器,例如 J48。树分类器可以在 WEKA GUI 客户端的 weka/classifiers/trees/ 目录下找到。
朴素贝叶斯分类器的一个例子是:
而基于树的分类器(例如 J48)的示例是:
可以在 WEKA GUI 和使用 Java 中访问此树。如果使用 WEKA GUI,可以通过右键单击分类结果并按 Visualize tree 来可视化树 *:
在 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);
*注意,默认也会打印到分类器输出窗口中。
【讨论】: