Java で weka API を使用して単一のインスタンスをテストしようとしています。私の目的は、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 には、132 個のデータ インスタンスとともに 7 (属性) + 1 (クラス ラベル) があります。test.arff には、7 つの属性 + 1 つのクラス label=? があります。1 つのインスタンスで。
test.arff 内の単一インスタンスのクラス ラベルを予測したいと考えています。ラベルを予測するにはどうすればよいですか?また、データセットとコードにどのような変更を加える必要がありますか?
"javac -cp "/classpath" WekaNew.java" で Java ファイルをコンパイルしようとしましたが、「evaluateModelOnce() に適したメソッドが見つかりません」というエラーが発生します。
Weka API と Java 全般の新機能。質問が繰り返される場合は、事前にお詫び申し上げます。
また、Stackoverflow で次の質問を参照しました。 1. クラスラベルのない weka で単一インスタンスをテストします 。