AdaBoostはオーバーフィッティングになりやすいですか?


20

私は、AdaBoost(または他のブースティングテクニック)が他の学習方法と比較して過剰適合になりやすいかどうかにかかわらず、さまざまな(一見)矛盾するステートメントを読みました。

どちらかを信じる正当な理由はありますか?依存する場合、何に依存しますか?AdaBoostがオーバーフィットしにくい/多い傾向がある理由は何ですか?


1
私の直感では、ランダムフォレストよりも過剰適合しやすいということです。ただし、アルゴリズムは過剰適合を回避するように設計されており、通常は問題にならないようです。これをバックアップするための参照はありませんが、このcaretパッケージを使用してadaboostの相互検証を行うことができ、通常は一般化することがわかりました。
ザック

回答:


17

あなたが言うように、この問題について多くのことが議論されており、それに伴って非常に重い理論がいくつかあります。私の実際の経験では、AdaBoostはオーバーフィットに対して非常に堅牢であり、LPBoost(線形プログラミングブースティング)はさらに強力です(目的関数には容量制御の形式である弱学習器の疎結合が必要なため)。それに影響を与える主な要因は次のとおりです。

  • 「弱」学習者の「強さ」:決定切り株(1レベルの決定ツリー)などの非常に単純な弱学習器を使用する場合、アルゴリズムは過剰適合しにくい傾向があります。より複雑な弱学習器(決定木や超平面など)を使用しようとするたびに、オーバーフィットがより迅速に発生することがわかりました

  • データのノイズレベル:AdaBoostは、特にノイズの多いデータセットに過剰適合する傾向があります。この設定では、正規化された形式(RegBoost、AdaBoostReg、LPBoost、QPBoost)が望ましい

  • データの次元性:一般に、高次元空間でより多くの過剰適合を経験することを知っています(「次元性の呪い」)。AdaBoostは、それ自体が被る分類器の単なる線形結合であるため、その点でも被る可能性があります問題から。他の分類器と同じくらい傾向があるかどうかを判断するのは困難です。

k


9

私は、tdcのコメントで述べられているポイントのほとんどに同意します。ただし、いくつかのことを追加して修正する必要があります。

  • PeterBühlmannによるL2Boostに示されているように、弱学習器(ブーストのラウンド)の数が増えると、バイアスは指数関数的に速く収束しますが、分散は大きさを幾何学的に減少させることで増加します。
  • Zachのコメントでは、過剰適合の観点からランダムフォレストよりも優れていると誤って言及されていました。それは完全に間違っています。実際、理論(ブライマンによるオリジナルのランダムフォレストの論文を参照)によると、ランダムフォレストは、その弱い分類器がデータに過剰適合しない限り、過剰適合に対して完全に耐性があります。
  • tdcコメントで述べたものとは異なり、ほとんどのブースティング方法はラベリングノイズに非常に敏感であり、ラベリングノイズが存在すると簡単にオーバーフィットする可能性があります。
  • ベイズのエラー率が0から遠く離れている(つまり、特徴が十分に識別できない)データセットでは、ブースティングメソッドも簡単にオーバーフィットする可能性があります。なぜなら、実際には最適な分類器、つまりベイズ分類器でさえ、エラー率が40%に達する可能性がある一方で、トレーニングエラーをゼロにしようとするためです。
  • 最後に、これは(私の知る限り)ブーストラウンドが増加しても一般化エラーが増加せず、減少しないオーバーフィットのような場所では公開されていません。これは、アルゴリズムが局所的な最適状態にとどまっていることを意味します。この状況では、トレーニングエラーは絶えず減少しますが、テストエラーはほぼ一定のままです。これまで、この現象を過剰適合の兆候とは見なしませんでしたが、過剰適合の兆候であり、より複雑な弱学習器を使用することで(奇妙なことに!)実際にはそれに反する可能性があります(この最後の点は注意して検討する必要があります) :D)

1
この答えに加えて、今日、AdaBoostとRandom Forestの両方で後者の過適合を経験したかもしれません。交差検証では、フォールド外誤差は20個のベース推定量のみで定数に収束し、その後、その定数の周囲で高い分散で跳ね返りました。私の疑いはまったく同じでした。貪欲なアルゴリズムは、ある種の局所的な最適状態にとどまりました。これは何が起こったかを確認するものではありませんが、他の誰かが同じ考えを持っていることを知ってうれしいです。
シャドウトーカー

@ssdecontrolあなたがしたことを共有できますか?私はよりよく理解するために持って結果を再現したい
Agarwalさんsaurabhを

@saurabhagarwal Kaggle Titanicプロジェクトに取り組んでいたと思います
-shadowtalker
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.