将 Weka 分类器的结果写入 Java 文件 [英] Writing the results of Weka classifier to file in Java

查看:38
本文介绍了将 Weka 分类器的结果写入 Java 文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用Java代码在Weka中生成决策树如下:

I am generating decision trees in Weka in Java code as follows:

        J48 j48DecisionTree = new J48();   
        Instances data = null;
        data = new Instances(new BufferedReader(new FileReader(dt.getArffFile())));              
        data.setClassIndex(data.numAttributes() - 1);
        j48DecisionTree.buildClassifier(data);

是否可以将Weka结果缓冲区的结果保存到程序中的文本文件中,以便在运行时将以下内容保存到文本文件中:

Can I save the results of the Weka results buffer to a text file in the program, such that the following can be saved at run-time to a text file:

=== 分层交叉验证 ====== 总结 ===

=== Stratified cross-validation === === Summary ===

Correctly Classified Instances         229               40.1754 %
Incorrectly Classified Instances       341               59.8246 %
Kappa statistic                          0.2022
Mean absolute error                      0.1916
Root mean squared error                  0.3138
Relative absolute error                 80.8346 %
Root relative squared error             91.1615 %
Coverage of cases (0.95 level)          96.3158 %
 Mean rel. region size (0.95 level)      70.9774 %
Total Number of Instances              570     

=== Detailed Accuracy By Class ===

           TP Rate   FP Rate   Precision   Recall  F-Measure   ROC Area  Class
             0.44      0.012      0.786     0.44      0.564      0.76     Business and finance and economics
             0         0          0         0         0          0.616    Fashion and celebrity lifestyle
             0.125     0.01       0.667     0.125     0.211      0.663    Film
             0         0.002      0         0         0          0.617    Music
             0.931     0.78       0.318     0.931     0.474      0.633    News and current affairs
             0.11      0.006      0.786     0.11      0.193      0.653    Science and nature and technology
             0.74      0.012      0.86      0.74      0.796      0.85     Sport

加权平均.0.402 0.224 0.465 0.402 0.316 0.667

Weighted Avg. 0.402 0.224 0.465 0.402 0.316 0.667

=== Confusion Matrix ===

  a   b   c   d   e   f   g   <-- classified as
 22   0   0   0  25   2   1 |   a = Business and finance and economics
  0   0   1   0  59   0   0 |   b = Fashion and celebrity lifestyle
  0   0  10   1  69   0   0 |   c = Film
  0   0   1   0  69   0   0 |   d = Music
  5   0   2   0 149   0   4 |   e = News and current affairs
  1   0   0   0  87  11   1 |   f = Science and nature and technology
  0   0   1   0  11   1  37 |   g = Sport

dt 是我的一个类的实例,用来表示决策树的细节.

dt is an instance of a class of mine to represent decision tree details.

当我运行大量分类器时,这会有所帮助.

As I'm running a large number of classifiers, this would help somewhat.

推荐答案

是的,这是可以做到的.但是需要在 Weka 中创建一个 Evaluation 的实例,并从该实例中调用相应的方法:

Yes, this can be done. But you need to create an instance of Evaluation in Weka and call the appropriate methods from the instance:

Evaluation eval = new Evaluation(data);
eval.evaluateModel(j48DecisionTree, data);
System.out.println(eval.toSummaryString("\nResults\n======\n", true));

会给出一个总结.

但随后的方法如:

eval.pctCorrect();

可以调用.请参阅 Weka Javadoc 了解更多信息.

Can be called. See Weka Javadoc for further info.

这篇关于将 Weka 分类器的结果写入 Java 文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆