TL

ランダムフォレストとバギングの分散低減理論

ランダムフォレストがなぜ過学習に強いのか。木を脱相関させて分散だけを削るバギングの数理を、相関ρと木数Bの式から押さえれば、木の本数や特徴サブサンプリング数の調整に根拠が持てます。

応用ランダムフォレストバギングアンサンブル決定木分散低減OOB最終更新: 2026-06-21
TL;DR要点だけ先に
  • 1.バギングはブートストラップ標本で多数の木を作って平均する。木が独立なら分散は 1/B に下がるが、同じデータ由来の木は相関するため、平均の分散は ρσ²+(1-ρ)σ²/B に収束し、相関ρが下限を決める。
  • 2.ランダムフォレストは各分割で特徴をランダムに絞る(mtry 個)ことで木をさらに脱相関させ、ρ を下げて B を増やしたときの分散下限を押し下げる。バイアスはほぼ単木のまま、分散だけを削るのが狙い。
  • 3.ブートストラップで選ばれなかった約 37% の Out-of-Bag 標本で各点を未学習の木だけで予測すれば、交差検証なしに汎化誤差を推定できる。特徴重要度は不純度減少と Permutation の2系統がある。

バギング:ブートストラップ標本で木を平均する

バギング(bagging, bootstrap aggregating) は、分散の大きい予測器を多数作って平均することで分散を下げるアンサンブル手法です。決定木は典型例で、深く育てた木は訓練データの細部に過敏に反応する——つまりバイアスは低いが分散が高い学習器です。バギングはこの「分散の高さ」だけを狙って削ります。

手順は単純です。サイズ n の訓練データから復元抽出(with replacement) で同じサイズ n の標本を B 個作り(ブートストラップ標本)、それぞれで木を1本ずつ独立に育て、最後に出力を平均(回帰)または多数決(分類)します。

for b = 1..B:
    D_b = D から復元抽出した n 個のブートストラップ標本
    T_b = D_b で育てた決定木(枝刈りせず深く育てるのが基本)
予測:
    回帰   f_bag(x) = (1/B) Σ_b T_b(x)
    分類   多数決(または各木のクラス確率の平均)

なぜ復元抽出なのか。各ブートストラップ標本は元データの分布を近似しつつ、標本ごとに少しずつ中身が違うため、育つ木も互いに異なります。この「少しずつ違う木」を平均することが分散低減の源泉です。バイアスを足すブースティング(勾配ブースティング)とは目的が逆で、バギングは各木のバイアスを保ったまま分散だけを縮めます。

分散低減の数理:相関ρが下限を決める

バギングの核心は、平均化が分散をどれだけ下げるかという1点に尽きます。各木の予測 T_b(x) を確率変数とみなし、分散を σ²、相異なる2本の木の予測どうしの相関係数を ρ とします。B 本の平均 f_bag の分散は次式になります。

Var(f_bag(x)) = ρ σ² + (1 - ρ) σ² / B

この式が理論の中心です。導出は素直で、B 個の確率変数の平均の分散を、分散項と共分散項に分けるだけです。

Var( (1/B) Σ T_b )
  = (1/B²) [ Σ Var(T_b) + Σ_{i≠j} Cov(T_i, T_j) ]
  = (1/B²) [ B σ² + B(B-1) ρ σ² ]      (Cov = ρσ²)
  = σ²/B + (B-1)/B · ρ σ²
  → ρ σ²     (B → ∞ のとき)

ここから2つの重要な帰結が出ます。第一に、木が完全に独立(ρ = 0)なら分散は σ²/B となり、本数 B を増やすほど 0 に近づきます。第二に、現実には同じ訓練データ由来の木は相関する(ρ > 0)ため、第1項 ρσ²B を無限に増やしても消えません。いくら木を増やしても分散は ρσ² までしか下がらない——これが分散低減の下限です。

なぜ木の本数 B は「多いほど良い」が頭打ちになるのか

ρσ² + (1-ρ)σ²/B の第2項 (1-ρ)σ²/B は B を増やすと減りますが、第1項 ρσ² は B に依存しません。したがって B を増やすほど分散は単調に下がるものの、ρσ² という床に漸近します。木を増やしても過学習が悪化しない(誤差が増えない)一方、ある本数を超えると改善が頭打ちになるのはこのためです。B は「精度を上げる」のではなく「分散低減を下限まで使い切る」ためのパラメータだと理解すると、調整の指針が明確になります。

ランダムフォレスト:特徴サブサンプリングで木を脱相関させる

下限 ρσ² を下げるには、木どうしの相関 ρ を下げるしかありません。ここがランダムフォレスト(random forest, Breiman 2001) の発明です。バギングに加えて、各分割(split)の候補特徴量をランダムに mtry 個だけに絞る——この特徴サブサンプリング(feature subsampling)が決定打になります。

なぜ効くか。素のバギングでは、もし1つだけ非常に強い特徴量があると、ほとんどの木がその特徴量を根の近くで使い、結果として木が互いに似てしまいます(ρ が高い)。各分割で候補特徴を mtry 個に制限すると、強い特徴量が候補に入らない分割が増え、木ごとに違う特徴量で枝分かれするようになります。これにより ρ が下がり、分散の下限 ρσ² そのものが押し下がります。

ランダムフォレスト = バギング + 各分割での特徴サブサンプリング
  各ノードの分割時: 全 p 特徴から mtry 個をランダム抽出し、その中で最良分割を選ぶ
  分類の既定:  mtry ≈ sqrt(p)
  回帰の既定:  mtry ≈ p/3

mtry は相関とバイアスのトレードオフを握ります。mtry を小さくするほど木は脱相関して ρ が下がりますが、各分割で最良特徴を見落としやすくなり個々の木のバイアスと分散 σ² がやや上がる。逆に mtry = p(全特徴)なら素のバギングに戻り ρ が高止まりします。最適点は「ρ の低下」と「σ² の上昇」の釣り合いで決まります。

手法ブートストラップ標本特徴サブサンプリング木間相関 ρ狙い
単体の決定木なし(全データ)なし低バイアス・高分散
バギングありなし高め分散低減(ρσ² が下限)
ランダムフォレストありあり(mtry 個)低い脱相関で下限 ρσ² を押し下げる
Extra Treesなし or ありあり+分割閾値もランダムさらに低いρ をさらに下げ分散を一段削る
バイアスは下がらない:分散だけを削る手法だと割り切る

バギングとランダムフォレストは分散低減の手法であって、バイアス低減の手法ではありません。平均しても各木のバイアスはそのまま残るため、もとの木が系統的に当たらない(バイアスが高い)問題には効きません。逆に言えば、各木は枝刈りせず深く育てて分散を高めに・バイアスを低めにしておくのが定石です。バイアスを下げたいなら、残差を逐次補正する勾配ブースティングの系統が適します。この使い分けはバイアス・バリアンス分解の枠組みで整理すると明快です。

Out-of-Bag(OOB)誤差:交差検証なしの汎化推定

ブートストラップには副産物があります。サイズ n から復元抽出で n 個選ぶとき、ある1点が1回も選ばれない確率は次のように約 37% に収束します。

P(点 i が標本 b に選ばれない) = (1 - 1/n)^n → e^(-1) ≈ 0.368   (n → ∞)

つまり各ブートストラップ標本は元データの約 63% しか含まず、残り約 37% はその木にとって未学習(out-of-bag, OOB) です。この性質を使うと、別途の検証データや交差検証なしに汎化誤差を推定できます。各データ点 i について、「i を含まない木だけ」を集めて予測を集約し、その誤差を全点で平均したものが OOB 誤差です。

OOB 予測(i) = i を含まない木 { T_b : i ∉ D_b } だけで集約した予測
OOB 誤差    = (1/n) Σ_i loss( y_i, OOB予測(i) )

各点は平均して全木の約 37%(独立な木)で予測されるため、OOB 誤差は十分な木数があれば交差検証に近い推定を与えます。学習の途中でほぼ無償で計算でき、別個のホールドアウトを切らずに済むのが利点です。一般の評価指標との関係はモデル評価で整理しています。

特徴重要度:不純度減少と Permutation

ランダムフォレストは予測だけでなく特徴重要度(feature importance) を出せます。主流は2系統あり、性質が異なります。

方式計算方法長所注意点
不純度減少(MDI / Gini)各特徴が分割で減らした不純度(ジニ・分散)を全木で合計・平均学習中に副産物として高速に得られる高カーディナリティ・連続特徴に偏りやすい(多くの分割候補を持つため過大評価)
Permutation 重要度OOB で対象特徴の値だけをシャッフルし、予測精度の低下量を測るモデル非依存・予測性能への寄与を直接測る計算コスト高。相関する特徴間で重要度が分散・希釈される

不純度減少(MDI, Mean Decrease in Impurity) は、各特徴がノード分割で減らした不純度(ジニ係数や分散)を全ノード・全木で積み上げた値です。学習中にタダで得られる反面、取りうる値が多い特徴(高カーディナリティのカテゴリや連続値)を過大評価する既知のバイアスがあります。分割候補が多いほど偶然うまく当たる分割を選びやすいためです。

Permutation 重要度は、OOB データで対象特徴の列だけをランダムに並べ替え、その特徴と目的変数の関係を壊したときに予測精度がどれだけ落ちるかで測ります。落ち込みが大きいほど重要、という直感に忠実で、モデルの予測性能への寄与を直接評価します。ただし計算コストが高く、相関する特徴が複数あると重要度が互いに希釈される(片方をシャッフルしても相関相手が情報を補うため低く出る)点に注意が必要です。

試験・面接で問われる勘所

「ランダムフォレストはなぜ過学習しにくいのか」と問われたら——分散低減の式 Var = ρσ² + (1-ρ)σ²/B を挙げ、ブートストラップと特徴サブサンプリングで木を脱相関させ ρ を下げることで分散の下限 ρσ² を押し下げる、と答えます。「バイアスは下がらず分散だけ削る」「mtry は分類で sqrt(p)・回帰で p/3」「OOB は選ばれない確率 e^(-1)≈37% を使った交差検証なしの誤差推定」「MDI は高カーディナリティ特徴に偏るので Permutation を併用」がキーワードです。バギングとブースティングの違い(分散低減 vs 逐次バイアス低減)も頻出です。

まとめ

ランダムフォレストの本質は、分散の高い深い決定木を、互いに脱相関させて平均することにあります。バギングはブートストラップ標本で木を多様化し、平均によって分散を ρσ² + (1-ρ)σ²/B まで下げます。木の本数 B を増やせる限り第2項は消えますが、第1項 ρσ² が下限として残るため、ランダムフォレストは各分割の特徴サブサンプリング(mtry)で ρ 自体を下げ、この下限を押し下げます。バイアスはほぼ単木のまま、削れるのは分散だけ——だからこそ過学習に強い一方、系統的な当て損ないには効きません。OOB 誤差は復元抽出の約 37% を使った無償の汎化推定を、特徴重要度は MDI と Permutation の2系統を与えます。式 ρσ² + (1-ρ)σ²/B を起点に「何を増やすと何が下がるか」を押さえれば、木数や mtry の調整は当てずっぽうではなく分散下限を操作する意図的な設計になります。

AI/機械学習 Article

ランダムフォレストとバギングの分散低減理論を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

ランダムフォレスト

比較で見る軸

難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 6

導入後に効く点

ランダムフォレストは各分割で特徴をランダムに絞る(mtry 個)ことで木をさらに脱相関させ、ρ を下げて B を増やしたときの分散下限を押し下げる。バイアスはほぼ単木のまま、分散だけを削るのが狙い。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
AI/機械学習
タグ数
6

判断チェックリスト

  • 自社の用途が「ランダムフォレスト / バギング」に近いか確認する。
  • 強みである「バギングはブートストラップ標本で多数の木を作って平均する。木が独立なら分散は 1/B に下がるが、同じデータ由来の木は相関するため、平均の分散は ρσ²+(1-ρ)σ²/B に収束し、相関ρが下限を決める。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

ランダムフォレストバギングアンサンブル決定木分散低減ランダムフォレストバギングアンサンブル