機械学習(決定木編)

パッケージの読み込みます

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

画像1


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