【らんだむふぉれすと】

ランダムフォレスト とは?

最終更新:
💡 違う決定木の予測を集めて判断する

学習データの抽出や分岐候補の特徴量にランダム性を入れ、複数の決定木の予測を組み合わせるアンサンブル学習の手法。分類と回帰に使われ、集約方法は実装や用途で異なる。

📌 このページのポイント
ランダムフォレスト:予測を集める 同じ入力を3本の決定木へ猫か犬かを分類する例決定木 1猫の確率 0.8決定木 2猫の確率 0.4決定木 3猫の確率 0.6確率を平均:猫 0.6 / 犬 0.4平均確率が大きい「猫」を選ぶ学習ではデータの抽出や各分岐の特徴量候補にランダム性を入れる
scikit-learnの分類を単純化した例。木は3本だけ示しています。猫と犬の2クラスで、各木の確率を平均します。
ひよこ ひよこ
木を増やせば必ず正確になるの?
ペンギン先生 ペンギン先生
複数の木が違う誤り方をすれば、予測をまとめることで一部の誤りを打ち消せるよ。単独の木のばらつきを減らす狙いがあるんだ。ただし、本数を増やすだけで精度が上がり続けるわけではなく、学習に使っていないデータで確かめる必要があるね。
ひよこ ひよこ
どこをランダムにするの?
ペンギン先生 ペンギン先生
典型的には、元の学習データから同じ行が複数回選ばれてもよい復元抽出で、木ごとの学習データを作る。さらに各分岐で調べる特徴量の候補をランダムに絞るんだ。木ごとに固定した特徴量だけを使い続ける、という説明とは違うよ。
ひよこ ひよこ
分類の答えは多数決で決めるの?
ペンギン先生 ペンギン先生
元の手法では、各木が選んだクラスの多数決で分類するよ。ただしscikit-learnのRandomForestClassifierは、各木の予測確率を平均する。たとえば猫の確率が0.8、0.4、0.6なら平均は0.6で、犬の0.4より大きいので猫を選ぶんだ。
ひよこ ひよこ
数値を予測する場合は?
ペンギン先生 ペンギン先生
回帰では木の数値予測を平均するよ。たとえば3本の予測が110、120、130なら結果は120。木を多くすると学習や予測に時間がかかり、メモリも使うので、精度と計算量を見て設定するんだ。
ひよこ ひよこ
バギングとはどう違うの?
ペンギン先生 ペンギン先生
バギングはデータを復元抽出して複数のモデルを学習し、予測を集約する考え方だよ。ランダムフォレストは決定木を使い、各分岐の特徴量候補にもランダム性を入れる。scikit-learnではbootstrapやmax_featuresを変更でき、全データや全特徴量を使う設定もあるから、設定まで確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ランダムフォレスト」って出てきたら「ランダム性を入れた複数の決定木の予測を組み合わせる手法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Random Forest」 = ランダムな森
💬 Forestは「森」。ランダム性を入れた決定木の集まりを、木が集まった森として捉える呼び名だよ。

参考資料

← 用語集にもどる