G検定(ジェネラリスト検定)
らんだむふぉれすと
ランダムフォレスト
Random Forest
ランダムフォレストは、ブートストラップ標本ごとに多数の決定木を作り、各分割で使う説明変数をランダムに絞り込むことで木どうしの似かよりを減らし、それらの予測を組み合わせるアンサンブル学習の手法です。
詳しい説明
ランダムフォレストとは
ランダムフォレスト(Random Forest)は、多数の決定木を組み合わせて1つの予測を出す手法です。名前のとおり、ランダムな要素を入れて育てた木を森のように集めたものです。
提唱者のブレイマン(Leo Breiman)は2001年の論文の冒頭で、ランダムフォレストを「木予測器の組み合わせであり、各木は、森のすべての木について独立に、同じ分布からサンプリングされたランダムベクトルの値に依存する」と定義しています。つまり、1本1本の木はそれぞれ別のランダムな値にもとづいて作られ、そのランダムな値は木ごとに独立に、同じ決まりで選ばれます。
バギングを出発点にした手法
ランダムフォレストの土台にはバギングがあります。ブレイマンは同じ論文の中で、ランダムさを使って木の集まりを作る手法の早い例としてバギング(Breiman 1996)を挙げています。
ジェームズ(Gareth James)らの教科書『An Introduction to Statistical Learning』の説明でも、ランダムフォレストはバギングと同じように、訓練データからブートストラップ標本(元のデータから重複を許して取り出した標本)を何組も作り、その1組ごとに決定木を1本作ります。ここまではバギングと同じです。違いは、木の中で分割を決めるときのやり方にあります。
分割のたびに説明変数を絞り込む
決定木は、ノードごとに「どの説明変数で、どの値を境に分けるか」を選んで枝分かれしていきます。ランダムフォレストでは、この分割のたびに、p個ある説明変数の全体からランダムにm個だけを選び、そのm個の中からだけ分割に使う変数を選びます。分割のたびに選び直すので、ノードが変われば候補になる変数も変わります。
選ぶ個数mは、通常 m ≈ sqrt(p)、つまり説明変数の総数の平方根くらいにします。たとえば説明変数が16個なら、各分割で候補になるのは4個ほどです。
m = p とすると、毎回すべての説明変数が候補になるので、ランダムフォレストはバギングと一致します。この意味で、バギングはランダムフォレストの特別な場合とみなせます。
木どうしの似かよりを減らす理由
なぜ候補をわざわざ減らすのかは、強い説明変数が1つある場合を考えると分かります。バギングだけでは、どのブートストラップ標本で木を作っても、その強い変数が最初の分割に選ばれやすくなります。すると、できあがる木はどれも似た形になり、予測も似かよります。
似かよった予測をいくら平均しても、ばらつき(分散)はあまり減りません。平均で分散を減らす効果は、平均する予測どうしの相関が低いほど大きくなるからです。
ランダムフォレストでは、分割の候補から強い変数が外れる場面が出てくるため、ほかの変数が分割に使われる機会が生まれます。その結果、木どうしの相関が下がります。ジェームズらはこれを「木を非相関化する」(decorrelating the trees)と表現し、これによって、バギングだけでは十分に減らなかった分散を減らせると説明しています。
ほかの手法との比べられ方
ブレイマンは論文の中で、各ノードの分割に使う特徴量をランダムに選ぶ手法は、ブースティングの代表的な手法であるAdaBoost(フロイント(Yoav Freund)とシャピレ(Robert Schapire)の1996年の手法)と比べて良好な誤差率を示し、しかもノイズに対してより堅牢であると述べています。
試験で問われること
G検定
- ランダムフォレストは、バギングと同じようにブートストラップ標本ごとに決定木を作り、それらを組み合わせるアンサンブル学習の手法である。
- バギングとの違いは、各分割でp個の説明変数からランダムにm個だけを選び、その中からだけ分割に使う変数を選ぶ点にある。mは通常 m ≈ sqrt(p) とし、m = p ならバギングと一致する。
- 説明変数を絞り込む狙いは木どうしの相関を下げること(木の非相関化)であり、強い説明変数があってもすべての木が似た形になるのを防ぎ、平均したときの分散を減らせる。
- 提唱者はブレイマン(Leo Breiman)で、2001年の論文で、特徴量をランダムに選んで分割する手法がAdaBoostと比べて良好な誤差率を示し、ノイズに対してより堅牢だと述べている。
最終更新日: 2026/09/23