バギングの意味と、ブースティングとの違い - 具体例で学ぶ数学
算数から高度な数学まで、網羅的に解説したサイト
バギングの意味と、ブースティングとの違い
具体例で学ぶ数学 > 確率、データ処理	> バギングの意味と、ブースティングとの違い
最終更新日 2019/07/14
バギングとブースティングは、アンサンブル学習の代表的な手法です。
バギングの方が、ブースティングよりも素早く計算ができることが多いです。
ブースティングの方が、バギングよりも精度の高いモデルが得られることが多いです。
アンサンブル学習は、弱学習器（決定木など、簡単に構成できるが、精度はそこまで高くないモデル）をたくさん集めることで、精度の高い分類や予測を行う手法です。このページでは、アンサンブル学習の代表的な手法である、バギングとブースティングについて解説します。
目次
バギングとは
ブースティングとの違い
バギングとブースティングの比較
バギングとは
バギングとは、ブートストラップサンプリングを使って、独立に多数の弱学習器を作って「多数決を取ったものを出力とする」ような手法のことです。
例えば、弱学習器を決定木（分類木）にした場合のバギングは、図のようになります。
ブートストラップとは、復元抽出によって、各弱学習器のデータセットを作成する手法のことです。例えば、もとのデータが $(d_1,d_2,d_3,d_4,d_5)$ の５つからなるとき、
・１番目の決定木の作成には $S_1=(d_1,d_2,d_4,d_4)$ を使い
・２番目の決定木の作成には $S_2=(d_1,d_3,d_4,d_5)$ を使う
というような感じです。
バギングの代表的な例として、ランダムフォレストが挙げられます。
参考：ランダムフォレストの概要を大雑把に解説
※「多数決」の部分は回帰問題の場合は「平均値」などの代表値を取る計算に変わります。
ブースティングとの違い
バギングと同じく「たくさんの弱学習器を作って多数決を取る」ような手法として、ブースティングが挙げられます。
ブースティングでは、バギングのように弱学習器を独立に作るのではなく、1つずつ順番に弱学習器を構成していきます。その際、$k$ 個目に作った弱学習器をもとに（弱点を補うように）$k+1$ 個目の弱学習器を構成します。
例えば、弱学習器を決定木（分類木）にした場合のバギングは、図のようになります。
ブースティングの具体例としては、AdaBoost、XGBoost、LightGBM、CatBoost などがあります。
参考：ブースティングとアダブースト（AdaBoost）について詳しく解説
バギングとブースティングの比較
バギングは、弱学習器を独立に作成するため、計算を並列に行うことができます。そのため、計算時間をかけずに、比較的精度の高いモデルを得ることができます。
一方、ブースティングは、今まで作った弱学習器の弱点を補うように次の弱学習器を作るので、全体として、より精度の高いモデルを得ることができます。
つまり、
・とにかく素早くそれなりのモデルが欲しい場合は、ランダムフォレストなどのバギングの手法を使う
・とにかく精度の高いモデルが欲しい場合は、LightGBMなどのブースティングの手法を使う
というのがおすすめです。
次回は スタッキング(stacked generalization)の発想とやり方 を解説します。
サイト内検索
検索:
カテゴリー
計算
図形
指数、対数、三角関数
微積分
確率、データ処理
推定、検定
経済
日常の計算
その他
ページ上部へ戻る
Copyright © 具体例で学ぶ数学 All rights reserved.
