*disclaimer
744651
[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/