機械学習(決定木編)
パッケージの読み込みます
library(rpart)
library(rpart.plot)
irisのデータを読み込んで、学習用と検証用に分割します
data(iris)
n<-seq(1,nrow(iris),by=2)
iris.train<-iris[n,]
iris.test<-iris[-n,]
set.seed(1)
CARTで分類モデルを作成します
cart.model<-rpart(Species~.,data=iris.train)
CARTで作成した分類モデルを確認します
print(cart.model,digit=1)
n= 75
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 75 50 setosa (0.33 0.33 0.33)
2) Petal.Length< 2 25 0 setosa (1.00 0.00 0.00) *
3) Petal.Length>=2 50 20 versicolor (0.00 0.50 0.50)
6) Petal.Width< 2 25 1 versicolor (0.00 0.96 0.04) *
7) Petal.Width>=2 25 1 virginica (0.00 0.04 0.96) *
CARTによる分割モデルの可視化します
prp(cart.model,type=2,extr=101,fallen.leaves=TRUE,nn=TRÙE)
CARTで作成した分類モデルを評価データに適応します
cart.pred<-predict(cart.model,iris.test,type="class")
CARTによる予測結果を確認します
head(cart.pred)
2 4 6 8 10 12
setosa setosa setosa setosa setosa setosa
Levels: setosa versicolor virginica
予測の正誤をまとめた表を作成
(cart.tab<-table(iris.test$Species,cart.pred))
cart.pred
setosa versicolor virginica
setosa 25 0 0
versicolor 0 24 1
virginica 0 3 22
予測精度の確認
sum(diag(cart.tab))/sum(cart.tab)
[1] 0.9466667
この記事が気に入ったらサポートをしてみませんか?