2013-07-02 10 views
8

私はトレーニングセットを持っています。私は自分のトレーニングセットに従って他のドキュメントを分類するための分類方法を使いたいと思います。ドキュメントタイプはスポーツ、政治、経済などのニュースとカテゴリです。テキスト分類方法? SVMと意思決定ツリー

私は素朴なベイとKNNを完全に理解していますが、SVMと意思決定ツリーはあいまいです。このメソッドを自分で実装できるかどうかは知りませんか?またはこのメソッドを使用するアプリケーションがありますか?

私はこの方法でドキュメントを分類するのに最適な方法は何ですか?

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

答えて

5

リニアSVMは、(ロジスティック回帰と一緒に)テキスト分類問題のための最上位アルゴリズムの1つです。ディシジョンツリーは、そのような高次元の特徴空間でひどく苦しんでいる。

Pegasos algorithmは、最も単純なリニアSVMアルゴリズムの1つで、非常に効果的です。

EDIT:Multinomial Naive Bayesは、通常はリニアSVMではありませんが、テキストデータでもうまく機能します。 kNNはうまく動作しますが、既に遅いアルゴリズムであり、テキスト問題の精度チャートを上回ることはありません。

+0

KNNとナイーブベイはどうですか? – zsh

+0

あなたはすでにそれらをどうやってやっているのか知っていたと思った。 –

+0

はい、どのメソッドが自分のproblem.iに最適なのかを知りたいのは、あらかじめ定義された10個未満のクラスです。 – zsh

2

もしあなたがPythonに慣れているなら、NLTKscikit-learnと考えるかもしれません。前者はNLP専用ですが、後者はより包括的な機械学習パッケージです(ただし、テキスト処理モジュールの豊富な在庫があります)。どちらもオープンソースであり、SOに大きなコミュニティがあります。

11
  • ナイーブベイズ

これは最も単純なアルゴリズムで、すべてが独立したものとみなされているが、実際のテキスト分類の場合には、この方法では素晴らしい仕事。そして、私はこのアルゴリズムを最初に試してみます。

  • KNN

KNNは、クラスタリングではなく、分類のためです。私はあなたがクラスタリングと分類の概念を誤解していると思います。

  • SVM

SVMは、クラス分類及び予測を行うためにSVC(分類)とSVR(回帰)アルゴリズムを有しています。いつかはうまくいくが、私の経験からは、良いトークナイザ(フィルタ)に対する高い要求があるため、テキスト分類ではパフォーマンスが悪い。しかし、データセットの辞書には常に汚れたトークンがあります。精度は本当に悪いです。

  • ランダムフォレスト(決定木)

私は、テキスト分類のために、この方法を試したことがありません。意思決定ツリーにはいくつかの重要なノードが必要だと思うので、テキスト分類のために「いくつかのキートークン」を見つけるのは難しいが、ランダムなフォレストは高スパースディメンションではうまく機能しない。

FYI

これらは、私の経験から、すべてのですが、あなたのケースのために、あなたはあなたのモデルに合うように、すべてのアルゴリズムをしようとするが、使用するためにどの方法を決めるには良い方法があります。

ApacheのMahoutは機械学習アルゴリズムの優れたツールです。それは、推奨、クラスタリング、および分類という3つの側面のアルゴリズムを統合します。このライブラリを試すことができます。しかし、あなたはHadoopに関するいくつかの基本的な知識を習得しなければなりません。

機械学習の場合、wekaは多くのアルゴリズムを統合した経験のためのソフトウェアツールキットです。

+1

-1。 SVMは、トピックに関する膨大な出版物によって証明されているように、テキスト分類のための最も優れた手法の1つです。 ** SVR **ではなく、分類に** SVC **を使用する必要があります。 –

+1

テキスト分類にSVMを使用した私の経験から、精度は常に良くありません。私はこれがあなたが使用するテキストデータに関連していると思う。また、間違いを指摘してくれてありがとう。 –

関連する問題