Я пытаюсь протестировать один экземпляр, используя weka API в Java. Моя цель — предсказать значение класса одного экземпляра в файле 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. Как мне предсказать метку и какие изменения необходимо внести в набор данных и код?
Я попытался скомпилировать java-файл с помощью "javac -cp"/classpath" WekaNew.java", он дает следующую ошибку: "Не найден подходящий метод для оценкиModelOnce()"
Новое для Weka API и Java в целом. Заранее приносим извинения, если вопрос покажется повторяющимся.
Я также упомянул следующие вопросы в Stackoverflow, 1. Протестируйте один экземпляр в weka, у которого нет метки класса 2. Протестируйте один экземпляр в Weka, но, похоже, это не решает мою проблему.