機械学習のランダムフォレストについて

AI実装検定のご案内

ランダムフォレストは、多数の決定木(Decision Tree)を組み合わせて予測を行うアンサンブル学習手法です。

2001年に Breiman が提案し、現在も実務・研究の両面で広く使用されています。

その本質を一文でまとめると、

“大量の木の集合体で、単一の決定木より精度・安定性が大きく向上する学習アルゴリズム”

といえます。

目次

ランダムフォレストの構造

ランダムフォレストは「多数の決定木(forest=森)」という名称の通り、独立した複数の木を生成し、それらの結果を集約します。

  • 分類問題:多数決
  • 回帰問題:平均値

という方法で最終予測を決定します。

ランダム性が2箇所に入っている

ランダムフォレストが高精度かつ安定する理由は、次の2種類の「ランダム性」を導入することで、決定木同士の相関を下げる点にあります。

ブートストラップサンプリング(データのランダム抽出)

各木は、元データから 重複を許してランダム抽出されたサブセットで学習します。

特徴量のランダムサブスペース

木の分岐を決める際に、使用可能な特徴量の候補をランダムに絞ることで木同士の多様性が増します。

この「データの多様性 × 特徴量の多様性」がモデルを安定化させ、過学習耐性を高めています。

ランダムフォレストが優れている理由

理由①:過学習しづらい

単一の決定木は訓練データに過度適合しやすいですが、ランダムフォレストでは、

  • 多数の木による平均化
  • データや特徴量のランダム性

により、過学習傾向が強く抑制されます。

ただし「まったく過学習しないわけではない」ため、大規模データでは深さ制限を適用するほうが安定します。

理由②:パラメータ調整が少ない

必要なハイパーパラメータが少なく、デフォルト設定でも高い性能を発揮します。

機械学習アルゴリズムのなかでも 実装難度が低い部類です。

理由③:特徴量重要度が得られる

モデルがどの特徴量を重視しているかを知ることができ、解析・説明がしやすい点が強みです。

ランダムフォレストの主要パラメータ

以下は、実務でも最も調整されるパラメータです。

n_estimators(木の本数)

  • 多いほど精度が安定
  • ただし推論コストが増える
  • 通常は 100〜1,000 で十分

max_depth(木の深さ)

  • 深いほど複雑な木になる
  • ランダムフォレストは無制限(None)でも過学習しにくいが、
    データが大規模な場合は適度な制限をかける方が計算効率が良い

max_features(分割時に使用する特徴量の数)

  • 分類では "sqrt" が一般的
  • 木同士の相関を下げ、精度を向上させる働きがある

min_samples_split / min_samples_leaf

  • ノード分岐の最低サンプル数
  • 小さくしすぎると枝が細かくなりすぎるが、RFは比較的頑健

ランダムフォレストの弱点

万能に見えるランダムフォレストにも弱点があります。

推論速度が遅くなりやすい

木の本数が多いため、リアルタイム処理では不利。

訓練データの範囲外の予測が苦手(外挿不可)

決定木由来の性質で、未観測領域を外側に予測することが困難です。

特徴量が極端に多いと計算量が増える

テキスト、画像のように数万次元の特徴量をそのまま扱う場合、ランダムフォレストより XGBoost や深層学習の方が適しています。

他手法との比較

決定木との比較

  • RF:多数の木の平均 → 安定・高精度
  • 単一の決定木:解釈性は高いが過学習しやすい

XGBoost / LightGBM との比較

両者は「勾配ブースティング」を使うため、誤差を補う木を順番に積み上げていく方式です。

  • よく学習するため、精度は出やすい
  • ただしハイパーパラメータが多く、調整に手間がかかる
  • 正則化機能が充実していて、チューニング次第で過学習も抑制可能

対してランダムフォレストは

  • 設定が少なく扱いやすい
  • 安定して強いが、最高性能を目指すと XGBoost に届かない場面もある

という性質です。

特徴量重要度についての補足

ランダムフォレストでは

  • Gini impurity(不純度減少)ベースの重要度
  • Permutation importance(特徴量をシャッフルした影響)

などを算出できます。

ただし不純度ベースの重要度は、連続値やカテゴリ数の多い特徴量を過大評価する傾向があります。

精密な解析には Permutation importance の方が信頼性が高い場合があります。

ランダムフォレストを使うべきケース

以下のケースでは、ランダムフォレストは特に有効です。

  • データが数千〜数十万件程度
  • 特徴量が10〜500個程度で、複雑な非線形関係を含む
  • 過学習を避けたい
  • パラメータ調整に多く時間をかけたくない
  • ある程度の説明性も必要

逆に、

  • 特徴量が数万〜数十万以上
  • 推論速度が重要
  • 大量のデータで最高精度を目指したい

といった場合は、勾配ブースティング系モデル(XGBoost / LightGBM)の方が適しています。

まとめ

ランダムフォレストは、

  • 安定性
  • 精度
  • 説明性
  • 実装の容易さ
  • 過学習耐性
    のバランスが極めて良く、機械学習の中でも特に扱いやすいアルゴリズムです。

大量の決定木をランダム化して学習し、それらの結果を統合することで、単一の決定木の弱点(過学習)を強力に補い、堅牢なモデルを構築できます。

以上、機械学習のランダムフォレストについてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次