web-dev-qa-db-ja.com

決定木と単純ベイズ分類器

私はさまざまなデータマイニング手法についていくつかの研究を行っていますが、私が理解できない何かに出くわしました。誰かが素晴らしいアイデアを持っているなら。

どのケースでデシジョンツリーを使用し、他のケースではNaive Bayes分類器を使用した方が良いですか?

特定の場合にそれらの1つを使用する理由そして、別のケースで他の? (アルゴリズムではなく、その機能を見ることにより)

これについての説明や参考文献はありますか?

45
Youssef

デシジョンツリーは非常に柔軟で、理解しやすく、デバッグが容易です。彼らは分類問題と回帰問題で動作します。したがって、(赤、緑、上、下)のようなカテゴリ値を予測しようとしている場合、または2.9、3.4などの連続値を予測しようとしている場合、ディシジョンツリーは両方の問題を処理します。デシジョンツリーの最も優れた点の1つは、データのテーブルのみが必要であり、事前の設計作業を行うことなく、そのデータから直接分類子を構築することです。ある程度重要ではないプロパティは分割として選択されず、最終的には刈り取られるため、ナンセンスを非常に許容します。開始するには、設定して忘れます。

ただし、マイナス面。単純な意思決定ツリーは、トレーニングデータにより多く適合しがちであるため、他の手法では、一般的にツリーの枝刈りを行い、枝刈り手順を調整する必要があります。前払いの設計コストはありませんでしたが、ツリーのパフォーマンスを調整することで、それを支払うことになります。また、単純な決定木はデータを正方形に分割するため、物の周りにクラスターを構築することは、データのクラスターを包含するために多くを分割する必要があることを意味します。たくさん分割すると、複雑なツリーになり、過剰適合の可能性が高まります。背の高い木は剪定されます。そのため、データの一部の機能を中心にクラスターを構築することはできますが、剪定プロセスに耐えられない可能性があります。 surrogate splitsのような他の手法があり、複数の変数に沿って一度に分割して、水平でも垂直でもない分割を作成できます(0 <勾配<無限大)。クールですが、ツリーは理解しにくくなり始め、これらのアルゴリズムを実装するのは複雑になります。ブースティングやランダムフォレストデシジョンツリーなどの他の手法は非常に優れたパフォーマンスを発揮し、デシジョンツリーから最高のパフォーマンスを引き出すにはこれらの手法が不可欠であると考える人もいます。繰り返しますが、これにより、ツリーを調整するために理解して使用するものが増えるため、実装するものが増えます。最終的には、アルゴリズムに追加するほど、使用する障壁が高くなります。

Naive Bayesでは、分類を手動で作成する必要があります。大量の表形式データを投げて、分類に使用する最適な機能を選択させる方法はありません。重要な機能を選択するのはあなた次第です。デシジョンツリーは、表形式のデータから最適な機能を選択します。 Naive Bayesが機能を選択する方法があれば、決定木をそのように機能させるのと同じ手法を使用することに近づいているでしょう。これは、Naive Bayesを他の統計的手法と組み合わせて、どの機能が最適に分類され、決定木を使用できるのかを案内する必要があることを意味します。単純ベイズは連続分類器として回答します。カテゴリー予測に適応させる手法がありますが、ベイズは(A 90%、B 5%、C 2.5%D 2.5%)のような確率で答えますそのため、ネットワークを整理または処理する必要はありません。これにより、実装するアルゴリズムが簡単になります。ただし、すべての確率が1000倍になるため、デバッグと理解が難しくなります。したがって、期待どおりの動作をテストするように注意する必要があります。 Naive bayesは、トレーニングデータにすべての可能性が含まれていない場合に非常にうまく機能するため、データ量が少なくても非常に優れています。決定木は、Naive Bayesと比較して、大量のデータでより適切に機能します。

Naive Bayesはロボティクスとコンピュータービジョンで多く使用されており、これらのタスクで非常にうまく機能します。これらの状況では、ディシジョンツリーのパフォーマンスは非常に低くなります。ロイヤルフラッシュとクワッドはほとんど発生しないため、枝刈りされることが多いので、数百万のポーカーハンドを見てポーカーハンドを認識する決定木を教えることは非常に貧弱です。結果のツリーから削除された場合、それらの重要なハンドを誤分類します(上記の背の高いツリーの説明を思い出してください)。これを使ってがんを診断しようとしているのかどうか考えてみてください。癌は人口に大量に発生することはなく、より可能性が高くなります。幸いなことに、これは重みを使用して処理できるため、勝ち手に重みを付けたり、癌を負けた手よりも高くしたり、癌を持たなかったりするので、剪定されないように木を持ち上げます。繰り返しますが、これは結果のツリーを前述の状況に合わせて調整する部分です。

決定木は、どの入力が出力の最良の述語であるかを教えてくれるので、きちんとしています。多くの場合、決定木は、与えられた入力と出力の間に統計的な関係があるかどうか、そしてその関係がどれほど強いかを見つけるのに役立ちます。多くの場合、結果の決定ツリーは、それが記述する関係よりも重要ではありません。したがって、意思決定ツリーは、データについて学習するときに研究ツールとして使用できるため、他の分類器を構築できます。

決定木と単純なベイを使用して問題を解決する場合、多くの場合、それぞれをテストすることが最善です。意思決定ツリーを構築し、単純なベイズ分類器を構築してから、所有するトレーニングデータと検証データを使用してシュートアウトします。どれが最高のパフォーマンスを発揮するかは、フィールドでのパフォーマンスが向上する可能性が高くなります。また、k-nearestは状況によっては両方を実行することが示されているため、それらのそれぞれをK-nearest neighbor(KNN)予測子にキャストすることは常に良い考えです。KNNは実装および使用する簡単なアルゴリズムです。 KNNのパフォーマンスが他の2つよりも優れている場合。

いくつかのソース:

CARTベースの決定木に関するマニュアル。この本はCARTアルゴリズムを扱っていますが、決定木、重み、欠損値、代理分割、ブースティングなどについても説明しています。 http://www.Amazon.com/Classification-Regression-Wadsworth-Statistics-Probability/dp/0412048418

CARTの穏やかな紹介 https://www.youtube.com/watch?v=p17C9q2M00Q

アルゴリズムの比較-ほとんどのテストで、KNN、デシジョンツリー、C4.5、およびSVMが非常にうまく機能することに注意してください。 http://www4.ncsu.edu/~arezaei2/paper/JCIT4-184028_Camera%20Ready.pdf

アルゴリズムの別の比較-決定木をブーストし、中央のKNNでランダムにトップになります: http://www.cs.cornell.edu/~caruana/ctp/ct.papers/caruana.icml06.pdf

さまざまなテクニックの別の良い概要: http://www.quora.com/What-are-the-advantages-of-different-classification-algorithms

141
chubbsondubs