在命令行中导出 Weka 预测
Posted
技术标签:
【中文标题】在命令行中导出 Weka 预测【英文标题】:Exporting Weka predictions in command line 【发布时间】:2014-04-04 01:19:44 【问题描述】:我能够在 GUI 中成功导出分类器错误,但无法在命令行中执行此操作。有没有办法在命令行上完成这个?
我正在使用 Weka 3.6.x。在这里,您可以右键单击您的模型,选择“可视化分类器错误”并从那里保存数据(包括预测)。我想在命令行上做同样的事情。
我并不真正关心文件格式(arff 或 csv 都可以),但重要的是我得到测试数据的每个实例的错误值。
我之前在 [this question] 中问过这个问题。 (Weka Predictions to CSV)
【问题讨论】:
【参考方案1】:您可以使用每个分类器中可用的以下选项在命令行中获取预测、概率等:
-classifications "weka.classifiers.evaluation.output.prediction.AbstractOutput + options"
Uses the specified class for generating the classification output.
E.g.: weka.classifiers.evaluation.output.prediction.PlainText
-p range
Outputs predictions for test instances (or the train instances if
no test instances provided and -no-cv is used), along with the
attributes in the specified range (and nothing else).
Use '-p 0' if no attributes are desired.
Deprecated: use "-classifications ..." instead.
-distribution
Outputs the distribution instead of only the prediction
in conjunction with the '-p' option (only nominal classes).
Deprecated: use "-classifications ..." instead.
例如,在天气数据集上使用 NaiveBayes:
$ java weka.classifiers.bayes.NaiveBayes -t weather.nominal.arff -classifications weka.classifiers.evaluation.output.prediction.PlainText
=== Predictions under cross-validation ===
inst# actual predicted error prediction
1 2:no 1:yes + 0.926
2 1:yes 1:yes 0.825
1 2:no 1:yes + 0.636
2 1:yes 1:yes 0.808
1 2:no 2:no 0.718
2 1:yes 2:no + 0.656
1 2:no 1:yes + 0.579
2 1:yes 1:yes 0.541
1 2:no 1:yes + 0.515
1 1:yes 2:no + 0.632
1 1:yes 1:yes 0.84
1 1:yes 1:yes 0.554
1 1:yes 1:yes 0.757
1 1:yes 1:yes 0.778
输出是制表符分隔的。
【讨论】:
以上是关于在命令行中导出 Weka 预测的主要内容,如果未能解决你的问题,请参考以下文章
使用自己的 Java 代码和模型在 WEKA 中获取预测百分比