*disclaimer
1196844
[R]
[R.package]
[R.analysis]
RandomForest ランダムフォレスト
使い方の概要
インストール
install.packages("randomForest", dependencies =T)
library(randomForest)
実行
- 説明変数は + で列挙
- 交互作用 :
- 両方 *
関数名F大文字注意
model <- randomForest(分類カテゴリ ~ 説明変数A + 説明変数B, 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://www.pu-hiroshima.ac.jp/p/ttetsuji/R/%5B27%5Drf.html
https://qiita.com/nkjm/items/e751e49c7d2c619cbeab
https://qiita.com/LTtoose/items/77d9451f6b37929d95ab
https://sugiura-ken.org/wiki/