決定木を使用する目的は何ですか?


8

ディシジョンツリーの目的がわかりません。私の見方では、if-elseのシリーズです。ディシジョンツリーを使用する代わりに、if-elseを使用しないのはなぜですか?それは私のコードの複雑さを減らすからです?

エントロピーと情報ゲインの計算は、ルールをプラグインするだけの組み込みのアルゴリズムがあるので、まだ免れていますか?(ID3と同様)

なぜ今、それを機械学習で使用するのですか?必要になる前にルールを考え出す必要さえないからですか?マシンはトレーニングデータから学習し、結果に基づいて予測できる属性に基づいていますか?

コードにMLを実装すると、オーバーヘッドがさらに減少し、コードの複雑さが軽減され、効率が上がり、速度が向上しますか?


6
それはコードの問題ではなく、モデルの問題です。
Sycoraxは、

6
「コードにMLを実装すると、オーバーヘッドが減少し、コードの複雑さが軽減され、効率が上がり、速度が向上しますか?」コードが何をするかによりますが、それ以外の場合はより効果的です。MLは、コードの複雑さを減らしたり、パフォーマンスを向上させたりするためには存在しません(逆の効果がある傾向があります)。MLは、サンプルデータに基づくアルゴリズムの作成を自動化するために存在します。プログラマはちょうどMLの出番である、効果的なアルゴリズムを記述し、時には行うことのやり方があまりにも難しいことをすることができますので、通常、これは必要ありません。
DarthFennec

クロスポストしないでください。この理由だけで、SEのポリシーに反しています。それは多くの人々の時間を浪費します。
ガン-モニカの

@DarthFennec Quotable!
Jim

回答:


21

私の見方では、if-elseのシリーズです。ディシジョンツリーを使用する代わりに、if-elseを使用しないのはなぜですか?

あなたは、絶対に正しい。決定木は、一連のif-elseステートメントに他なりません。しかし、それは我々が、私たちはこれらのルールを構築することができますツリーとしてこれらの文を解釈する方法です自動的に ...すなわち、いくつかの入力例のセットが指定バツ1y1バツNyN ... yが新しい入力バツ与えた値を説明するルールの最良のセットは何ですか?ID3などでも、これらのルールを自動的に作成できます。いったん構築されたツリーについてではなく、それを作成した方法についてです。

それとは別に、決定木だけを使用することはほとんどありません。その理由は、まさにあなたの言うとおりです。表現力に欠けるかなり単純なモデルだからです。ただし、他のモデルに比べて大きな利点が1つあります。単一の決定木を非常に高速に計算できることです。つまり、大きなデータセットに対して多くの決定木(ブースティング、別名AdaBoostおよびGradientBoosting)をトレーニングするアルゴリズムを思い付くことができます。これらの単純なモデル(フォレストと呼ばれます)のこれらのコレクション(通常は500を超える)は、はるかに複雑な形状を表現できます。

f[ab]Rsバツ[ab]a=a0<a1<<aM=baa+1f|aa+1fこの間隔に制限されます)。基本的な計算(分析)により、十分な数の線をとれば、関数を任意に近づけることができます(つまり、任意の小さなエラーを発生させることができます)。したがって、非常に単純なモデルから複雑で正確なモデルを構築しました。これは(たとえば)GradientBoostingが使用するアイデアとまったく同じです。非常に「愚かな」単一決定木からフォレストを構築します。


2
もう1つの大きなプラスは、人間が閲覧できるようになっています(「ああ、それが理由です!」)。
dedObed

1
ええ、意思決定ツリーは非常に直感的であるため、統計の背景がない人に説明するのに最適です。
qwr

1

@Fabian Wernerの答えに追加するだけです-統合のイントロでリーマンサムルールを実行したことを覚えていますか?まあそれも、関数の下の面積を計算するために使用する、均等に分割されたifステートメントのセットでした。

1D関数を描画し、パーティションを均等に描画すると、関数の勾配がほとんどない領域では、精度を大幅に損なうことなく、隣接するパーティションをマージできます。同様に、勾配が高いパーティションでパーティションを追加すると、近似が大幅に向上します。

パーティションのセットはどれも関数を近似しますが、いくつかは他のものより明らかに優れています。

次に、CARTモデルに移動します。この関数からのノイズの多い点の形でデータが表示され、関数を近似するよう求められます。あまりにも多くのパーティションを追加することにより、オーバーフィットし、基本的に最近傍タイプのモデルを実行できます。これを回避するために、モデルが使用できるパーティションの数を制限します(通常、分割ごとの最大深度と最小サンプルの形式)。では、これらの分割をどこに配置すればよいでしょうか。それが、分割基準によって対処される質問です。より高い「複雑さ」の領域は、経験則としてより多くの分割を受け取るべきであり、それがジニー、エントロピーなどがやろうとしていることです。

予測は、if-elseステートメントにすぎませんが、機械学習のコンテキストでは、モデルの力の源泉ではありません。パワーは、スケーラブルな方法でオーバーフィットとアンダーフィットをトレードオフするモデルの能力に由来し、データの限界における理論的な保証を備えた一貫した確率論的フレームワークで導き出すことができます。最後に、MLモデルの同様の抽象化されたビューを使用すると、ニューラルネットワーク、カーネルメソッド、モンテカルロアプローチなど、単純に加算と乗算を行うことができます。残念ながら、それは文献の非常に有用な見方ではありません。


0

決定木は、問題ドメインを条件によってサブセットに分割することです。通常、カスケードされたif-then-elsesとして実装されます。これは、複雑な決定ロジックを説明する用語として見ることができます。

決定木は、論理テストよりも効率的でも機械的学習の「サポート」でもありません。彼ら論理的なテストです。

また、どのアルゴリズムも算術計算とテストの組み合わせにすぎないこと、つまり(通常は巨大な)決定木であることも覚えておいてください。


完全を期すために、機械学習などの一部のコンテキストでは、複雑な決定木がアルゴリズムによって自動的に構築されることに言及しましょう。しかし、これは彼らの性質を変えません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.