ランダムフォレストの概要
ランダムフォレスト(Random Forest)は、2001年にレオ・ブレイマンによって提案された機械学習の手法で、分類や回帰、
クラスタリングなど多様な用途に適用されます。この
アルゴリズムは、複数の
決定木を結集させて予測を行うアンサンブル学習の一種であり、その名の通り、「ランダム」に生成された
決定木の「森」を形成します。
ランダムフォレストの学習プロセスは、まず観測データから
ブートストラップ法によって複数のサブサンプルを作成することから始まります。これらのサブサンプルは、それぞれ異なるトレーニングデータとして利用され、B本の
決定木を生成します。各
決定木のノードは、以下の手順で構築されます。
1. 説明変数の中からm個をランダムに選びます。
2. 選ばれた説明変数の中で、データを最も効果的に分類できるものを決定し、そのスプリット関数を用いてノードを分割します。
この手法によって得られる
決定木群は、各木が独立に学習されるため、
相関が低く、全体として高い予測精度を実現します。特に、説明変数が多数存在する場合でも、高い性能を発揮するのが特徴です。
パラメータ設定
ランダムフォレストの重要なパラメータには、以下のようなものがあります。
- - n_min: 分類の際は1、回帰の際は5。
- - m: 説明変数の総数pに対し、分類の場合は√p、回帰の場合はp/3を推奨します。
評価方法
最終的な出力は次のように決定されます。
- - 分類: 各決定木の出力がクラスラベルである場合、多数決によって決定されます。
- - 回帰: 各決定木の出力の平均値を算出します。
特徴
長所
- - 多数の説明変数に対しても効果的に機能します。
- - 学習および評価の速度が速いです。
- - 各決定木が独立しており、並列計算が可能です。
- - 説明変数の重要度を計測することができます。
- - Out of Bagエラーを用いたクロスバリデーションが可能です。
- - 特定の説明変数の欠損があっても、比較的安定した出力が得られます。
短所
- - 説明変数の中で有効なものがノイズよりも苦少ない場合、期待通りに動作しないことがあります。
実装
ランダムフォレストはオープンソースとしても多くの実装例があります。例えば、レオ・ブレイマンとアデル・カトラーによる元の実装はFortranで書かれています。また、JavaのFastRandomForestや
R言語のrandomForestパッケージなども人気です。これにより、ユーザーは様々な環境でランダムフォレストを簡単に利用できるようになっています。
参考文献