Hands-on Bayesian Classifier

1. Separate the data set into 70% / 30% for training and test set, respectively

library(DMwR)
## Loading required package: lattice
## Loading required package: grid
data(iris)
ind.train <- sample(1:nrow(iris),0.7*nrow(iris),replace=FALSE)
train <- iris[ind.train,]
test <- iris[-ind.train,]

2. Build a Bayesian Classifier for the data set

library(e1071)
nb <- naiveBayes(Species ~ ., train)

3. Calculate the Accuracy Metric

(mtrx <- table(predict(nb,test),test$Species))
##             
##              setosa versicolor virginica
##   setosa         14          0         0
##   versicolor      0         15         1
##   virginica       0          0        15
(acc <- sum(diag(mtrx))/sum(mtrx))
## [1] 0.9777778

4. Rebuild the Bayesian Classifier with a Laplace Correction, and calculate the Accuracy metric once more.

nb <- naiveBayes(Species ~ ., train, laplace=1)
(mtrx <- table(predict(nb,test),test$Species))
##             
##              setosa versicolor virginica
##   setosa         14          0         0
##   versicolor      0         15         1
##   virginica       0          0        15
(acc <- sum(diag(mtrx))/sum(mtrx))
## [1] 0.9777778