トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

RandomForest

*disclaimer
94749

[R]
[R.package]
[R.analysis]

RandomForest ランダムフォレスト

randomForest


 使い方の概要

インストール

install.packages("randomForest", dependencies =T)
library(randomForest)

実行

関数名F大文字注意

model <- randomForest(分類カテゴリ ~ ., data=データフレーム)
model
  • 予測精度:error rateとconfusion matrixが表示される

importance(model)
  • 変数の重要度(Gini係数)が表示される

varImpPlot(model)
  • 変数の重要度の可視化

予測

predict(モデル, 新しいデータ)

 分析例

> errdat5.RF <- randomForest(Criterion~., data=training.errdat5)
> errdat5.RF

Call:
 randomForest(formula = Criterion ~ ., data = training.errdat5) 
               Type of random forest: classification
                     Number of trees: 500
No. of variables tried at each split: 7

        OOB estimate of  error rate: 38%
Confusion matrix:
  1 2  3  4 5 class.error
1 0 0  1  0 0   1.0000000
2 0 0 13  2 0   1.0000000
3 0 0 76 12 0   0.1363636
4 0 0 29 46 0   0.3866667
5 0 0  5 14 2   0.9047619
> importance(errdat5.RF)
             MeanDecreaseGini
M.ADJ              1.55313459
M.ADV              5.17766074
M.CONJ             1.42304906
M.CONTR            0.19309147
M.DET              5.90038315
M.NOUN             2.74476210
M.NOUN.POSS        0.27794173
(中略)
> varImpPlot(errdat5.RF)
> errdat5.RF.pred <- predict(errdat5.RF, test.errdat5)
> table(errdat5.RF.pred, test.errdat5$Criterion)
               
errdat5.RF.pred  1  2  3  4  5
              1  0  0  0  0  0
              2  0  0  0  0  0
              3  1  6 62 19  4
              4  0  0 19 57  9
              5  0  0  0  0  2
> errdat5.RF.pred.table <- table(errdat5.RF.pred, test.errdat5$Criterion)
> sum(diag(errdat5.RF.pred.table))/sum(errdat5.RF.pred.table)
[1] 0.6759777
  • 正判別率 67.6%
  • 誤判別率 32.4%

 References

https://qiita.com/nkjm/items/e751e49c7d2c619cbeab