決定木が計算コストが高くないのはなぜですか?


38

Rにおけるアプリケーションとの統計的学習への入門、著者は、フィッティングことを書き決定木は非常に高速ですが、これは私には意味がありません。アルゴリズムは、最適な分割を見つけるために、すべての機能を通過し、可能な限りあらゆる方法で分割する必要があります。観測値を持つ数値フィーチャの場合、これにより各フィーチャにn個のパーティションが作成される可能性があります。nn

バイナリ分割の仕組みを誤解していますか?または、このアルゴリズムに時間がかからない理由はありますか?


1
質問の+1。あなたは確認するために開始することができ、この講義ノート、15ページ、使用の代わりに、O N 2のアルゴリズムを。ONON2
ハイタオデュ

回答:


40

デシジョンツリーアルゴリズムは、ツリーに適合する場合、可能なすべてのツリーを計算するわけではありません。そうした場合、NPハードを解くことになります。問題。通常、決定木フィッティングアルゴリズムは、フィッティングプロセスで貪欲な決定を行います。各段階で、特定のノードのデータで最適な分割を見つけるためにサブ問題を最適化し、フィッティングプロセスを進めます。また、決定ツリーの奥深くに移動すると、特定のノードに到達したデータのセットが小さくなり、データの小さなサブセットで分割ルールを最適化します。これらの選択はすべて、指定されたノード内のデータの線形スキャンです。これは複雑なことではありませんが、多数の観測値や分割する共変量が多い場合は、計算量が多少高くなる可能性があります。ただし、多くの作業を分割して別のマシンに送信して作業することができるため、スケールアップするために計算アーキテクチャを構築する方法があります。


10
つまり、バイナリ検索にほぼ匹敵します。
ロバートハーヴェイ

1
log2N

2
同意しましたが、原則はまだ保持されます。(だからこそ「多かれ少なかれ」という言葉を使った)
ロバートハーベイ

2

意思決定ツリーを構築するためのCARTアルゴリズムとC4.5アルゴリズムにはいくつかの違いがあります。例えば、CARTはGini Impurityを使用して機能を選択し、C.4.5はShannon Entropyを使用します。違いが答えに関連しているとは思わないので、それらを区別しません。

意思決定ツリーが思っているより速くなるのは、次のとおりです。

  1. 他の人が言ったように、これらのアルゴリズムは1先読みアルゴリズムです。ローカル最適化を実行します。すべてのブランチで、使用するメトリック(Giniまたはエントロピー)を最大化/最小化するルールを選択します。これは、論理演算子を使用andするとより良いツリーが得られるというルールを見逃す可能性があることを意味します。つまり、機能エンジニアリングを行うときは、非常に慎重/賢明でなければなりません。たとえば、人々がどれだけ飲むかを予測しようとしているとしますnew_feature = hour > 22 & hour < 4 & (friday_night | saturday_night)。次のようなエンジニアをフィーチャーしたいと思うかもしれません。デシジョンツリーはそのようなルールを見逃したり、必要以上に重要性を低くしたりする場合があります。
  2. バツ1={31.52.521}X <= 1X <= 1.5X <= 2バツ1={11.522.53}X <= 1X <= 1.5バツ¯vバツ¯nバツ¯+vn+1
  3. 決定木は並列化できます。各ノードは、独立した2つのブランチで構成されます。したがって、各ブランチで、ツリー作成を並列化する機会があります。さらに、機能の選択自体も並列化できます。これが、パッケージのxgboost高速化の理由です。勾配ブースティングは逐次的であり、並列化できませんが、ツリー自体は可能です。

1

答えを充実させるために、

階層的な軸に平行な決定木は高速ですが(CART、C4.5)、非階層的な決定木や、そうでない斜めパーティションを実行するものなど、より正確なものもあります。興味がある場合は、以下の参考文献を確認してください(これらは厳選されたものではありません)。

非階層:

Grubinger、T.、Zeileis、A。、およびPfeiffer、K .-。、2014年。

斜め分割:

Murthy、SK、Kasif、S。およびSalzberg、S.、1994年。斜め決定木の誘導のためのシステム。J.アーティフ Intell。解像度 2(1)、1-32 http://dx.doi.org/doi:10.1613/jair.63。Cantú-Paz、E.およびKamath、C.、2003。進化的アルゴリズムによる斜め決定木の誘導。IEEE Trans。進化。計算。7(1)、54-68。http://dx.doi.org/10.1109/TEVC.2002.806857。Heath、D.、Kasif、S.およびSalzberg、S.、1993。斜め決定木の誘導。J.アーティフ Intell。解像度 2(2)、1002-1007。

がんばろう!

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