2016-04-23 10 views
0

私は2つのファイル、テストや電車を受け入れ、次のコードを使用してロジスティック回帰を実行しているアプリケーションがあります。ウェカ:評価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をエクスプローラで使用するときに期待通りに機能するので、間違っているはずです。
  • 私はテストと訓練と同じファイルを使用しようとしました。列車ファイルの値がクラシファイアで処理されていないという同様の問題を抱えている人からは示唆されていましたが、違いはありません。
  • どちらのファイルにも欠損値がないことを確認しました。
  • テストファイルにインスタンスが1つしかない場合、このエラーは生成されません。

どうしたのですか?

答えて

0

訓練データセットを提供していない可能性があるので、訓練データセットで作業していないことを確認してください。さらに、あなたのアルゴリズムのメインループをチェックして、論理エラーがあるかもしれません。私はsimplekmeans.javaで私のアルゴリズムを追加している間に同じエラーを受け取りました。そして、犯人はwhileループでした。