java - 在 weka java API 上评估新数据时出错

标签 java nullpointerexception weka

当我尝试在已经训练的分类器上评估新的测试数据时,它给我带来了空点异常。

这是代码

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)

我无法毫无问题地打印数据集。这是什么问题?为什么会发生以及如何解决它?

最佳答案

当您使用evaluateModel时,您需要首先在训练集上构建分类器。

cls.buildClassifier(data);

关于java - 在 weka java API 上评估新数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26989337/

相关文章:

java - 什么是NullPointerException,我该如何解决?

machine-learning - 数据挖掘中如何从决策树生成规则?

weka - 在 weka 中对来自 ARFF 的数据进行分类

java - 将 C++ 连接到 ActiveMQ 代理

java - 如何区分安装的java - JDK还是JRE

java - 从 servlet 到 jsp 的请求调度程序出现问题

android - 尝试删除 Android Firebase 中的项目时出现空指针异常

java - 什么是 NullPointerException,我该如何解决?

所有平台上的java

java - Weka工具: how to convert txt files into arff format?