Когда я пытаюсь оценить новые данные тестирования уже обученного классификатора, он приносит мне исключение в виде исключения.Ошибка при оценке новых данных по API-интерфейсу weka java
Вот код
String[] optionsj = new String[2];
optionsj[0] = "-C";
optionsj[1] = "0.25";
// a decision tree
//Training
Classifier cls = new J48();
cls.setOptions(optionsj);
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());
System.out.println(eval.toClassDetailsString());
//Testing
Evaluation evaltest = new Evaluation(data);
evaltest.evaluateModel(cls, data2); // line 193
System.out.println(evaltest.toSummaryString());
//data and data2 are two instances of same dataset.
Ошибка я получаю
Exception in thread "main" java.lang.NullPointerExceptionat
at weka.classifiers.trees.J48.distributionForInstance(Unknown Source)
at weka.classifiers.Evaluation.evaluateModelOnceAndRecordPrediction(Unknown Source)
at weka.classifiers.Evaluation.evaluateModel(Unknown Source)
at dentis.Simplified.main(Simplified.java:193)
Я не могу напечатать набор данных без проблем. Что это за проблема? почему это происходит и как это исправить?
Является ли линия, которая рушится на линии 193, вызовет метода оценки? Кроме того, кажется странным, что J48 упоминается в вашей трассировке стека, когда вы используете MLP. –
opz извините, я использовал разные классификаторы MLPNet, и я отправляю неправильный код segmant. сделано исправлено –
Вы только что написали трассировку стека? Есть что-то о «многослойном сценарии», которое кажется не совсем правильным. Возможно, скопируйте фактическое сообщение трассировки стека, пожалуйста :) –