如果使用单独的测试,如何获得预测的评估摘要

时间:2018-04-04 08:04:20

标签: java weka evaluation

我正在尝试使用weka通过java代码评估分类结果。代码如下:

     fc.buildClassifier(train);

 for (int i = 0; i < test.numInstances(); i++) {
   double pred = fc.classifyInstance(test.instance(i));

    if(test.classAttribute().value((int) test.instance(i).classValue()).equals(test.classAttribute().value((int) pred))){
        System.out.println("ID: " + test.instance(i).value(0)+" -");
    }
    else{
       System.out.println("ID: " + test.instance(i).value(0)+" +");
    }
 }

使用交叉验证时,可以将其视为:

     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());

但是,如果测试是作为第一个代码段实现的,那么toSummaryString是如何获得的?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用以下行。

Evaluation testEval = new Evaluation(trainInstances);
testEval.evaluateModel(Model, testInstances);
testEval.toSummaryString()

可以在https://www.programcreek.com/java-api-examples/index.php?api=weka.classifiers.Evaluation

找到针对不同方案的评估类的详细用法