web-dev-qa-db-ja.com

テキストデータを分類するための単純ベイズとSVM

テキストの大規模なデータベースを分類することを含む問題に取り組んでいます。テキストは非常に短く(それぞれ3〜8語だと思います)、10〜12のカテゴリに分類します。機能については、各Wordのtf–idf頻度を使用しています。したがって、特徴の数は、テキスト全体に表示される単語の数とほぼ同じです(ストップワードなどを削除します)。

使用するモデルを考え出すにあたって、私は次の2つのアイデアを思いつきました。

  • 単純ベイズ(おそらくsklearn多項式単純ベイズ実装)
  • サポートベクターマシン(トレーニングで使用される確率的勾配降下法、およびsklearn実装)

私は両方のモデルを作成し、現在結果を比較しています。

各モデルの理論的な長所と短所は何ですか?これらの1つがこのタイプの問題に適しているのはなぜですか?私は機械学習が初めてなので、理解したいのはなぜより良いかもしれません。

どうもありがとう!

15
Ryan

「機能」の観点から構築しているモデルの最大の違いは、Naive Bayesはモデルを独立したものとして扱うのに対し、SVMは、非機能モデルを使用している限り、モデル間の相互作用をある程度調べます。線形カーネル(Gaussian、rbf、polyなど)。したがって、相互作用があり、問題が発生した場合にそうする可能性が最も高い場合、SVMは相互作用のキャプチャに優れているため、必要な分類タスクに優れています。

MLの研究者と実務家のコンセンサスは、ほとんどすべての場合、SVMがNaive Bayesよりも優れているということです。

理論的な観点から、2つの方法を比較することは少し難しいです。 1つは本質的に確率論的であり、もう1つは幾何学的です。ただし、Naive Bayes(y(a、b)= ab)によってキャプチャされない変数間に依存関係がある関数を考え出すのは非常に簡単であるため、これは普遍的な近似関数ではないことがわかります。カーネルを適切に選択したSVMは(2/3層のニューラルネットワークと同様に)ですが、その観点からは、理論は実際と一致しています。

しかし、結局のところ、それはyour問題のパフォーマンスに帰着します。基本的に、問題に対して十分な結果が得られる最も簡単な方法を選択する必要がありますand十分なパフォーマンスがあります。たとえば、スパム検出は、ナイーブベイズだけで解決できることで有名です。ブースティングなどで強化された同様の方法による画像の顔認識.

21
Horia Coman
  • フルレングスのコンテンツでは、サポートベクターマシン(SVM)の方が優れています。
  • Multinomial Naive Bayes(MNB)はスニペットに優れています。

MNBは、長いドキュメントよりもスニペットの方が強力です。 (Ng and Jordan、2002)は、NBはトレーニングケースが少ないSVM /ロジスティック回帰(LR)よりも優れているが、MNBは短いドキュメントの方が優れていることを示しています。SVMは通常NBトレーニングケースが30〜50を超える場合、比較的大きなトレーニングセット(9kケース)でもMNBがスニペットの方が優れていることを示しています。

つまり、NBSVMは、洗練された分類テキストデータの適切かつ非常に強力なベースラインのようです。

ソースコード: https://github.com/prakhar-agarwal/Naive-Bayes-SVM

参照: http://nlp.stanford.edu/pubs/sidaw12_simple_sentiment.pdf

引用:Wang、Sida、およびChristopher D. Manning。 「ベースラインとバイグラム:シンプルで良い感情とトピック分類。」計算言語学会の第50回年次会議の議事録:ショートペーパー-巻2.計算言語学会、2012年。

4
Prakhar Agarwal