书读的少,翻译的不好别打我
文章地址:http://weka.wikispaces.com/Generating+classifier+evaluation+output+manually
在命令行执行分类时,下面的这些代码片段可以解释怎么生成weka输出生成器。可以在 Evaluation类中参考 weka.classifiers.Evaluation。这篇文章仅仅作为综述,需要了解细节的参考 Evaluation类的文档。
模型
如果一个分类器支持输出模型,那么可以在训练之后使用toString()方法。
Instances data = ... // from somewhere Classifier cls = new weka.classifiers.trees.J48(); cls.buildClassifier(data); System.out.println(cls);
统计
统计也可以叫做评估的总结。可以通过toSummaryString()方法产生。下面是一个J48交叉验证产生总结的例子。
Classifier cls = new J48(); Evaluation eval = new Evaluation(data); Random rand = new Random(1); // using seed = 1 int folds = 10; eval.crossValidateModel(cls, data, folds, rand); System.out.println(eval.toSummaryString());
你可以使用toClassDetailsString()方法,来对每个类产生详细的统计(通过 -i 命令行)。下面再次使用J48交叉验证的列子。
Classifier cls = new J48(); Evaluation eval = new Evaluation(data); Random rand = new Random(1); // using seed = 1 int folds = 10; eval.crossValidateModel(cls, data, folds, rand); System.out.println(eval.toClassDetailsString());
混淆矩阵是使用 Evaluation 类的简单的toMatrixString() 或者 toMatrixString(String)方法来进行输出。下面使用基于数据集的J48交叉验证,来输出标准混淆矩阵。
Classifier cls = new J48(); Evaluation eval = new Evaluation(data); Random rand = new Random(1); // using seed = 1 int folds = 10; eval.crossValidateModel(cls, data, folds, rand); System.out.println(eval.toMatrixString());