機械学習(ランダムフォレスト編)
パッケージの読み込み
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
この記事が気に入ったらサポートをしてみませんか?