#http://rischanlab.github.io/NaiveBayes.html

library("caret")
## Loading required package: lattice
## Loading required package: ggplot2
head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
x = iris[,-5]
y = iris$Species


model = train(x,y,'nb',trControl=trainControl(method='cv',number=10))
## Loading required package: klaR
## Loading required package: MASS
model
## Naive Bayes 
## 
## 150 samples
##   4 predictor
##   3 classes: 'setosa', 'versicolor', 'virginica' 
## 
## No pre-processing
## Resampling: Cross-Validated (10 fold) 
## Summary of sample sizes: 135, 135, 135, 135, 135, 135, ... 
## Resampling results across tuning parameters:
## 
##   usekernel  Accuracy   Kappa
##   FALSE      0.9533333  0.93 
##    TRUE      0.9666667  0.95 
## 
## Tuning parameter 'fL' was held constant at a value of 0
## Tuning
##  parameter 'adjust' was held constant at a value of 1
## Accuracy was used to select the optimal model using  the largest value.
## The final values used for the model were fL = 0, usekernel = TRUE
##  and adjust = 1.
predict(model$finalModel,x)
## $class
##   [1] setosa     setosa     setosa     setosa     setosa     setosa    
##   [7] setosa     setosa     setosa     setosa     setosa     setosa    
##  [13] setosa     setosa     setosa     setosa     setosa     setosa    
##  [19] setosa     setosa     setosa     setosa     setosa     setosa    
##  [25] setosa     setosa     setosa     setosa     setosa     setosa    
##  [31] setosa     setosa     setosa     setosa     setosa     setosa    
##  [37] setosa     setosa     setosa     setosa     setosa     setosa    
##  [43] setosa     setosa     setosa     setosa     setosa     setosa    
##  [49] setosa     setosa     versicolor versicolor versicolor versicolor
##  [55] versicolor versicolor versicolor versicolor versicolor versicolor
##  [61] versicolor versicolor versicolor versicolor versicolor versicolor
##  [67] versicolor versicolor versicolor versicolor virginica  versicolor
##  [73] versicolor versicolor versicolor versicolor versicolor virginica 
##  [79] versicolor versicolor versicolor versicolor versicolor virginica 
##  [85] versicolor versicolor versicolor versicolor versicolor versicolor
##  [91] versicolor versicolor versicolor versicolor versicolor versicolor
##  [97] versicolor versicolor versicolor versicolor virginica  virginica 
## [103] virginica  virginica  virginica  virginica  versicolor virginica 
## [109] virginica  virginica  virginica  virginica  virginica  virginica 
## [115] virginica  virginica  virginica  virginica  virginica  versicolor
## [121] virginica  virginica  virginica  virginica  virginica  virginica 
## [127] virginica  virginica  virginica  virginica  virginica  virginica 
## [133] virginica  versicolor virginica  virginica  virginica  virginica 
## [139] virginica  virginica  virginica  virginica  virginica  virginica 
## [145] virginica  virginica  virginica  virginica  virginica  virginica 
## Levels: setosa versicolor virginica
## 
## $posterior
##              setosa   versicolor    virginica
##   [1,] 1.000000e+00 3.122328e-09 8.989129e-11
##   [2,] 9.999999e-01 4.953302e-08 1.361560e-09
##   [3,] 1.000000e+00 1.949717e-08 1.152761e-09
##   [4,] 1.000000e+00 1.146273e-08 6.616756e-10
##   [5,] 1.000000e+00 8.839954e-10 8.567477e-11
##   [6,] 1.000000e+00 3.818715e-09 5.965843e-09
##   [7,] 1.000000e+00 7.394006e-09 6.702907e-10
##   [8,] 1.000000e+00 5.311568e-09 1.920277e-10
##   [9,] 1.000000e+00 6.502476e-09 3.193962e-10
##  [10,] 9.999998e-01 1.731985e-07 5.531788e-09
##  [11,] 1.000000e+00 1.233528e-09 4.372981e-10
##  [12,] 1.000000e+00 6.936685e-09 4.552987e-10
##  [13,] 9.999998e-01 2.398420e-07 8.627082e-09
##  [14,] 9.999999e-01 1.000884e-07 5.966595e-09
##  [15,] 1.000000e+00 1.005497e-08 1.606871e-08
##  [16,] 1.000000e+00 2.409589e-08 1.559800e-09
##  [17,] 1.000000e+00 2.067535e-09 3.230036e-09
##  [18,] 1.000000e+00 1.262295e-08 3.634125e-10
##  [19,] 9.999999e-01 1.082521e-08 6.920719e-08
##  [20,] 1.000000e+00 2.085870e-10 4.809744e-10
##  [21,] 9.999999e-01 9.294094e-08 2.352315e-09
##  [22,] 1.000000e+00 1.160122e-09 3.869756e-10
##  [23,] 1.000000e+00 4.305256e-09 1.046271e-09
##  [24,] 9.999988e-01 1.208288e-06 2.529554e-08
##  [25,] 1.000000e+00 3.485480e-08 2.287742e-09
##  [26,] 9.999999e-01 8.860267e-08 1.755425e-09
##  [27,] 1.000000e+00 3.615611e-08 1.307142e-09
##  [28,] 1.000000e+00 5.101289e-09 1.045515e-10
##  [29,] 1.000000e+00 1.096715e-08 1.859280e-10
##  [30,] 1.000000e+00 1.882032e-08 1.112743e-09
##  [31,] 1.000000e+00 4.348022e-08 1.817230e-09
##  [32,] 9.999999e-01 1.214791e-07 3.074610e-09
##  [33,] 1.000000e+00 1.234324e-09 6.099208e-11
##  [34,] 1.000000e+00 1.317063e-09 4.679792e-11
##  [35,] 1.000000e+00 3.070357e-08 9.806416e-10
##  [36,] 9.999999e-01 9.546561e-08 2.581158e-09
##  [37,] 1.000000e+00 3.790672e-08 1.660847e-09
##  [38,] 1.000000e+00 4.598664e-09 6.183595e-10
##  [39,] 1.000000e+00 6.577049e-09 3.820588e-10
##  [40,] 1.000000e+00 6.711099e-09 1.598209e-10
##  [41,] 1.000000e+00 1.707312e-08 7.461967e-10
##  [42,] 9.999997e-01 3.444123e-07 3.593167e-09
##  [43,] 1.000000e+00 2.420471e-09 1.918806e-10
##  [44,] 9.999999e-01 1.178364e-07 5.150149e-09
##  [45,] 1.000000e+00 1.764715e-09 4.069202e-09
##  [46,] 9.999998e-01 1.718906e-07 6.182882e-09
##  [47,] 1.000000e+00 8.512019e-11 1.962761e-10
##  [48,] 1.000000e+00 6.805542e-09 4.613946e-10
##  [49,] 1.000000e+00 8.054099e-10 2.034324e-10
##  [50,] 1.000000e+00 1.082759e-08 3.441172e-10
##  [51,] 5.772566e-08 8.752420e-01 1.247580e-01
##  [52,] 2.167337e-08 9.440564e-01 5.594360e-02
##  [53,] 3.568954e-08 6.419224e-01 3.580775e-01
##  [54,] 6.349255e-07 9.999899e-01 9.468672e-06
##  [55,] 2.765029e-09 9.426707e-01 5.732934e-02
##  [56,] 3.434654e-07 9.982960e-01 1.703625e-03
##  [57,] 5.439706e-08 6.776127e-01 3.223873e-01
##  [58,] 3.468079e-05 9.999651e-01 2.572784e-07
##  [59,] 4.948922e-09 9.852152e-01 1.478477e-02
##  [60,] 2.291638e-06 9.999811e-01 1.663397e-05
##  [61,] 1.974462e-05 9.999802e-01 4.396638e-08
##  [62,] 6.261483e-07 9.970784e-01 2.920926e-03
##  [63,] 8.587179e-08 9.999991e-01 8.412559e-07
##  [64,] 1.796146e-08 9.675910e-01 3.240896e-02
##  [65,] 2.894394e-06 9.999809e-01 1.619585e-05
##  [66,] 1.569871e-08 9.826467e-01 1.735332e-02
##  [67,] 1.925716e-06 9.931938e-01 6.804227e-03
##  [68,] 2.775053e-07 9.999949e-01 4.831298e-06
##  [69,] 1.406347e-09 9.942356e-01 5.764440e-03
##  [70,] 2.791581e-07 9.999989e-01 8.655960e-07
##  [71,] 3.910445e-06 1.891683e-01 8.108278e-01
##  [72,] 9.899047e-09 9.998136e-01 1.863719e-04
##  [73,] 7.103526e-10 8.374831e-01 1.625169e-01
##  [74,] 1.303322e-08 9.954267e-01 4.573304e-03
##  [75,] 4.382054e-09 9.969695e-01 3.030520e-03
##  [76,] 8.746457e-09 9.849134e-01 1.508656e-02
##  [77,] 4.579961e-09 9.007918e-01 9.920822e-02
##  [78,] 1.487415e-08 9.857797e-02 9.014220e-01
##  [79,] 1.024339e-07 9.846645e-01 1.533541e-02
##  [80,] 4.265702e-07 9.999991e-01 4.841056e-07
##  [81,] 1.300151e-06 9.999985e-01 1.821381e-07
##  [82,] 1.807807e-06 9.999981e-01 9.431746e-08
##  [83,] 2.331858e-07 9.999877e-01 1.207643e-05
##  [84,] 8.810516e-08 4.872692e-01 5.127307e-01
##  [85,] 5.328649e-06 9.965100e-01 3.484697e-03
##  [86,] 2.941491e-06 9.183115e-01 8.168560e-02
##  [87,] 1.889516e-08 8.644605e-01 1.355395e-01
##  [88,] 1.131003e-09 9.989977e-01 1.002314e-03
##  [89,] 1.884696e-06 9.998468e-01 1.512839e-04
##  [90,] 1.943757e-07 9.999724e-01 2.737753e-05
##  [91,] 1.838186e-07 9.998321e-01 1.677539e-04
##  [92,] 2.683750e-08 9.784001e-01 2.159988e-02
##  [93,] 7.517141e-08 9.999722e-01 2.768981e-05
##  [94,] 4.864283e-05 9.999513e-01 1.026397e-07
##  [95,] 2.184448e-07 9.997510e-01 2.488203e-04
##  [96,] 1.935069e-06 9.998496e-01 1.485057e-04
##  [97,] 7.829663e-07 9.996389e-01 3.602814e-04
##  [98,] 3.522009e-09 9.978893e-01 2.110726e-03
##  [99,] 2.626926e-05 9.999726e-01 1.169950e-06
## [100,] 4.187270e-07 9.998386e-01 1.609416e-04
## [101,] 8.943071e-08 1.262441e-06 9.999986e-01
## [102,] 4.982326e-07 2.784325e-02 9.721562e-01
## [103,] 2.383733e-08 3.190082e-07 9.999997e-01
## [104,] 5.405655e-09 2.070573e-04 9.997929e-01
## [105,] 1.008303e-08 5.706519e-07 9.999994e-01
## [106,] 9.293978e-08 1.235171e-08 9.999999e-01
## [107,] 7.722932e-06 9.539952e-01 4.599708e-02
## [108,] 4.012792e-08 3.420777e-05 9.999658e-01
## [109,] 1.102340e-09 1.316479e-04 9.998684e-01
## [110,] 1.061163e-06 1.288890e-07 9.999988e-01
## [111,] 1.606940e-08 4.582301e-04 9.995418e-01
## [112,] 1.099040e-09 2.028028e-03 9.979720e-01
## [113,] 1.219887e-08 4.522242e-06 9.999955e-01
## [114,] 6.716778e-07 9.692655e-03 9.903067e-01
## [115,] 1.995818e-06 9.821642e-04 9.990158e-01
## [116,] 1.797516e-08 3.245108e-05 9.999675e-01
## [117,] 7.871035e-09 6.025113e-04 9.993975e-01
## [118,] 8.035266e-07 4.610216e-11 9.999992e-01
## [119,] 1.114633e-08 1.821720e-08 1.000000e+00
## [120,] 1.021622e-07 9.462047e-01 5.379522e-02
## [121,] 3.122868e-08 3.545649e-07 9.999996e-01
## [122,] 5.288522e-06 1.517350e-02 9.848212e-01
## [123,] 3.582523e-08 4.116272e-08 9.999999e-01
## [124,] 1.441158e-09 8.278185e-02 9.172181e-01
## [125,] 3.394413e-08 3.174989e-07 9.999996e-01
## [126,] 5.596750e-08 2.185371e-05 9.999781e-01
## [127,] 4.673576e-09 1.622147e-01 8.377853e-01
## [128,] 5.947352e-08 1.003789e-01 8.996210e-01
## [129,] 3.101469e-09 1.442934e-06 9.999986e-01
## [130,] 6.122836e-08 3.400634e-04 9.996599e-01
## [131,] 1.389474e-08 2.976597e-06 9.999970e-01
## [132,] 8.766738e-07 2.312170e-10 9.999991e-01
## [133,] 3.229494e-09 1.502497e-06 9.999985e-01
## [134,] 5.830326e-09 5.463686e-01 4.536314e-01
## [135,] 2.147851e-08 2.848673e-02 9.715132e-01
## [136,] 4.877334e-08 3.680347e-09 9.999999e-01
## [137,] 6.367711e-08 9.930942e-07 9.999989e-01
## [138,] 1.041818e-08 5.448493e-04 9.994551e-01
## [139,] 5.004383e-07 2.024076e-01 7.975919e-01
## [140,] 1.996159e-08 1.165611e-05 9.999883e-01
## [141,] 1.999575e-08 1.295204e-06 9.999987e-01
## [142,] 2.161884e-08 1.231467e-04 9.998768e-01
## [143,] 4.982326e-07 2.784325e-02 9.721562e-01
## [144,] 3.349443e-08 4.857252e-07 9.999995e-01
## [145,] 7.668677e-08 7.172953e-07 9.999992e-01
## [146,] 1.158419e-08 8.914668e-05 9.999108e-01
## [147,] 7.841053e-10 2.133359e-02 9.786664e-01
## [148,] 7.966669e-09 3.437503e-04 9.996562e-01
## [149,] 5.761966e-08 1.351426e-05 9.999864e-01
## [150,] 1.368634e-06 5.710392e-02 9.428947e-01
table(predict(model$finalModel,x)$class,y)
##             y
##              setosa versicolor virginica
##   setosa         50          0         0
##   versicolor      0         47         3
##   virginica       0          3        47
naive_iris <- NaiveBayes(iris$Species ~ ., data = iris)
plot(naive_iris)