1人の専門家に全部を任せるより、少しずつ違う経験を積んだ専門家たちに独立に意見を出させて多数決を取る——これがバギングの発想です。アンサンブル学習の代表格で、ランダムフォレストの土台でもあります。この記事では「並列」「ブートストラップ」「多数決・平均」というバギング固有のメカニズムを掘り下げます。

📖 ひと言でいうと

バギング(Bagging)はBootstrap Aggregatingの略で、元のデータからランダムに抽出した複数のサブセット(ブートストラップサンプル)でそれぞれ独立にモデルを学習させ、分類なら多数決、回帰なら平均で最終予測を出すアンサンブル学習の手法です。

例えるなら、同じ教科書から章をランダムに抜粋した「少しずつ違う問題集」で勉強した生徒を並べ、全員の解答の多数決を採用する仕組みです。1人ひとりはクセのある解答をしても、独立した多数の意見を集約するとクセ(ばらつき)が打ち消し合い、安定した答えになります。

🖼 1枚でわかるバギング

バギング = ブートストラップ×並列学習×多数決/平均
  • 正式名 — Bootstrap Aggregating(ブートストラップ+集約)の略
  • データ — 元データからランダム抽出したサブセットを複数作る
  • 学習 — 各モデルを「並列」に「独立」して学習(モデル間の相関が低くなる)
  • 集約 — 分類は多数決、回帰は平均で最終予測
  • 効果 — 過学習(バリアンス)を抑え汎化性能を向上。代表例はランダムフォレスト
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

Bootstrap Aggregatingの略称で、予測値と実際値の誤差が大きい場合の改善方法として用いられる。アンサンブル学習の一手法であり、複数のモデルを並列に作成し、それぞれの予測結果の多数決によって最終的な予測を行う。この方法は、オーバーフィッティングを抑制し、モデルの汎化性能を向上させることが目的である。バギングは、元のデータセットからランダムに選んだデータのサブセット(ブートストラップサンプル)を用いて、それぞれの学習器を独立に学習させる。この過程で、複数の異なるデータセットが生成され、それぞれのモデルは異なるデータセットを用いて学習されるため、モデル間の相関が低くなる。バギングの結果は、回帰問題の場合は学習器の平均値を取ることで、分類問題の場合は多数決によって最終的な予測が決定される。これにより、個々の学習器の過学習やバリアンスが低減され、全体としてより安定した予測が可能となる。代表的なバギングのアルゴリズムには、ランダムフォレストがある。

長い説明ですが、骨組みは「①ブートストラップサンプルを作る→②各学習器を独立(並列)に学習→③多数決/平均で集約」の3ステップです。そして目的は「オーバーフィッティングの抑制=バリアンスの低減=汎化性能の向上」、代表例は「ランダムフォレスト」。この骨組みと目的・代表例がそのまま試験の出題単位になります。

🔍 しっかり理解する

ブートストラップサンプル:わざと違うデータセットを作る

全学習器に同じデータを与えたら、同じようなモデルが複数できるだけで、集めても意味がありません。そこで元のデータセットからランダムにデータを選んで(通常は同じデータが重複して選ばれることを許す復元抽出で)、少しずつ中身の違うサブセット=ブートストラップサンプルを複数作ります。学習器ごとに見るデータが違うため、できあがるモデルも少しずつ違う判断のクセを持ち、モデル間の相関が低くなります。この「多様性」がバギングの生命線です。

元データ
1つの訓練データセット
ランダム抽出
ブートストラップサンプルを複数生成
並列学習
各学習器を独立に学習
集約
分類=多数決 / 回帰=平均

なぜバリアンスが減るのか

決定木のような柔軟なモデルは、訓練データが少し変わるだけで形が大きく変わります。この「データへの敏感さ」がバリアンス(予測のばらつき)で、過学習の正体のひとつです。バギングでは、各学習器の予測は個別にはばらついていても、そのばらつきの方向が学習器ごとにバラバラ(相関が低い)なので、多数決や平均を取ると互いに打ち消し合います。個々の過学習が集約の過程で洗い流され、全体として安定した予測になる——これが「バリアンスの低減」の意味です。

代表例ランダムフォレスト:バギング+特徴量のランダム化

バギングの最も有名な実装がランダムフォレストです。学習器として決定木を使い、ブートストラップサンプルで多数の木を並列に育てて多数決します。さらにランダムフォレストは、各分岐で使う特徴量もランダムに絞り込むという工夫を追加しています。データのランダム化(バギング)に特徴量のランダム化を重ねることで、木同士の相関をいっそう下げ、集約の効果を高めているのです。「ランダムフォレスト=バギングそのもの」ではなく「バギングに特徴量のランダム選択を加えたもの」という一段細かい理解が、正誤問題で効いてきます。

💡 具体例で考える

銀行の与信審査モデルをランダムフォレスト(バギング)で作る場面を考えます。過去の融資データから、たとえば500本の決定木をそれぞれ別のブートストラップサンプルで育てます。ある木はたまたま自営業者のデータを多く引いて自営業に厳しいクセを持ち、別の木は若年層データに偏って別のクセを持つ、というように木ごとの判断は揺れます。しかし新規申込者を500本全部に判定させて多数決を取ると、個々のクセが相殺され、「どのデータの引きだったか」に左右されにくい安定した審査結果が得られます。1本の深い決定木では訓練データの偶然を拾って審査がぶれる、という問題への直接の処方箋になっています。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • ブースティングとの混同(最頻出) — バギングは各学習器を「並列・独立」に学習させ、対等な多数決/平均で集約します。前の学習器の誤りを次が修正する「逐次」型のブースティングとは学習の進め方が根本的に違います。詳しい対比はブースティングの記事で扱いますが、「バギング=並列、ブースティング=逐次」の軸だけは即答できるようにしてください。
  • ブートストラップの意味 — 「データを均等に分割する」のではなく、「ランダムに抽出してサブセットを作る」操作です。同じデータが複数のサンプルに(あるいは同じサンプル内に重複して)含まれ得ます。
  • 回帰と分類で集約が違う — 多数決は分類問題の場合で、回帰問題では平均値を取ります。「回帰でも多数決」とする選択肢は誤りです。
  • 効果の対象 — バギングが主に減らすのはバリアンス(過学習によるばらつき)です。モデルの表現力不足(バイアス)を直す手法ではありません。

📝 試験でのポイント

💡 ポイント
  • 「Bootstrap Aggregatingの略」という語源はそのまま出題されます。
  • 「並列」「独立」「多数決」「ブートストラップサンプル」「モデル間の相関が低い」がバギングを指すキーワード群です。
  • 目的を問われたら「オーバーフィッティングの抑制」「バリアンスの低減」「汎化性能の向上」を選びます。
  • 「代表的なバギングのアルゴリズムはどれか」→ランダムフォレスト、の対応は確実に。逆にXGBoostやAdaBoostが並んでいたらブースティング系です。

📚 まとめ

バギング(Bootstrap Aggregating)は、ブートストラップサンプルで複数の学習器を並列・独立に学習させ、分類は多数決・回帰は平均で集約するアンサンブル学習です。学習器ごとに見るデータを変えることでモデル間の相関を下げ、個々の過学習(バリアンス)を集約で打ち消して汎化性能を高めます。代表例はランダムフォレストで、バギングに特徴量のランダム選択を加えたものです。試験では「並列・多数決」のバギングと「逐次・誤り修正」のブースティングの対比が最大の山場になります。