【问题标题】:How can I access Weka produced Naive Bayes trees in Java?如何在 Java 中访问 Weka 生成的朴素贝叶斯树?
【发布时间】:2019-03-27 22:17:30
【问题描述】:

根据我对朴素贝叶斯分类器的理解,基于“证据”(训练集)为每个标签(或可能性)生成一棵树。使用这些树可以对未来的例子进行预测,例如实例是否可以归类为“异常”或“正常”。

在 weka 库中是否有一种方法可以让我直观地输出每个标签树?或者用 Java 访问这些树?

谢谢

【问题讨论】:

    标签: java weka naivebayes


    【解决方案1】:

    朴素贝叶斯不会生成树,因此可能值得研究使用可以生成树的分类器,例如 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);
    

    *注意,默认也会打印到分类器输出窗口中。

    【讨论】:

      猜你喜欢
      • 2013-04-18
      • 2012-04-09
      • 2019-11-26
      • 2016-02-05
      • 2016-08-25
      • 2011-02-23
      • 2012-03-24
      • 2012-02-21
      • 2011-12-28
      相关资源
      最近更新 更多