オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【機械学習】ランダムフォレスト / Random Forests

この記事の読者

機械学習・マシンラーニングの手法の1つである「ランダムフォレスト / Random Forests」について知りたい.

Index

ランダムフォレスト / Random Forests とは

機械学習の学習の工夫の一つとして、アンサンブル学習 / Ensemble Learning がある.

そのアンサンブル学習の手法の一つである「バギング/ Bagging」は、 決定木のようなアルゴリズムが弱識別器に利用され、 学習データに対するバイアスが小さく、分散が大きな(過学習しやすい)識別器に適した手法である.

しかし、ブートストラップサンプリングによる(学習データのサンプリングを行う)ため、 生成された決定木の間の相関が高くなる.(似たような識別結果を出してしまう.)

一般に、分散  \sigma^{2} をもつ  M 個の確率変数  X_{i}\ (i\ =\ 1,\ \cdots,\ M) (弱識別の予測結果)を考えたとき、

平均(M個の予測結果の平均)は以下のように表し、

 \bar{X}\ =\ \displaystyle \frac{1}{M} \displaystyle \sum_{i=1}^{M} X_{i}


平均の分散(アンサブルの最終的な予測結果の振れ幅)は以下のように表すが、

 Var \{\bar{X}\}\ =\ \displaystyle \frac{\sigma^{2}}{M}


任意の二つの確率変数(弱識別器の予測結果)の間に、 正の相関  \rho がある場合(弱識別器が似たような識別を行う場合)には、以下ように表す.

 Var \{\bar{X}\}\ =\ \displaystyle \frac{1\ -\ \rho}{M} \sigma^{2}\ +\ \rho \sigma^{2}



(予測結果を安定させるために、) ブートストラップ数の  M を増やせば上の式の第1項は減るが、第2項は減らない.

ランダムフォレストは、 \rho を減らす仕組みを入れてバギングを強化した仕組みである.

学習アルゴリズム

ランダムフォレスト / Random Forests は、弱識別器に決定木を使ったバギングを改良し、 決定木の各非終端ノードにおいて、識別に用いる特徴を あらかじめ決められた数だけランダムに選択することで、 相関の低い多様な決定木を生成できるようにした手法.



アルゴリズム

  1.  m\ =\ 1 から  M まで、以下の操作を繰り返す.


    1.  N 個の  d 次元学習データからブートストラップサンプル  Z_{m} を作成する.


    2.  Z_{m} を学習データとして、以下の手順により各ノード  t を分割し、決定木  T_{m} を成長させる. 葉ノードのデータ数の加減は  1 とする.


      1.  d 個の特徴からランダムに  d' 個の特徴量を選択する.つまり、弱識別器ごとに使う特徴量を制限して選択する.


      2.  d' 個の中から、最適な分割を与える特徴と分割点を求める.


      3. ノード  t を、分割する.


  2. ランダムフォレスト  \{T_{m}\}_{m=1}^{M} を出力する.


  3. 入力データ  x に対する  m 番目の木の識別結果を  y_{m} (x)\ \in\ \{C_{1},\ \cdots,\ C_{K}\} とする. ランダムフォレスト  \{ T_{m} \}_{m=1}^{M} の識別結果を、 C_{i}\ =\ arg \displaystyle \max_{j} |C_{j}| とする.  |C_{j}| はクラス  C_{j} と判断した木の数である.つまり、多数決.

応用

Adversarial Random Forests / ARF

  • Adversarial random forests for density estimation and generative modelling
決定木が生成と識別を交互に繰り返し,データの構造的特性を徐々に学習する RF 系 GAN モデル.

過学習を抑制して擬似データを生成する傾向にあるとしており, テーブルデータが少ない際に Augmentation として使用できる可能性がある.



参考