在命令行中导出Weka预测

时间:2014-03-03 05:21:24

标签: output classification weka

我能够在GUI中成功导出分类器错误,但无法在命令行中执行此操作。有没有办法在命令行上完成此操作?

我正在使用Weka 3.6.x.在这里,您可以右键单击模型,从中选择“可视化分类器错误”并保存数据(包括预测)。我想在命令行上做同样的事情。

我真的不关心文件格式(arff或csv没关系),但重要的是我得到每个&的错误值。每个测试数据的实例。

我之前在[这个问题]中问了这个问题。 (Weka Predictions to CSV

1 个答案:

答案 0 :(得分:3)

您可以使用每个分类器中提供的以下选项在命令行中获取预测,概率等:

-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

输出以制表符分隔。