バギング(Bagging)は、アンサンブル学習と呼ばれる機械学習手法の一つであり、予測性能の向上と過学習の抑制を目的とした技術です。
バギングという名称は、「Bootstrap Aggregating」を略したもので、その名の通り「ブートストラップ」と「集約(アグリゲーティング)」という二つの主要なステップから成り立っています。
まず、ブートストラップのステップでは、元の訓練データセットから、重複を許してランダムにデータを抽出することで、元のデータセットと同サイズの新しい訓練用サブセットを複数作成します。これにより、データセットごとに微妙に異なる、多様な訓練データが用意されます。
次に、集約(アグリゲーティング)のステップに移ります。このサブセットごとに独立して個別の予測モデル(ベースモデル)を訓練します。例えば、決定木をベースモデルとして使う場合、異なるデータセットで多数の決定木を学習させることになります。
そして、最終的な予測を行う際には、これらの個別に訓練された多数のモデルの予測結果を集約します。分類問題であれば、最も多くのモデルが選んだクラスを最終的な答え(多数決)とし、回帰問題であれば、各モデルの予測値の平均を取ることが一般的です。
この手法の最大の利点は、個々のモデルが学習データのわずかな変動に敏感になりすぎる(過学習)ことを防ぎ、結果として予測の安定性と汎化性能を高められる点にあります。
特に、決定木のようにデータセットの小さな変化に影響されやすいモデルと組み合わせることで、非常に効果を発揮します。バギングは、ランダムフォレストといった強力なアルゴリズムの基盤としても利用されている、実用性の高いアンサンブル手法です。
