ランダムフォレスト

R による Supervised Learning:回帰

Nina Zumel and John Mount

Win-Vector, LCC

ランダムフォレスト

多様な決定木を複数組み合わせて平均化

  • 過学習を低減
  • モデルの表現力を向上
  • より細かい粒度の予測が可能
R による Supervised Learning:回帰

ランダムフォレストモデルの構築

  1. 訓練データからブートストラップサンプルを抽出
  2. 各サンプルに対して木を成長させる
    • 各ノードで、全変数のランダムなサブセットから最適な分割変数を選択
    • 木が完成するまで継続
  3. データを評価する際は、すべての木で予測し、結果を平均化する。
R による Supervised Learning:回帰

例:自転車レンタルデータ

cnt ~ hr + holiday + workingday + 
  weathersit + temp + atemp + hum + windspeed

R による Supervised Learning:回帰

ranger() によるランダムフォレスト

model <- ranger(fmla, bikesJan, 
                num.trees = 500, 
                respect.unordered.factors = "order")
  • formuladata
  • num.trees(デフォルト:500)― 200 以上を推奨
  • mtry ― 各ノードで試みる変数の数
    • デフォルト:全変数数の平方根
  • respect.unordered.factors ― "order" に設定を推奨
    • カテゴリ変数の安全なハッシュ化
R による Supervised Learning:回帰

ranger() によるランダムフォレスト

model
Ranger result
...
OOB prediction error (MSE):       3103.623 
R squared (OOB):                  0.7837386

ランダムフォレストアルゴリズムは、サンプル外パフォーマンスの推定値を返します。

R による Supervised Learning:回帰

ranger() モデルによる予測

bikesFeb$pred <- predict(model, bikesFeb)$predictions

predict() の入力:

  • model
  • data

予測値は predictions 要素からアクセスできます。

R による Supervised Learning:回帰

モデルの評価

RMSE の計算:

bikesFeb %>% 
  mutate(residual = cnt - pred) %>%
  summarize(rmse = sqrt(mean(residual^2)))
      rmse
1 67.15169
モデル RMSE
Quasipoisson 69.3
ランダムフォレスト 67.15
R による Supervised Learning:回帰

モデルの評価

R による Supervised Learning:回帰

モデルの評価

R による Supervised Learning:回帰

練習しましょう!

R による Supervised Learning:回帰

Preparing Video For Download...