Java 如何使用我构建的模型在Weka中测试单个实例?

Java 如何使用我构建的模型在Weka中测试单个实例?,java,api,machine-learning,weka,j48,Java,Api,Machine Learning,Weka,J48,我试图在Java中使用WEKAAPI测试单个实例。我的目标是预测test.arff文件中单个实例的类值 我的java代码如下所示 import weka.core.Instances; import weka.classifiers.Evaluation; import weka.classifiers.trees.J48; import weka.classifiers.*; import java.io.*; import java.util.Random; public class W

我试图在Java中使用WEKAAPI测试单个实例。我的目标是预测test.arff文件中单个实例的类值

我的java代码如下所示

import weka.core.Instances;
import weka.classifiers.Evaluation;
import weka.classifiers.trees.J48;
import weka.classifiers.*;

import java.io.*;
import java.util.Random;

public class WekaNew {

    public static void main(String[] args) throws Exception{
        // TODO Auto-generated method stub
        System.out.println("Weka Tool");

        BufferedReader breader = new BufferedReader(new FileReader("train.arff"));
        Instances train = new Instances(breader);
        train.setClassIndex(train.numAttributes() -1);
        breader.close();    //loading training data

        BufferedReader treader = new BufferedReader(new FileReader("test.arff"));
        Instances test = new Instances(treader);
        test.setClassIndex(test.numAttributes() -1);
        treader.close();        //loading testing data

        Classifier cls = new J48();
        cls.buildClassifier(train);

        Evaluation eval = new Evaluation(train);
        eval.evaluateModelOnce(cls,test);

        System.out.println(eval.toMatrixString("\nConfusion Matrix\n========\n"));

    }

}
train.arff有7个(属性)+1个(类标签)以及132个数据实例。 test.arff有7个属性+1个类标签=?有一个例子

我想预测test.arff中单个实例的类标签。 我如何预测标签以及需要在数据集和代码中进行哪些更改

我尝试通过“javac-cp”/classpath“WekaNew.java”编译java文件 ,它给出以下错误“找不到适合evaluateModelOnce()的方法”

Weka API和Java的新增功能。如果问题重复,请提前道歉。

我在Stackoverflow中也提到了以下问题:, 1. 2.
但这似乎并不能解决我的问题。

这是evaluateModelOnce的签名:

public double evaluateModelOnce(Classifier classifier,
                                Instance instance)
(见附件)

但是,传递的是“实例”而不是“实例”,它们是不同的类。因此,这是一个语法错误

要评估单个Weka实例,您可能需要尝试

    eval.evaluateModelOnce(cls,instances.firstInstance());

谢谢!工作起来很有魅力!有什么方法可以识别测试实例的类标签吗?你能详细说明你想做什么吗?您已经知道类标签位于
test.numAttributes()-1
,对吗?