一日同じ問題に苦しんだ後。トレーニング済みのモデルを提供されたテスト セットで動作させる 2 つの方法を考え出しました。
方法 1. ナレッジ フローを使用する。たとえば、次のようなものです: CSVLoader(トレイン セット用) -> classAssigner -> TrainingSetMaker -> (選択した分類子) -> ClassfierPerformanceEvaluator - TextViewer。CSVLoader (テスト セット用) -> classAssigner -> TestgSetMaker -> (上記と同じ分類子インスタンス) -> PredictionAppender -> CSVSaver。次に、トレーニング セットの CSVLoader または arffLoder からデータを読み込みます。モデルがトレーニングされます。その後、テスト セットのローダーからデータをロードします。提供されたテスト セットでモデル (分類子など) を評価し、(ClassifierPerformanceEvaluator に接続された) textviewer から結果を確認し、PredictionAppender に接続された CSVSaver または arffSaver から保存された結果を取得できます。追加の列、 「として分類された」出力ファイルに追加されます。私の場合、「?」を使用しました。クラス ラベルが利用できない場合は、提供されたテスト セットのクラス列に。
方法 2. トレーニング セットとテスト セットを 1 つのファイルに結合します。次に、まったく同じフィルターをトレーニング セットとテスト セットの両方に適用できます。次に、インスタンス フィルターを適用して、トレーニング セットとテスト セットを分離できます。「?」を使っているので テスト セットのクラス ラベルとして。インスタンス フィルタ インデックスには表示されません。したがって、インスタンス フィルターを適用するときに削除する属性値に表示されるインデックスを選択するだけです。テストデータのみが残ります。それを保存し、分類子ページのサプライ テスト セットにロードします。今回は機能します。互換性のない列車とテストセットの問題を引き起こすのはクラス属性だと思います。名義クラス属性を必要とする分類子の数だけ。その値は、次に従ってクラス属性の使用可能な値へのインデックスに変換されます。
http://weka.wikispaces.com/Why+do+I+get+the+error+message+%27training+and+test+set+are+not+compatible%27%3F