機械学習(ランダムフォレスト編)

パッケージの読み込み

library(randomForest)

irisを読み込んで、学習用と検証用に分割します

data(iris)
n<-seq(1,nrow(iris),by=2)
iris.train<-iris[n,]
iris.test<-iris[-n,]
set.seed(1)

ランダムフォレストで分類モデルを作成します

rf.model<-randomForest(Species~.,data=iris.train)

ランダムフォレストで作成した分類モデルを確認します

rf.model

Call:
randomForest(formula = Species ~ ., data = iris.train)
Type of random forest: classification
Number of trees: 500
No. of variables tried at each split: 2
OOB estimate of error rate: 5.33%
Confusion matrix:
setosa versicolor virginica class.error
setosa 25 0 0 0.00
versicolor 0 24 1 0.04
virginica 0 3 22 0.12

個々の説明変数の重要度を可視化します

varImpPlot(rf.model,pch=16,main=NA)

ランダムフォレストで作成した分類モデルを評価データに適用します

rf.pred<-predict(rf.model,iris.test,type="class")

ランダムフォレストによる予測結果を確認します

head(rf.pred)

2 4 6 8 10 12
setosa setosa setosa setosa setosa setosa
Levels: setosa versicolor virginica

予測の正誤をまとめた表を作成します

(rf.tab<-table(iris.test$Species,rf.pred) )

rf.pred
setosa versicolor virginica
setosa 25 0 0
versicolor 0 24 1
virginica 0 2 23

予測精度の確認します

sum(diag(rf.tab))/sum(rf.tab)

[1] 0.96

この記事が気に入ったらサポートをしてみませんか?