「手元のデータが1セットしかないのに、何個も学習用データを作れるの?」——それを可能にするのがブートストラップサンプリングです。バギングやランダムフォレストの土台になる考え方を、初心者向けにていねいに解説します。

📖 ひと言でいうと

ブートストラップサンプリングとは、手元のデータ集合から「重複を許して」ランダムにデータを取り出し、新しいデータセット(標本)を作り直す手法です。同じ操作を何回も繰り返せば、1つの元データから少しずつ中身の違うデータセットを何個でも作れます。

身近な例えでいうと、くじ引きの箱から1枚引いてメモしたら「箱に戻してから」次を引く、というくじ引きを繰り返すイメージです。戻してから引くので同じくじが2回出ることもあれば、最後まで一度も出ないくじもあります。この「戻してから引く(復元抽出)」が最大の特徴です。

🖼 1枚でわかるブートストラップサンプリング

ブートストラップサンプリングの要点
  • 重複を許すランダム抽出 — 同じデータが何回選ばれてもよい(復元抽出)
  • 1つのデータから複数の標本を作れる — 少しずつ違うデータセットを量産
  • バギングの第一歩 — 複数標本で複数モデルを学習し結果を統合
  • ランダムフォレストでも利用 — 各決定木に別々の標本を配る
  • 小さい・ノイズが多いデータで有効 — 過学習の抑制に役立つ
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

母集団となるデータがあるとき、母集団から重複を許してランダムにいくらかデータを取り出して再標本化をする手法。バギングでは、まず母集団からBootstrap samplingによって複数のサンプルを抽出する。ブートストラップサンプリングを利用したアンサンブル学習の手法にバギングがある。ブートストラップサンプリングとバギングは、特にデータセットが小さい場合やノイズが多い場合に有効である。

ポイントは「重複を許して」「再標本化」の2語です。普通の分割(たとえば訓練データとテストデータを分ける操作)では同じデータは1回しか使いませんが、ブートストラップサンプリングでは同じデータが2回3回と選ばれることがあります。その代わり、選ばれないデータも出ます。こうして元データと同じくらいのサイズの「別バージョンのデータセット」を何個も作り、それぞれで学習した複数モデルの結果をまとめる手法がバギングです。

🔍 しっかり理解する

なぜ「重複あり」で取り出すのか

機械学習では、データが少ないほどモデルが手元のデータの偶然の特徴まで覚え込んでしまう「過学習」が起こりやすくなります。理想は「データを何セットも集め直して、複数のモデルを学習させて平均する」ことですが、現実にはデータ収集をやり直すコストは払えません。

そこで、手元の1セットを母集団の「代わり」とみなし、そこから復元抽出することで疑似的にデータ収集をやり直したことにする——これがブートストラップサンプリングの発想です。「ブートストラップ(靴のつまみ革)」という名前は、「自分の靴ひもを引っ張って自分を持ち上げる」という英語の慣用句に由来し、外部の追加データに頼らず自前のデータだけでやりくりすることを表しています。

バギングにつながる流れ

ブートストラップサンプリングは単体で使うというより、アンサンブル学習(複数モデルの組み合わせ)の前処理として登場します。流れは次のとおりです。

元データ
母集団とみなす1セット
復元抽出
重複ありで標本を複数作成
並列学習
標本ごとにモデルを学習
結果を統合
多数決や平均で最終出力

各標本は中身が少しずつ違うので、学習されるモデルも少しずつ違う「個性」を持ちます。1つのモデルが偶然のノイズに引きずられても、多数決や平均を取れば互いの誤りが打ち消し合い、全体として安定した予測になります。だからこそ公式テキストにあるとおり、データセットが小さい場合やノイズが多い場合に特に有効なのです。

ランダムフォレストとの関係

ランダムフォレストは「バギング+決定木」の代表例で、各決定木にブートストラップサンプリングで作った別々の標本を与えて学習させます(さらに特徴量もランダムに選びます)。G検定では「ブートストラップサンプリング→バギング→ランダムフォレスト」という積み重ねの関係がそのまま問われやすいので、この3語のつながりを流れで理解しておきましょう。

💡 具体例で考える

たとえば、ある病院が患者100人分の検査データで病気の予測モデルを作るとします。100人分しかないので、1つの決定木を作ると、たまたま含まれていた特殊な患者の影響を強く受けた「偏った木」になりがちです。

そこでブートストラップサンプリングの出番です。100人から復元抽出で100人分を選ぶ操作を50回繰り返し、50個の標本を作ります。ある標本にはAさんのデータが3回入り、別の標本にはAさんが1回も入らない、ということが自然に起こります。この50標本で50本の決定木を育て、診断時は50本の多数決を取れば、特定の患者データへの依存が薄まり、新しい患者に対しても安定した予測がしやすくなります。なお、復元抽出では元データの約3分の1程度が各標本に選ばれず残ることが知られており、この「選ばれなかったデータ」を検証に活用する使い方(OOB評価と呼ばれます)もあります。

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

💡 ポイント
  • 「ランダムに取り出す=普通の分割」ではない: 訓練/テスト分割やホールドアウト法は重複なしの分割です。ブートストラップサンプリングは「重複を許す復元抽出」である点が本質的な違いです。
  • バギングとの混同: ブートストラップサンプリングは「標本を作る操作」そのもの、バギングは「その標本群で複数モデルを学習し統合するアンサンブル手法」です。操作と手法の関係を区別しましょう。
  • ブースティングとの混同: バギングは標本を独立に作って並列に学習しますが、ブースティング(勾配ブースティングなど)は前のモデルの誤りを重視しながら逐次的に学習します。「並列のバギング/逐次のブースティング」と対で覚えると混同しません。
  • 交差検証との混同: k分割交差検証はデータを重複なくk個に分けて評価する「モデル評価」の技法で、標本を水増しする目的のブートストラップサンプリングとは役割が異なります。

📝 試験でのポイント

💡 ポイント
  • 「重複を許してランダムに取り出す再標本化」という定義の穴埋め・正誤が問われやすく、「重複を許さない」と書き換えた誤答選択肢に注意が必要です。
  • バギング・ランダムフォレストの説明文の中で「各モデルに与えるデータを作る方法は何か」という形で登場することがあります。
  • バギングとブースティングの違い(並列か逐次か)を問う設問で、バギング側の構成要素として選ばせるパターンが想定されます。
  • 「データセットが小さい・ノイズが多い場合に有効」という適用場面も選択肢として出やすいポイントです。

📚 まとめ

ブートストラップサンプリングは、母集団となるデータから重複を許してランダムに取り出す再標本化の手法です。1つのデータセットから複数の「別バージョン」を作れるため、複数モデルを学習して統合するバギングの土台となり、ランダムフォレストでも使われています。試験では「復元抽出であること」「バギング・ランダムフォレストとのつながり」「小データ・ノイズに有効」の3点を押さえておきましょう。