3

wekaとnaivebayes分類器を使用していくつかのWeb投稿を分類しようとしています。

まず、多くの投稿(約100件のネガティブと100件のポジティブ)を手動で分類し、次の形式で.arffファイルを作成しました。

@relation classtest
@attribute 'post' string
@attribute 'class' {positive,negative}
@data
'RT @burnreporter: Google has now indexed over 30 trillion URLs. Wow. #LeWeb',positive
'A special one for me  Soundcloud at #LeWeb ',positive
'RT @dianaurban: Lost Internet for 1/2 hour at a conference called #LeWeb. Ironic, yes?',negative
   .
   .
   .

次に、 Weka Explorerを開いてそのファイルを読み込み、StringToWordVectorフィルターを適用して投稿を1つの単語の属性に分割します。

次に、データセットで同じことを行い、(wekaの[分類]タブで)naive bayes分類子を選択し、[テストセットの選択]を選択すると、が返されますTrain and test set are not compatible。私に何ができる?ありがとう!

4

2 に答える 2

3

おそらく、属性の順序はトレインセットとテストセットで異なります。

http://weka.wikispaces.com/Batch+filteringで説明されているようにバッチフィルタリングを使用できます

于 2012-12-18T13:55:00.047 に答える
0

バッチフィルターを使用しましたが、まだ問題があります。これが私がしたことです:

java -cp /usr/share/java/weka.jar weka.filters.unsupervised.attribute.NumericToNominal -R last -b -i trainData.arff -o trainDataProcessed.csv.arff -r testData.arff-stestDataProcessed.csv。 arff

次に、以下のエラーが発生します。

入力ファイル形式が異なります。

後で、提供されたテストセットでトレーニング済みモデルを機能させる2つの方法を見つけました。

方法1.知識の流れを使用します。たとえば、次のようになります。CSVLoader(トレインセット用)-> classAssigner-> TrainingSetMaker->(選択した分類子)->ClassfierPerformanceEvaluator-TextViewer。CSVLoader(テストセット用)-> classAssigner-> TestgSetMaker->(上記と同じ分類子インスタンス)->PredictionAppender->CSVSaver。次に、トレーニングセットのCSVLoaderまたはarffLoderからデータをロードします。モデルがトレーニングされます。その後、テストセットのローダーからデータをロードします。提供されたテストセットでモデル(分類子など)を評価し、textviewer(ClassifierPerformanceEvaluatorに接続)から結果を確認し、PredictionAppenderに接続されたCSVSaverまたはarffSaverから保存された結果を取得できます。追加の列、 「分類された」出力ファイルに追加されます。私の場合、「?」を使用しました クラスラベルが使用できない場合は、提供されたテストセットのクラス列に対して。

方法2.トレーニングセットとテストセットを1つのファイルに結合します。次に、まったく同じフィルターをトレーニングセットとテストセットの両方に適用できます。次に、インスタンスフィルタを適用して、トレーニングセットとテストセットを分離できます。「?」を使っているので テストセットのクラスラベルとして。インスタンスフィルターのインデックスには表示されません。したがって、インスタンスフィルタを適用するときに削除する属性値に表示されるインデックスを選択するだけです。テストデータのみが残ります。保存して、分類子ページの供給テストセットにロードします。今回は機能します。互換性のないトレインとテストセットの問題を引き起こすのはクラス属性だと思います。多くのclassfierは、名目上のクラス属性を必要とします。その値は、に従ってクラス属性の使用可能な値へのインデックスに変換されますhttp://weka.wikispaces.com/Why+do+I+get+the+error+message+%27training+and+test+set+are+not+compatible%27%3F

于 2014-11-15T19:01:10.647 に答える