我正在尝试使用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
是如何获得的?
谢谢
答案 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
找到针对不同方案的评估类的详细用法