K_DM Book
用語集
対象者 標準
対象者別の入口 →

対象者の設定はこのブラウザの中にだけ保存されます。

言語 JA

アンサンブル

02.4

アンサンブル

まとめ
アンサンブル学習は、深さ 3 の決定木のように 1 本では弱いモデルを 50 本、100 本と組み合わせて、1 本では出ない精度と安定性を得る考え方です。組み合わせ方は大きく 2 つあり、ブートストラップ標本で独立に学習した木を平均・多数決するバギング系(バギング、ランダムフォレスト)は分散を下げ、前の木の間違いを次の木が直すブースティング系(AdaBoost、勾配ブースティング、XGBoost、LightGBM、CatBoost)はバイアスを下げます。スタッキングはこれらの予測を 2 段目のモデルに学ばせる第 3 の方法です。この章では各手法を scikit-learn のコードとステップ再生の図で追い、n_estimators や learning_rate を動かすと ROC-AUC や MSE がどう変わるかを確かめます。

直感 #

1 本の決定木は、訓練データが 10 件入れ替わるだけで分割の位置が変わる不安定なモデルです。アンサンブルはこの不安定さを逆手に取り、少しずつ違う木を何十本も作って多数決すれば個々の間違いが打ち消される(バギング)、あるいは前の木が外した点を次の木に重点的に直させれば 1 本では届かない精度に積み上がる(ブースティング)、という 2 つの発想で木を束ねます。章の前半でこの 2 つの違いを AdaBoost とバギングの図で押さえ、後半で XGBoost・LightGBM・CatBoost が勾配ブースティングのどこを速く・頑健にしたのかを比べます。

この章の構成 #

このチャプターで学べること #

  • 並列(バギング)と逐次(ブースティング)という 2 つの組み合わせ方の違いと、分散・バイアスのどちらを下げるか
  • n_estimators・learning_rate・max_depth(num_leaves)が ROC-AUC や MSE に与える効果の読み方
  • XGBoost・LightGBM・CatBoost の正則化・ヒストグラム近似・カテゴリ処理という違い

これが分かるとできること #

  • 表形式データの課題に対して、ベースラインのランダムフォレストから勾配ブースティング系へ進める判断ができる
  • Train と Test のスコアの差を見て、learning_rate を下げる・max_depth を浅くするなど改善の優先順位を説明できる
  • random_state を固定した再現可能な手順で、パラメータを 1 つずつ動かす実験を組める

手法クイックリファレンス #

手法戦略計算量推奨場面
Bagging並列学習+多数決中分散を減らしたいとき
AdaBoost(分類)逐次重み付け中弱分類器の組み合わせ
AdaBoost(回帰)逐次重み付け中弱回帰器の組み合わせ
Gradient Boosting残差を逐次学習中〜高精度重視の汎用モデル
XGBoost正則化+高速化高コンペ・大規模データ
LightGBM葉分割+高速高大規模データ・高速学習
CatBoostカテゴリ自動処理高カテゴリ特徴量が多いとき
Stackingメタ学習器高最大精度を追求

学習の進め方 #

まず ランダムフォレスト と バギング で「木をばらつかせて平均する」側を押さえ、分散の式 \(\rho\sigma^2 + (1-\rho)\sigma^2/B\) がどう縮むかを見ます。次に AdaBoost と 勾配ブースティング で「前の木の間違いを次の木が直す」側に進み、ステップ再生で残差が縮む様子と learning_rate の役割を確認します。最後に XGBoost・LightGBM・CatBoost の 3 ページを同じ 1000 件のデータで読み比べ、Train と Test の ROC-AUC の差を見ながらパラメータを調整する流れを身に付けます。

まとめ #

このチャプターでは、Bagging による分散低減から、AdaBoost・Gradient Boosting の逐次学習、XGBoost・LightGBM・CatBoost の高速実装、Stacking によるメタ学習まで、アンサンブル手法を体系的に学びます。1 本の決定木の限界を理解した上で、データ規模・特徴量の性質・精度要件に応じた手法の選択と、n_estimators・learning_rate・木の深さで過学習を制御しながら精度を最大化するチューニングの指針を身に付けることがゴールです。