2

私はPythonで単純ベイズ分類器を使用してドキュメント分類に関するプロジェクトを行っています。同じために nltk python モジュールを使用しました。ドキュメントはロイターのデータセットからのものです。ステミングやストップワードの除去などの前処理手順を実行し、索引用語の tf-idf の計算に進みました。これらの値を使用して分類器をトレーニングしましたが、精度は非常に低いです (53%)。精度を上げるにはどうしたらいいですか?

4

4 に答える 4

0

nltk 単純ベイズ分類器を使用している場合は、平滑化された多変量ベルヌーイ単純ベイズ テキスト分類を実際に使用している可能性があります。これは、機能抽出関数がすべてのブール値のセットではなく、すべての浮動小数点値のセット (tf-idf を使用しているように聞こえる) にマップされる場合に問題になる可能性があります。

特徴抽出器が tf-idf 値を返す場合、 nltk.NaiveBayesClassifier が true かどうかを確認すると思います

tf-idf(word1_in_doc1) == tf-idf(word1_in_class1)

tf-idf に適切な連続分布についての適切な質問ではありません。

特に、トレーニング セットで 53% の確率で 1 つのカテゴリが発生する場合は、これが精度の低さを説明している可能性があります。

scikit-learn に実装されている多項単純ベイズ分類器を確認することをお勧めします。

多項および多変量ベルヌーイ分類器の詳細については、この非常に読みやすい論文を参照してください。

于 2012-08-01T01:00:18.157 に答える
0

分類子が機能しない理由は多数あり、微調整する方法も多数あります。

  • 十分な正と負の例でそれを訓練しましたか?
  • 分類器をどのように訓練しましたか?すべての単語を機能として与えましたか、それともトレーニングするための機能をさらに追加しましたか (たとえば、テキストの長さなど)?
  • 正確に何を分類しようとしていますか?指定された分類には、それに関連する特定の単語がありますか?

したがって、質問はかなり広いです。詳細を入力すると、より関連性の高い提案が得られる可能性があります。

于 2012-05-09T12:29:50.253 に答える