5

Weka GUI を使用して、オンライン投稿で NaiveBayes 分類子を実行しています。機能を改善する方法をさらに学ぶことができるように、誤って予測されたインスタンス (オンライン投稿) を追跡しようとしています。

現在、これを行うための回避策があります。一意の ID を含むデータを生成し、Weka にインポートするときに一意の ID を削除します。次に、予測結果を .arff ファイルに保存する予測アペンダーをアタッチします。ファイルを読んで、パフォーマンスの悪いインスタンスを見つけました。誤って分類されたインスタンスについては、各インスタンスに十分に一意の値を与える特定の特徴値を使用し、一意の ID を含む元のデータから同じ値を持つインスタンスを見つけます。ご覧のとおり、これは本当に時間のかかるプロセスです。

分類器を実行するときにデータの一部として保持しながら、私の場合はインスタンスの一意の ID である機能を無視する方法があるかどうかを知りたいです。

ありがとうございました。

4

3 に答える 3

5

weka GUI に直接オプションがあるかどうかはわかりません。ただし、コマンドラインを使用して同じことを達成できます

java weka.classifiers.meta.FilteredClassifier -F weka.filters.unsupervised.attribute.RemoveType -W weka.classifiers.trees.RandomForest -t G:\pub-resampled-0.5.arff -T G:\test.csv.arff -p 1 -distribution > G:\out.txt

上記の例では、最初の属性は識別子 (文字列) です。RemoveType フィルターは、モデルの構築中にすべての文字列フィールドを削除します。ただし、引数として-pを渡すことにより、weka にその識別子を出力 (予測) の一部として含めるように依頼することができます。私の場合、最初の属性 (partner_id) は識別子であるため、予測とともに出力にリストされます。(-distribution オプションは、すべてのクラス ラベルの予測スコアを出力するためのものです)。詳細はhttp://weka.wikispaces.com/Instance+IDから入手できます

=== Predictions on test data ===

 inst#     actual  predicted error distribution (partner_id)
     1        1:?        2:0       0,*1 (8i7t3)
     2        1:?        2:0       0,*1 (8i7u1)
     3        1:?        2:0       0,*1 (8i7um)
     4        1:?        2:0       0.1,*0.9 (8i7ux)
     5        1:?        2:0       0,*1 (8i7va)
     6        1:?        2:0       0,*1 (8i7vb)
     7        1:?        2:0       0,*1 (8i7vf)

これがお役に立てば幸いです..

于 2012-10-02T09:00:35.503 に答える
3

Nicholas の回答の詳細: GUI から実行する場合は、FilteredClassifier の選択に加えて、[テスト オプション] ボックスで [その他のオプション...] を開き、識別子属性のインデックスを「出力追加属性」フィールド。このフィールドを有効にするには、最初に [予測を出力] ボックスにチェックを入れる必要があります。

Weka 3.7 では、フィールド (例: PlainText) を左クリックして、「出力予測」の選択したメソッドのパラメーターとして追加の属性を指定する必要があります。

于 2014-01-15T12:03:15.770 に答える