library(party)
## Loading required package: grid
## Loading required package: mvtnorm
## Loading required package: modeltools
## Loading required package: stats4
## Loading required package: strucchange
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: sandwich
data(iris)

 

fit2 <- ctree(Species ~ Sepal.Length + Petal.Length + Sepal.Width ,
              data=iris)
plot(fit2)

table(Predict(fit2), iris$Species)
##             
##              setosa versicolor virginica
##   setosa         50          0         0
##   versicolor      0         44         1
##   virginica       0          6        49
library(randomForest)
## randomForest 4.6-12
## Type rfNews() to see new features/changes/bug fixes.
fit3 <- randomForest(Species ~ Sepal.Length + Petal.Length + Sepal.Width ,
                     data=iris)
print(fit3)
## 
## Call:
##  randomForest(formula = Species ~ Sepal.Length + Petal.Length +      Sepal.Width, data = iris) 
##                Type of random forest: classification
##                      Number of trees: 500
## No. of variables tried at each split: 1
## 
##         OOB estimate of  error rate: 6.67%
## Confusion matrix:
##            setosa versicolor virginica class.error
## setosa         50          0         0        0.00
## versicolor      0         44         6        0.12
## virginica       0          4        46        0.08
library(e1071)
#install.packages("caret")
library(caret)
## Loading required package: lattice
## Loading required package: ggplot2
## 
## Attaching package: 'ggplot2'
## The following object is masked from 'package:randomForest':
## 
##     margin
iris$predicted.response <- predict(fit3 ,iris)

confusionMatrix(data=iris$predicted.response,
                reference=iris$Species,
                positive='yes')
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   setosa versicolor virginica
##   setosa         50          0         0
##   versicolor      0         49         0
##   virginica       0          1        50
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9933          
##                  95% CI : (0.9634, 0.9998)
##     No Information Rate : 0.3333          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.99            
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                 1.0000            0.9800           1.0000
## Specificity                 1.0000            1.0000           0.9900
## Pos Pred Value              1.0000            1.0000           0.9804
## Neg Pred Value              1.0000            0.9901           1.0000
## Prevalence                  0.3333            0.3333           0.3333
## Detection Rate              0.3333            0.3267           0.3333
## Detection Prevalence        0.3333            0.3267           0.3400
## Balanced Accuracy           1.0000            0.9900           0.9950
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
##   5 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.9866667  0.98 
##    TRUE      0.9800000  0.97 
## 
## 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 = FALSE
##  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 versicolor versicolor
##  [73] versicolor versicolor versicolor versicolor versicolor versicolor
##  [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  virginica  virginica 
## [109] virginica  virginica  virginica  virginica  virginica  virginica 
## [115] virginica  virginica  virginica  virginica  virginica  virginica 
## [121] virginica  virginica  virginica  virginica  virginica  virginica 
## [127] virginica  virginica  virginica  virginica  virginica  virginica 
## [133] virginica  virginica  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 2.981309e-21 2.152373e-28
##   [2,]  1.000000e+00 3.169312e-20 6.938030e-28
##   [3,]  1.000000e+00 2.367113e-21 7.240956e-29
##   [4,]  1.000000e+00 3.069606e-20 8.690636e-28
##   [5,]  1.000000e+00 1.017337e-21 8.885794e-29
##   [6,]  1.000000e+00 2.717732e-17 4.344285e-24
##   [7,]  1.000000e+00 2.321639e-20 7.988271e-28
##   [8,]  1.000000e+00 1.390751e-20 8.166995e-28
##   [9,]  1.000000e+00 1.990156e-20 3.606469e-28
##  [10,]  1.000000e+00 7.378931e-21 3.615492e-28
##  [11,]  1.000000e+00 9.396089e-21 1.474623e-27
##  [12,]  1.000000e+00 3.461964e-20 2.093627e-27
##  [13,]  1.000000e+00 2.804520e-21 1.010192e-28
##  [14,]  1.000000e+00 1.799033e-22 6.060578e-30
##  [15,]  1.000000e+00 5.533879e-22 2.485033e-28
##  [16,]  1.000000e+00 6.273863e-20 4.509864e-26
##  [17,]  1.000000e+00 1.106658e-19 1.282419e-26
##  [18,]  1.000000e+00 4.841773e-20 2.350011e-27
##  [19,]  1.000000e+00 1.126175e-17 2.567180e-24
##  [20,]  1.000000e+00 1.808513e-20 1.963924e-27
##  [21,]  1.000000e+00 2.178382e-18 2.013989e-25
##  [22,]  1.000000e+00 1.210057e-18 7.788592e-26
##  [23,]  1.000000e+00 4.535220e-23 3.130074e-30
##  [24,]  1.000000e+00 3.147327e-14 8.175305e-22
##  [25,]  1.000000e+00 1.838507e-17 1.553757e-24
##  [26,]  1.000000e+00 6.873990e-19 1.830374e-26
##  [27,]  1.000000e+00 3.192598e-17 1.045146e-24
##  [28,]  1.000000e+00 1.542562e-20 1.274394e-27
##  [29,]  1.000000e+00 8.833285e-21 5.368077e-28
##  [30,]  1.000000e+00 9.557935e-20 3.652571e-27
##  [31,]  1.000000e+00 2.166837e-19 6.730536e-27
##  [32,]  1.000000e+00 3.940500e-17 1.546678e-24
##  [33,]  1.000000e+00 1.609092e-23 1.013278e-29
##  [34,]  1.000000e+00 7.222217e-23 4.261853e-29
##  [35,]  1.000000e+00 6.289348e-20 1.831694e-27
##  [36,]  1.000000e+00 2.850926e-21 8.874002e-29
##  [37,]  1.000000e+00 7.746279e-21 7.235628e-28
##  [38,]  1.000000e+00 8.623934e-23 1.223633e-29
##  [39,]  1.000000e+00 4.612936e-21 9.655450e-29
##  [40,]  1.000000e+00 2.009325e-20 1.237755e-27
##  [41,]  1.000000e+00 1.300634e-20 5.657689e-28
##  [42,]  1.000000e+00 1.577617e-18 5.717219e-27
##  [43,]  1.000000e+00 1.494911e-21 4.800333e-29
##  [44,]  1.000000e+00 1.076475e-13 3.721344e-21
##  [45,]  1.000000e+00 1.357569e-15 1.708326e-22
##  [46,]  1.000000e+00 3.882113e-19 5.587814e-27
##  [47,]  1.000000e+00 5.086735e-21 8.960156e-28
##  [48,]  1.000000e+00 5.012793e-21 1.636566e-28
##  [49,]  1.000000e+00 5.717245e-21 8.231337e-28
##  [50,]  1.000000e+00 7.713456e-21 3.349997e-28
##  [51,] 6.225045e-110 9.997479e-01 2.520714e-04
##  [52,] 8.570847e-103 9.999382e-01 6.175742e-05
##  [53,] 1.215697e-123 9.988066e-01 1.193433e-03
##  [54,]  1.152529e-72 1.000000e+00 3.867457e-08
##  [55,] 1.581871e-108 9.999467e-01 5.331762e-05
##  [56,]  1.972563e-92 9.999990e-01 1.020052e-06
##  [57,] 7.022043e-116 9.994729e-01 5.271422e-04
##  [58,]  2.601790e-37 1.000000e+00 3.183182e-10
##  [59,] 6.767475e-100 9.999892e-01 1.078777e-05
##  [60,]  5.102801e-72 9.999999e-01 1.093625e-07
##  [61,]  7.504643e-44 1.000000e+00 3.208078e-10
##  [62,]  4.917431e-89 9.999958e-01 4.245756e-06
##  [63,]  4.725838e-63 1.000000e+00 7.695236e-09
##  [64,] 1.089964e-106 9.999846e-01 1.544774e-05
##  [65,]  4.887696e-58 1.000000e+00 3.060696e-08
##  [66,]  1.579126e-95 9.999779e-01 2.214465e-05
##  [67,] 1.379538e-100 9.999896e-01 1.037882e-05
##  [68,]  2.067506e-65 1.000000e+00 2.048320e-08
##  [69,] 6.720035e-104 9.999940e-01 5.953299e-06
##  [70,]  3.077859e-61 1.000000e+00 8.918403e-09
##  [71,] 6.643323e-130 9.947081e-01 5.291896e-03
##  [72,]  1.273962e-73 9.999998e-01 2.303272e-07
##  [73,] 3.635930e-122 9.999168e-01 8.322850e-05
##  [74,]  1.343761e-98 9.999979e-01 2.106614e-06
##  [75,]  3.069700e-86 9.999982e-01 1.764714e-06
##  [76,]  2.623805e-95 9.999861e-01 1.392484e-05
##  [77,] 1.747438e-114 9.998994e-01 1.006309e-04
##  [78,] 8.854376e-138 9.883852e-01 1.161480e-02
##  [79,] 5.212805e-102 9.999850e-01 1.501794e-05
##  [80,]  1.468423e-44 1.000000e+00 1.634262e-09
##  [81,]  1.277115e-57 1.000000e+00 4.592000e-09
##  [82,]  8.948524e-51 1.000000e+00 1.778126e-09
##  [83,]  3.517650e-65 1.000000e+00 3.430714e-08
##  [84,] 2.726206e-135 3.076150e-02 9.692385e-01
##  [85,] 4.238525e-100 9.999916e-01 8.405606e-06
##  [86,] 1.332644e-105 9.998521e-01 1.478728e-04
##  [87,] 2.875899e-113 9.997405e-01 2.595475e-04
##  [88,]  4.973519e-91 9.999993e-01 7.170422e-07
##  [89,]  2.070566e-75 9.999998e-01 2.429045e-07
##  [90,]  2.273490e-72 9.999999e-01 5.500821e-08
##  [91,]  5.215785e-84 9.999998e-01 1.520450e-07
##  [92,] 5.960938e-102 9.999882e-01 1.182936e-05
##  [93,]  5.251986e-69 1.000000e+00 4.173171e-08
##  [94,]  1.360017e-37 1.000000e+00 2.771698e-10
##  [95,]  6.219736e-80 9.999998e-01 2.006854e-07
##  [96,]  1.453599e-75 9.999998e-01 1.800789e-07
##  [97,]  8.474883e-80 9.999997e-01 3.376164e-07
##  [98,]  1.875115e-85 9.999988e-01 1.164505e-06
##  [99,]  5.826890e-33 1.000000e+00 3.157898e-10
## [100,]  4.078752e-76 9.999998e-01 1.832703e-07
## [101,] 3.993755e-252 2.062063e-12 1.000000e+00
## [102,] 1.262363e-152 5.598282e-04 9.994402e-01
## [103,] 2.460661e-219 4.654977e-09 1.000000e+00
## [104,] 2.871277e-176 4.592219e-05 9.999541e-01
## [105,] 8.299887e-217 6.350771e-09 1.000000e+00
## [106,] 1.371182e-270 7.614910e-12 1.000000e+00
## [107,] 7.258155e-109 4.096782e-01 5.903218e-01
## [108,] 3.741935e-227 3.564099e-08 1.000000e+00
## [109,] 5.567821e-191 1.165303e-05 9.999883e-01
## [110,] 2.052443e-263 4.923323e-14 1.000000e+00
## [111,] 8.673566e-162 9.795170e-06 9.999902e-01
## [112,] 4.233346e-166 6.357027e-05 9.999364e-01
## [113,] 4.360086e-193 1.246172e-07 9.999999e-01
## [114,] 6.229150e-154 2.887102e-04 9.997113e-01
## [115,] 2.201429e-189 2.786497e-08 1.000000e+00
## [116,] 2.949946e-194 1.225678e-08 1.000000e+00
## [117,] 2.915226e-171 4.314790e-05 9.999569e-01
## [118,] 1.347608e-284 5.745992e-14 1.000000e+00
## [119,] 2.786402e-309 2.302938e-14 1.000000e+00
## [120,] 3.307637e-125 3.037334e-01 6.962666e-01
## [121,] 2.194169e-220 3.424331e-10 1.000000e+00
## [122,] 3.376038e-148 3.083326e-04 9.996917e-01
## [123,] 6.251357e-272 2.341745e-11 1.000000e+00
## [124,] 5.094321e-138 3.139418e-03 9.968606e-01
## [125,] 6.315724e-204 2.601027e-08 1.000000e+00
## [126,] 5.257396e-206 1.901615e-07 9.999998e-01
## [127,] 1.851587e-132 5.186340e-03 9.948137e-01
## [128,] 9.865968e-137 2.542930e-03 9.974571e-01
## [129,] 5.230872e-197 2.791477e-07 9.999997e-01
## [130,] 7.020556e-182 1.647833e-05 9.999835e-01
## [131,] 6.306827e-221 2.428996e-08 1.000000e+00
## [132,] 2.539020e-250 9.337782e-12 1.000000e+00
## [133,] 2.210816e-204 4.000640e-08 1.000000e+00
## [134,] 3.732889e-131 4.709186e-02 9.529081e-01
## [135,] 1.561444e-153 1.886075e-02 9.811392e-01
## [136,] 7.419068e-252 2.896100e-12 1.000000e+00
## [137,] 1.004503e-218 1.948671e-10 1.000000e+00
## [138,] 1.349608e-170 4.383372e-05 9.999562e-01
## [139,] 2.480958e-131 4.974797e-03 9.950252e-01
## [140,] 8.440522e-188 1.353834e-07 9.999999e-01
## [141,] 2.334365e-221 1.491244e-10 1.000000e+00
## [142,] 2.179140e-186 1.270533e-08 1.000000e+00
## [143,] 1.262363e-152 5.598282e-04 9.994402e-01
## [144,] 3.426814e-232 1.319403e-10 1.000000e+00
## [145,] 2.011574e-235 5.241271e-12 1.000000e+00
## [146,] 1.078519e-190 1.583110e-08 1.000000e+00
## [147,] 1.091014e-149 5.695800e-04 9.994304e-01
## [148,] 1.847697e-167 8.800598e-06 9.999912e-01
## [149,] 1.439996e-198 6.768314e-09 1.000000e+00
## [150,] 2.944253e-146 1.272237e-03 9.987278e-01
table(predict(model$finalModel,x)$class,y)
##             y
##              setosa versicolor virginica
##   setosa         50          0         0
##   versicolor      0         49         0
##   virginica       0          1        50
naive_iris <- NaiveBayes(iris$Species ~ ., data = iris)
#plot(naive_iris)


library(rpart)

fit4 <- rpart(Species ~ Sepal.Length + Petal.Length + Sepal.Width ,
                     data=iris,method = "class")
print(fit4)
## n= 150 
## 
## node), split, n, loss, yval, (yprob)
##       * denotes terminal node
## 
## 1) root 150 100 setosa (0.33333333 0.33333333 0.33333333)  
##   2) Petal.Length< 2.45 50   0 setosa (1.00000000 0.00000000 0.00000000) *
##   3) Petal.Length>=2.45 100  50 versicolor (0.00000000 0.50000000 0.50000000)  
##     6) Petal.Length< 4.75 45   1 versicolor (0.00000000 0.97777778 0.02222222) *
##     7) Petal.Length>=4.75 55   6 virginica (0.00000000 0.10909091 0.89090909) *
library(rattle)
## Rattle: A free graphical interface for data mining with R.
## Version 4.1.0 Copyright (c) 2006-2015 Togaware Pty Ltd.
## Type 'rattle()' to shake, rattle, and roll your data.
fancyRpartPlot(fit4)

#rest models are in http://rpubs.com/newajay/chaid

#SOURCE https://sites.google.com/site/kittipat/rtechniques/usingchaiddecisiontreeinr


#install.packages("CHAID", repos="http://R-Forge.R-project.org") 

library("CHAID")
## Loading required package: partykit
## 
## Attaching package: 'partykit'
## The following objects are masked from 'package:party':
## 
##     cforest, ctree, ctree_control, edge_simple, mob, mob_control,
##     node_barplot, node_bivplot, node_boxplot, node_inner,
##     node_surv, node_terminal
data(iris)
str(iris)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
ctrl <- chaid_control(minsplit = 20, minbucket = 5, minprob = 0)

iris=lapply(iris,as.factor)
chaidiris <- chaid(Species ~ Sepal.Length + Petal.Length + Sepal.Width + Petal.Width ,
                   data=iris, control = ctrl)

print(chaidiris)
## 
## Model formula:
## Species ~ Sepal.Length + Petal.Length + Sepal.Width + Petal.Width
## 
## Fitted party:
## [1] root
## |   [2] Petal.Width in 0.1, 0.2, 0.3, 0.4, 0.5, 0.6: setosa (n = 50, err = 0.0%)
## |   [3] Petal.Width in 1, 1.1, 1.2, 1.3: versicolor (n = 28, err = 0.0%)
## |   [4] Petal.Width in 1.4, 1.5, 1.6, 1.7: versicolor (n = 26, err = 19.2%)
## |   [5] Petal.Width in 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5: virginica (n = 46, err = 2.2%)
## 
## Number of inner nodes:    1
## Number of terminal nodes: 4