2016-04-23 60 views
0

我有一个接受两个文件,测试和培训,并使用下面的代码执行Logistic回归的应用程序:Weka的:评估UpdateMargins ArrayIndexOutOfBoundsException异常

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,所以它必须是我做错了什么?
  • 我都使用相同的文件作为测试和训练尝试 - 它是由有类似的问题,在列车文件中的值没有被分类处理就有人提议,但是这还没有做出区别。
  • 我已确保在任何文件中都没有缺失值。
  • 如果只有一个在测试文件实例,它不会产生这个错误。

我做了什么错?

回答

0

请检查你是不是工作的训练数据集,你可能不会提供任何。此外检查你的算法的主循环可能有任何逻辑错误。我在simplekmeans.java中添加我的算法时收到了同样的错误,罪魁祸首是while循环。