Weka:评估UpdateMargins ArrayIndexOutOfBoundsException

时间:2016-04-23 12:31:31

标签: java weka indexoutofboundsexception

我有一个应用程序接受两个文件,测试和训练,并使用以下代码执行Logistic回归:

Logistic logisticRegression = new Logistic(); logisticRegression.buildClassifier(_data); Evaluation evaluation = new Evaluation(_data); evaluation.evaluateModel(logisticRegression, _testData);

我得到以下异常:

java.lang.ArrayIndexOutOfBoundsException: 9 at weka.classifiers.Evaluation.updateMargins(Evaluation.java:3734) at weka.classifiers.Evaluation.updateStatsForClassifier(Evaluation.java:3602) at weka.classifiers.Evaluation.evaluateModelOnceAndRecordPrediction(Evaluation.java:1517) at weka.classifiers.Evaluation.evaluateModel(Evaluation.java:1480)

有问题的文件有11个属性和342条记录,所以这个错误让我很困惑。

  • 当通过资源管理器使用Weka时,这些文件按预期工作,所以它一定是我做错了吗?
  • 我尝试使用相同的文件作为测试和训练 - 有人提出类似的问题,列车文件中的值没有被分类器处理,但这没有什么区别。
  • 我确保两个文件中都没有缺失值。
  • 如果测试文件中只有一个实例,则不会生成此错误。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

请检查您是否正在处理训练数据集,因为您可能没有提供任何数据集。此外,检查算法的主循环可能存在任何逻辑错误。我在simplekmeans.java中添加算法时收到了同样的错误,罪魁祸首是while循环。