{{category R}} {{category R.package}} {{category R.analysis}} !!!RandomForest ランダムフォレスト randomForest {{outline}} ---- !!使い方の概要 !インストール {{pre install.packages("randomForest", dependencies =T) library(randomForest) }} !実行 関数名<>大文字注意 model <- randomForest(分類カテゴリ ~ ., data=データフレーム) model *予測精度:error rateとconfusion matrixが表示される importance(model) *変数の重要度(Gini係数)が表示される varImpPlot(model) *変数の重要度の可視化 !予測 predict(モデル, 新しいデータ) !!分析例 {{pre > 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) }} {{ref_image RandomForestGini.png}} {{pre > 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