【DS検定対策13】バギングとブースティングの仕組みと違い|分散と精度を安定化

データサイエンス

バギング(Bagging)は バッグ=袋に詰めて集めるイメージ で、いろんなデータを袋詰めしてまとめる手法。ブースティング(Boosting)は ブースト=底上げして強化するイメージです。
どちらもアンサンブル学習の柱です。アンサンブルとは一緒に演奏するイメージの通り、複数のモデルを組み合わせて精度を高めたり安定させたりする考え方です。
同じようなモデルを集めるだけでは偏りが残るので、異なる視点やクセを持つモデルを組み合わせて 「誤りを打ち消し合う」 というテクニックになります。

バギング(Bagging)とは?

バギングは Bootstrap Aggregation(ブートストラップ・アグリゲーション) の略です。

  • Bootstrap(ブーストラップ):元データを重複ありで抽出し、何度も自前で学習用データを作るイメージ。
  • Aggregation(アグリゲーション):複数のモデル結果をまとめて統合すること。

つまり、バギングは「データを何度も引き直して(Bootstrap)、それぞれで学習したモデルを統合(Aggregation)する」手法です。

仕組みの流れ

  1. 元データから重複ありでランダムサンプリングし複数の学習データを作る(ブートストラップ標本)。
  2. それぞれのデータで独立したモデルを並列に学習する。
  3. 分類なら多数決、回帰なら平均を取って最終予測を決める。

こうすることで、偶然の偏り(分散)に強くなり、過学習(オーバーフィッティング)を抑えることができます。

イメージ:いろんな人が同じテストを解き、最後に多数決で答えを決めるようなもの。個人のクセや誤りが平均化され、全体として安定した判断になります。
代表的な手法は ランダムフォレスト(Random Forest) で、多数の決定木を並列に動かして平均化します。

ランダムフォレスト

ランダムフォレストは、ざっくり言うと多数の決定木の多数決で最終結論を出す方法です。

重要な特徴量の見つけ方: 各決定木を作る時、「年齢で分ける」「身長で分ける」など色々な特徴量を試します。この時、AとBがきれいに分かれる特徴量ほど優秀です。 この「分離の効果」を数値化したものが**不純度減少**です。全ての決定木で不純度減少が大きかった特徴量ほど、「AとBを見分けるのに役立つ重要な特徴量」と評価されます。  

 多数決= 最終の答え合わせ(予測時)
 不純度減少 = データをきれいに分ける力(学習時)

ブースティング(Boosting)とは?

ブースティングは「弱いモデルを順番に強化(Boost)する」手法です。
バギングが“みんなで平均”なのに対し、ブースティングは“チームリレー”のように直列で学習します。前のモデルの誤りを次のモデルが修正しながら、全体を徐々に賢くしていきます。

仕組みの流れ

  1. 最初に単純なモデル(弱学習器)で学習。
  2. 誤分類されたデータに重みを付け、次のモデルが重点的に学習。
  3. これを繰り返し、最終的に全モデルの結果を重み付きで統合。

イメージ:1人目がざっくり解き、2人目が間違いを直し、3人目がさらに改善する。各モデルが「前回のミスを反省して進化する」流れです。
問題では 「逐次的」と良く表現される。

代表的なアルゴリズム

  • AdaBoost(Adaptive Boosting)
    「Adaptive=適応的に」学習を強化。誤分類したデータほど重みを増やし、次のモデルがそこを重点的に学習。人間でいえば「間違えた問題を復習して克服する」イメージ。
  • Gradient Boosting
    「Gradient=勾配(坂道の傾き)」の方向に沿って誤差を少しずつ減らす。最初に単純モデルを作り、残差を次のモデルで学習して全体の誤差を削る。
  • XGBoost / LightGBM / CatBoost
    Gradient Boostingをベースに改良した“実践型三兄弟”。
    – XGBoost(Extreme Gradient Boosting):極限まで最適化。メモリ効率・並列処理に優れる。
    – LightGBM(Light Gradient Boosting Machine):軽量・高速。大規模データ向け。
    – CatBoost(Categorical Boosting):カテゴリ変数を自動で扱える。

バギングとブースティングの違いまとめ

観点バギングブースティング
学習の流れ並列(独立モデル)直列(順番に修正)、逐次的
目的分散の削減(安定化)バイアスの削減(精度向上)
代表例ランダムフォレストAdaBoost, XGBoostなど
過学習の傾向起きにくい起きやすい(調整が必要)
学習速度比較的速いやや遅いが高精度

コメント