ディシジョンツリーでAdaboostを使用する理由


10

私は分類タスク、特にAdaboostのブースティングアルゴリズムについて少し読んでいます。Adaboostの目的はいくつかの「弱い学習者」を取ることであり、トレーニングデータの一連の反復を通じて、分類子をプッシュして、モデルが繰り返し間違いを犯すクラスを予測することを学習することを理解しています。しかし、私がこれまでに行った非常に多くのリーディングで、決定木を弱い分類子として使用しているのはなぜかと思いました。これには特別な理由がありますか?Adaboostの特に良い候補または悪い候補になる特定の分類子はありますか?


使用できる最も簡単な学習者は、depth = 1の決定木です。たぶんそれが彼らの例でそれを使う理由です。
アーロン

回答:


17

これについては、関連するSOの質問へ回答で話しました。ディシジョンツリーは、一般的にブースティングに非常に適しています。他のアルゴリズムよりもはるかに優れています。箇条書き/要約版はこれです:

  1. 決定木は非線形です。線形モデルによるブースティングは、単にうまく機能しません。
  2. 弱い学習者は、ランダムな推測よりも一貫して優れている必要があります。通常、その動作を実現するために決定木にパラメーターを調整する必要はありません。SVMのトレーニングには、実際にパラメーター検索が必要です。データは各反復で再重み付けされるため、各反復で別のパラメーター検索を実行する必要がある可能性があります。だから、あなたはあなたがしなければならない仕事の量を大幅に増やしています。
  3. ディシジョンツリーのトレーニングはかなり高速です。私たちはそれらの数百または数千を構築するつもりなので、それは良い物件です。また、分類も高速です。これは、決定を出力する前に実行に数百または数千が必要な場合にも重要です。
  4. 深さを変更することで、バイアスと分散のトレードオフをシンプルかつ簡単に制御できます。ブースティングはオーバーフィットすることが知られているため、簡単に調整できるノブがその点で役立ちます。

1

教科書の答えはありません。しかし、ここにいくつかの考えがあります。

ブースティングは、バギングと直接比較して見ることができます。これらは、バイアス分散のトレードオフジレンマの2つの異なるアプローチです。バギングには弱い学習器がありますが、バイアスが低く分散が大きい学習者の中には、バギング集団を平均化することにより、少しのバイアスの分散が減少します。一方、ブースティングは、さまざまな弱学習器でうまく機能します。ブースティング弱学習器は、高いバイアスと低い分散を持っています。ある学習者を別の学習者の上に構築することにより、ブースティングアンサンブルはバイアスを減らし、少しの差異を試みます。

その結果、たとえば、弱学習器としてツリーでバギングとブースティングを使用することを検討する場合、ブースティングを使用した小さな/短いツリーと、バギングを使用した非常に詳細なツリーを使用するのが最良の方法です。このため、ブースティング手順では、可能な限り最短のツリー(単一のディメンションでの単一のif条件)である弱点学習器として決定スタンプを使用します。この決定の切り株は非常に安定しているため、分散が非常に低くなります。

ブースティング手順でツリーを使用する理由は何もありません。ただし、短いツリーはシンプルで、実装も理解も簡単です。ただし、ブースティング手順で成功するためには、弱い学習者は分散が低く、剛性が高く、自由度が非常に少ない必要があります。たとえば、私は弱い学習者としてニューラルネットワークを持っている意味がありません。

さらに、ある種のブースティング手順(たとえば、勾配ブースティング)では、弱学習器がツリーの場合、ブースティングのしくみを最適化できることがわかりました。したがって、勾配ブースティングツリーがあります。ESTLブックには、ブースティングの良い露出があります。

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