8

新しいデータセットでモデルをテストしようとしています。モデルを構築するために行ったのと同じ前処理手順を実行しました。2 つのファイルを比較しましたが、問題はありません。すべての属性 (トレーニングとテスト データセット) を同じ順序で、同じ属性名とデータ型にしています。しかし、それでも問題を解決できません。ファイル train と test はどちらも似ているように見えますが、weka エクスプローラーで、Train と test set に互換性がないというエラーが表示されます。このエラーを解決するにはどうすればよいですか? test.arff ファイル形式を train.arff にする方法はありますか? 誰か助けてください。

これがファイル比較のスクリーンショットです

4

6 に答える 6

8

問題文の後に私が残したコメントと同じです:

3 つの属性はすべて名義属性であり、その後に「{}」で引用されたすべての可能な値が続きます。私の推測の 1 つは、可能な値が同じではないということです。たとえば、RESOURCE 属性の場合、テスト ファイルには 199 はありませんが、トレーニング ファイルにはあります。

于 2013-07-16T13:04:55.673 に答える
3

一日同じ問題に苦しんだ後。トレーニング済みのモデルを提供されたテスト セットで動作させる 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

于 2014-11-15T18:55:19.987 に答える
0

同様のものと同じものの間に違いがあることを確認してください。train.arrf と test.arrf には同じヘッダーが必要です。そうでない場合は、train.arrf のヘッダーをコピーして、新しいヘッダーとして test.arrf に貼り付ける必要があります。

于 2014-02-12T10:47:26.850 に答える