機械学習(単純ベイズ編)

R言語での単純ベイズモデルでの機械学習
irisのデータを用いて分類の問題を復習します。
まずパッケージの読み込みです

library(e1071)
library(kernlab)

irisデータの読み込みます

data(iris)

教師データと評価データに分けます(半分づつ)

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

単純ベイズで分類モデルを作成します

nb.model<-naiveBayes(Species~.,data=iris.train)

単純ベイズで作成した分類モデルを確認します

nb.model
Naive Bayes Classifier for Discrete Predictors
Call:
naiveBayes.default(x = X, y = Y, laplace = laplace)
A-priori probabilities:

単純ベイズで作成した分類モデルを評価データに適応していきます

nb.pred<-predict(nb.model,iris.test)

単純ベイズによる予測結果を確認します。

head(nb.pred)
[1] setosa setosa setosa setosa setosa setosa
Levels: setosa versicolor virginica

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

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

setosa versicolor virginica
setosa 25 0 0
versicolor 0 24 1
virginica 0 2 23

予測精度の確認します

sum(diag(nb.tab))/sum(nb.tab)

[1] 0.96
まあまあの精度が出ています。

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