私はWekaを使ってテキスト分類を行っています。 Weka GUIを使用してNaiveBayesモデルを作成しました。このモデルを保存してから、このモデルを使用してトレーニングセットのインスタンスを分類しようとしていました。私は次のエラーを取得していますWekaをJavaで使用してテストデータを分類するための訓練モデルを適用できません
Classifier clsClassifier = (Classifier) weka.core.SerializationHelper.read("Source/test/80percentModel.model");
StringToWordVector filter = new StringToWordVector();
BufferedReader reader = new BufferedReader(
new FileReader("Source/test/clt.train.arff"));
Instances trainingData = new Instances(reader);
reader.close();
trainingData.setClassIndex(trainingData.numAttributes() - 1);
filter.setInputFormat(trainingData);
BufferedReader reader2 = new BufferedReader(
new FileReader("Source/test/clt.test.arff"));
Instances testingData = new Instances(reader2);
reader2.close();
testingData.setClassIndex(testingData.numAttributes() - 1);
testingData = Filter.useFilter(testingData, filter);
System.out.println(testingData.numInstances());
for (int j = 0; j < testingData.numInstances(); j++) {
double res = clsClassifier.classifyInstance(testingData.get(j));
System.out.println(testingData.classAttribute().value((int)res));
}
:
java.lang.IllegalArgumentExceptionが:Srcとdestは、属性の#で異なる:1 = weka.core.RelationalLocatorで1781 !これは私のコードです。 weka.filters.unsupervised.attributeの にあるweka.filters.Filter.copyValues(Filter.java:405) の場合は、 StringToWordVector.input(StringToWordVector.java:655) at weka.classifiers.meta.FilteredClassifier.filterInstance(FilteredClassifier.java:672) test.WekaClassification.mainでweka.classifiers.AbstractClassifier.classifyInstance(AbstractClassifier.java:173) でweka.classifiers.meta.FilteredClassifier.distributionForInstance(FilteredClassifier.java:699) で(WekaClassification.java:66)
私はここで間違っていることをかなり得ていません。なぜ属性の数に不一致がありますか?これは、訓練されたモデルをtestDataセットに適用する正しい方法ですか?
トレーニングデータとテストデータのサンプルを使用して更新できますか?ちょうど少数のそれぞれの例。 Wekaは、テストデータがトレーニングデータとまったく同じ属性を持つことを要求します。 – SJB
トレーニングデータがある: #relation 'myrelationName' #attribute MYTEXT列 #attribute MyClassの{fireperformance、地震、原材料、水分を(@を返信しながらユーザを指すために使用されるように)代わりの@#を使用して、市場、振動} #data 'someText'、振動 'someText'、fireperformance 'someText'、地震 ________________________________________ TESTDATA #relation 'myrelationName' #attribute MYTEXT列 #attribute MyClassの{fireperformance、地震、原材料、水分、市場、振動} #data 'someText' ,? 'someText' ,? 'someText'、? –