1 基本概念と歴史
1.1 バギングの定義
バギング(Bootstrap Aggregating)は、アンサンブル学習手法の一種であり、元の訓練データセットから復元抽出(ブートストラップサンプリング)によって複数のサブセットを生成し、それぞれに対して弱学習器を独立に学習させた後、それらの予測結果を平均または多数決によって統合する手法である。主に、高分散なモデル(特に決定木)の分散を低減し、過学習を抑制する効果を持つ。
1.2 提案者と発展の経緯
バギングは、1996年にLeo Breimanによって提案された。Breimanは、ブートストラップ法(Efron, 1979)を機械学習に応用し、複数のモデルを組み合わせることで単一モデルの不安定性を改善できることを示した。その後、バギングはランダムフォレスト(Breiman, 2001)の基盤となり、アンサンブル学習の代表的手法として広く普及した。
1.3 アンサンブル学習における位置づけ
アンサンブル学習は、複数の学習器を組み合わせて単一のモデルより優れた性能を目指す手法である。バギングは「並列型アンサンブル」に分類され、各弱学習器が独立に学習される点で、逐次的に学習を行うブースティングと対比される。また、バギングは分散低減に特化しており、バイアス低減を主目的とするブースティングとは異なる特性を持つ。
2 アルゴリズムの仕組み
2.1 ブートストラップサンプリング
2.1.1 サンプリング方法と復元抽出
ブートストラップサンプリングでは、元のデータセットから復元抽出(重複を許す抽出)によって、元のデータ数と同じサイズのサブセットを複数生成する。各サブセットでは、元のデータの約63.2%が少なくとも1回選ばれ、残りはサンプルされない(アウトオブバッグデータと呼ばれる)。この手続きにより、各サブセットは元の分布を近似しつつも、異なるバリエーションを持つ。
2.1.2 サブセットサイズの設計
通常、各サブセットのサイズは元のデータセットのサイズ$n$と等しく設定される。しかし、データ数が極端に多い場合や、ノイズが多い状況では、より小さなサブセット(例えば$n$の半分)を用いることもある。サブセットサイズは、弱学習器の多様性と性能に影響を与えるため、問題に応じて調整される。
2.2 弱学習器の学習プロセス
2.2.1 選択されるモデルの種類
バギングで使用される弱学習器には、決定木(特に剪定を行わない深い決定木)が最も一般的である。決定木は高分散で過学習しやすいが、バギングによって分散が大幅に削減される。他にも、ニューラルネットワークや最近傍法(k-NN)など、分散が大きいモデルにも適用可能である。
2.2.2 学習の独立性と並列性
各弱学習器は異なるブートストラップサブセット上で独立に学習されるため、学習プロセスは並列化が容易である。この並列性により、分散コンピューティング環境で効率的に実行でき、計算時間を短縮できる。
2.3 アグリゲーション(集約)戦略
2.3.1 回帰問題における平均化
回帰問題では、全弱学習器の予測値の算術平均を最終的な予測値とする。例えば、$T$個の弱学習器の予測を$\hat{f}_1(x), \ldots, \hat{f}_T(x)$とすると、バギングの予測は$\hat{f}_{\text{bag}}(x) = \frac{1}{T}\sum_{t=1}^{T}\hat{f}_t(x)$となる。
2.3.2 分類問題における多数決
分類問題では、各弱学習器が予測したクラスラベルについて多数決(最頻値)をとる。タイブレークが発生した場合は、ランダムに選択するか、信頼度の高いモデルの投票に重みを付ける場合もある。この単純な集約が、全体の分類精度を安定化させる。
3 応用と具体的事例
3.1 ランダムフォレストとの関係
ランダムフォレストは、バギングを決定木に適用する際に、各ノードの分割で使用する特徴量をランダムにサブサンプリングすることで、木間の相関をさらに低下させた手法である。バギングが「行方向」のランダム性(データサンプリング)のみを導入するのに対し、ランダムフォレストは「列方向」のランダム性も加える。そのため、ランダムフォレストはバギングの改良版として位置づけられ、より高い性能を発揮することが多い。
3.2 実際の機械学習プロジェクトでの使用例
バギングは、金融分野での信用リスク評価、医療診断における病気予測、マーケティングにおける顧客離反予測など、様々な実務で利用されている。特に、データにノイズが多い環境や、特徴量が多くて複雑な問題に対して、バギングは安定した予測を提供する。また、アウトオブバッグスコアを用いれば、別途交差検証を行わずにモデルの性能を評価できる利点がある。
3.3 主要なライブラリと実装(scikit-learnなど)
Pythonのscikit-learnライブラリには、BaggingClassifierおよびBaggingRegressorクラスが用意されている。これらは、ベース推定器(デフォルトは決定木)とバギングのパラメータ(推定器数、サブセットサイズ、ブートストラップの有無など)を指定するだけで簡単に利用できる。また、ランダムフォレストもRandomForestClassifierとして別途実装されており、バギングの亜種として広く使われている。
4 理論的性質と利点・欠点
4.1 分散低減効果の数学的考察
バギングの分散低減効果は、各弱学習器の予測が互いに独立であれば、アンサンブルの分散は個々の分散の$1/T$に減少するという性質に基づく。しかし、実際にはブートストラップサンプルが元のデータ分布に基づくため、弱学習器間には正の相関が存在する。この相関を$\rho$とすると、アンサンブルの分散は$\frac{1}{T}\sigma^2 + \frac{T-1}{T}\rho\sigma^2$($\sigma^2$は個々のモデルの分散)となる。つまり、相関が低いほど分散低減効果が大きい。
4.2 バイアスへの影響
バギングは弱学習器のバイアスをほとんど変えない。元のモデルが高いバイアスを持つ場合(例えば線形モデル)、バギングを適用してもバイアスは改善されない。そのため、バギングは低バイアス・高分散なモデル(深い決定木など)に最も効果的であり、バイアスが主な誤差要因となる問題には向かない。
4.3 計算コストと並列化のメリット
バギングは$T$個の弱学習器を訓練するため、単一モデルと比べて計算コストは約$T$倍になる。しかし、各学習が独立であるため、マルチコアCPUやクラスタ環境での並列実行が容易であり、実用的な時間で実行可能である。また、アウトオブバッグサンプルを用いれば、別途検証データを確保する必要がなく、計算資源を有効活用できる。
4.4 限界と注意点
バギングは、弱学習器間の相関が高い場合(例えば、特徴量が少なくデータが均質な場合)には効果が薄れる。また、データセットが非常に小さい場合、ブートストラップサンプリングによる多様性が十分に得られず、性能向上が限定的である。さらに、バギングはモデルの解釈性を低下させる(多数のモデルの平均であるため)点も注意が必要である。
5 発展的トピック
5.1 バギングとブースティングの比較
バギングとブースティングは、どちらもアンサンブル学習手法であるが、その動作原理は対照的である。バギングは弱学習器を並列に学習し、分散低減に寄与する。一方、ブースティングは逐次的に学習し、前のモデルの誤りを重視することでバイアス低減を図る。一般的に、バギングは高分散なモデル(決定木)に、ブースティングは高バイアスなモデル(浅い木)に適しており、問題に応じて使い分けられる。
5.2 適応的バギング(Adaptive Bagging)
適応的バギングは、標準的なバギングにサンプリングの重み付けを導入した手法である。各ブートストラップサンプルを生成する際に、過去のモデルの性能に応じてデータポイントの選択確率を調整することで、困難なサンプルに重点を置く。これにより、バギングの性能をさらに向上させることができるが、計算コストは増加する。
5.3 スーパーラーニングとの統合
スーパーラーニング(Super Learning)は、複数の異なるアルゴリズムを組み合わせるアンサンブル手法であり、バギングはその構成要素として利用される。例えば、各ベース学習器をバギングで強化した上で、それらをスタッキング(Stacking)で統合することが可能である。この統合により、多様な特性を持つモデルを効果的に組み合わせ、より高い予測性能を達成できる。