java weka 回归输出_在Java中使用weka:手动生成并输出对分类器的评估

书读的少,翻译的不好别打我

文章地址: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);

注意:weka总是基于完全训练集(提供 -t 属性)输出模型,不管交叉验证是否被使用,或者是一个指定的测试集(via-T),十字交叉验证产生的10个模型从来没被输出过。如果你想输出这些模型,你必须自己模拟十字交叉验证(参考

Generating cross-validation folds (Java approach) 和

Displaying results of cross-validation folds)。

统计

统计也可以叫做评估的总结。可以通过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());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值