『ブースティング』はKaggleコンペで猛威を振るう強力な手法。XGBoost・LightGBMはDL以外で最強と言われることも。G検定でも頻出です。
ブースティングとバギングの違いって?
バギングが並列、ブースティングは逐次的。
前のモデルの失敗を次のモデルで補う方式で、弱学習器を順番に強化していくの。
原点は1990年代のAdaBoost(Adaptive Boosting)。
誤分類したサンプルに重みを付けて、次の学習器がそれを重点的に学ぶ仕組みよ。
フロイドとシャピアが開発したわ。
間違えた問題を重点的にやり直す、みたいな感じですかぁ?
まさにそう。
ブースティングは『弱い学習器』を組み合わせて『強い学習器』を作る手法。
理論的には弱学習器があれば任意精度に到達できるのよ。
2001年に勾配ブースティング(Gradient Boosting) が登場。
AdaBoostを一般化し、任意の損失関数に対応できるようになったわ。
フリードマンが提案ね。
そこから進化して、XGBoostが出てきたんだ?
そう、XGBoost(eXtreme Gradient Boosting) は2014年に陳天奇が開発したライブラリ。
正則化・並列化・欠損値処理などを洗練させて、Kaggleコンペで連勝を飾ったわ。
後発のLightGBM(Microsoft、2016) は、葉ごとに分割するLeaf-wise戦略で高速化。
大規模データで圧倒的な速さを見せるの。
わぁ、どんどん速くなってるんですねぇ〜!
2017年のCatBoost(Yandex) はカテゴリ変数の扱いが得意で、これも業界で広く使われるわ。
実務だと、表データではDLよりこっちの方が強いって聞くもんね!
その通り。
表形式データでは勾配ブースティング系が今でも主流。
DLは画像・音声・自然言語の非構造化データで強い、という棲み分けね。
G検定では『AdaBoost・勾配ブースティング・XGBoost・LightGBM』『バギングとブースティングの違い (並列vs逐次)』を押さえて!
確認クイズ
ブースティング手法として最も適切なものはどれか。
- ランダムフォレスト
- XGBoost
- k-means
- DBSCAN
こたえを見る
正解: 2. XGBoost
XGBoostは勾配ブースティング手法の代表例です。ランダムフォレストはバギング、k-meansとDBSCANはクラスタリング (教師なし学習) です。