【機械学習の知識】数式なしでわかるブートストラップ・リサンプリングの仕組みとアルゴリズム
限られたデータから統計的な推測を行いたい。しかし、何度もデータを集め直すのは現実的に不可能。その限界を「何度も復元抽出する」というアイデアで突破するのが、ブートストラップ・リサンプリングです。
1. 【 概要 】
ブートストラップ・リサンプリングとは、手元にある元のデータセット(サンプルサイズ n)から、重複を許して(元に戻しながら)ランダムにデータを取り出し、新しい疑似的なデータセットを何度も作り出す手法です。これにより、手元のデータだけでは分からなかった「統計量のばらつき(分散や信頼区間)」を視覚的・計算的に評価できるようになります。
2. 【 基本アルゴリズム 】
(1) n 個の標本を抽出して、その平均を記録する。標本を元に戻す。
(2) この処理を N 回繰り返す。
(3) N 個の結果を使って、統計量などを計算する。
3. 整理:各ステップで何が行われているのか?
一見するとシンプルな処理ですが、データサイエンスにおいて非常に強力な効果を発揮します。それぞれのステップを具体的に見ていきましょう。
【 アルゴリズムの具体的な処理内容 】
元のデータからランダムに1個選び、記録したら「また元のデータの中に戻す」という操作(復元抽出)を n 回 繰り返して新しいデータセットを作ります。この新しいデータセットの平均値などの統計量を計算し、記録します。同じデータが2回以上選ばれることもあれば、1度も選ばれないデータもあります。
・ステップ(2):N回の繰り返し
ステップ(1)の「n個選んで平均を記録する」という一連の処理を、十分に大きな回数(N回。一般的に数百〜数千回)繰り返します。手元にN個の「疑似的な平均値のデータ」が集まることになります。
・ステップ(3):統計量の計算
集まった N 個 の結果の分布を見ることで、その統計量がどれくらいバラつくのか(標準誤差)を求めたり、95%信頼区間を推定したりします。
4. 関連して押さえたい「アンサンブル学習(バギング)への応用」
このブートストラップ・リサンプリングは、統計推定だけでなく、機械学習において高い予測精度を誇るアルゴリズムの基礎にもなっています。
代表例が「バギング(Bootstrap Aggregating)」です。バギングでは、ブートストラップ法によって大量の異なるデータセットを作り出し、それぞれで決定木などの弱学習器を並列に訓練します。これらを組み合わせたモデルが、機械学習で非常によく使われる「ランダムフォレスト」です。
5. 補足:一度も選ばれないデータ(約37%)の秘密
サンプルサイズ n が十分に大きいとき、ブートストラップ抽出において元のデータから「一度も選ばれないデータ」は理論上、全体の約36.8%(約37%)存在します(数式では (1 - 1/n)^n が 1/e に収束するため)。
機械学習のランダムフォレストなどでは、この選ばれなかった約37%のデータを「Out-of-Bag(OOB)データ」と呼び、モデルの性能をテストするための検証用データとして有効活用しています。
6. まとめ
データサイエンスや機械学習の現場において「元に戻しながら何度もデータを集め直す手法」と言えば、このブートストラップ・リサンプリングです。手元にある限られたデータからでも、計算機のパワー(反復処理)を使って統計的な信頼性を評価したり、強力なアンサンブルモデルを作ったりできる重要なアルゴリズムですので、確実に仕組みを押さえておきましょう!