library(caret)
## Warning: package 'caret' was built under R version 4.5.2
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.5.2
## Loading required package: lattice
library(klaR)
## Warning: package 'klaR' was built under R version 4.5.2
## Loading required package: MASS
car <- read.csv("~/Documents/car.data", header=FALSE)
##car
##str(car)
car$V7 <-as.factor(car$V7)
##car
names(car) <- c("Buying","Maint","Doors","Persons","Lug_boots","Safety","Class")
head(car)
##   Buying Maint Doors Persons Lug_boots Safety Class
## 1  vhigh vhigh     2       2     small    low unacc
## 2  vhigh vhigh     2       2     small    med unacc
## 3  vhigh vhigh     2       2     small   high unacc
## 4  vhigh vhigh     2       2       med    low unacc
## 5  vhigh vhigh     2       2       med    med unacc
## 6  vhigh vhigh     2       2       med   high unacc
trainIndex <- createDataPartition(car$Class, p=0.80, list=FALSE)
dataTrain <- car[trainIndex,]
dataTest<- car[-trainIndex,]
dataTest
##      Buying Maint Doors Persons Lug_boots Safety Class
## 3     vhigh vhigh     2       2     small   high unacc
## 16    vhigh vhigh     2       4       big    low unacc
## 17    vhigh vhigh     2       4       big    med unacc
## 18    vhigh vhigh     2       4       big   high unacc
## 19    vhigh vhigh     2    more     small    low unacc
## 27    vhigh vhigh     2    more       big   high unacc
## 28    vhigh vhigh     3       2     small    low unacc
## 29    vhigh vhigh     3       2     small    med unacc
## 34    vhigh vhigh     3       2       big    low unacc
## 41    vhigh vhigh     3       4       med    med unacc
## 45    vhigh vhigh     3       4       big   high unacc
## 46    vhigh vhigh     3    more     small    low unacc
## 58    vhigh vhigh     4       2       med    low unacc
## 64    vhigh vhigh     4       4     small    low unacc
## 66    vhigh vhigh     4       4     small   high unacc
## 67    vhigh vhigh     4       4       med    low unacc
## 68    vhigh vhigh     4       4       med    med unacc
## 81    vhigh vhigh     4    more       big   high unacc
## 82    vhigh vhigh 5more       2     small    low unacc
## 90    vhigh vhigh 5more       2       big   high unacc
## 91    vhigh vhigh 5more       4     small    low unacc
## 96    vhigh vhigh 5more       4       med   high unacc
## 103   vhigh vhigh 5more    more       med    low unacc
## 106   vhigh vhigh 5more    more       big    low unacc
## 107   vhigh vhigh 5more    more       big    med unacc
## 112   vhigh  high     2       2       med    low unacc
## 133   vhigh  high     2    more       big    low unacc
## 134   vhigh  high     2    more       big    med unacc
## 135   vhigh  high     2    more       big   high unacc
## 145   vhigh  high     3       4     small    low unacc
## 151   vhigh  high     3       4       big    low unacc
## 166   vhigh  high     4       2       med    low unacc
## 167   vhigh  high     4       2       med    med unacc
## 168   vhigh  high     4       2       med   high unacc
## 169   vhigh  high     4       2       big    low unacc
## 173   vhigh  high     4       4     small    med unacc
## 174   vhigh  high     4       4     small   high unacc
## 183   vhigh  high     4    more     small   high unacc
## 184   vhigh  high     4    more       med    low unacc
## 185   vhigh  high     4    more       med    med unacc
## 186   vhigh  high     4    more       med   high unacc
## 191   vhigh  high 5more       2     small    med unacc
## 202   vhigh  high 5more       4       med    low unacc
## 206   vhigh  high 5more       4       big    med unacc
## 210   vhigh  high 5more    more     small   high unacc
## 213   vhigh  high 5more    more       med   high unacc
## 216   vhigh  high 5more    more       big   high unacc
## 220   vhigh   med     2       2       med    low unacc
## 221   vhigh   med     2       2       med    med unacc
## 229   vhigh   med     2       4       med    low unacc
## 230   vhigh   med     2       4       med    med unacc
## 232   vhigh   med     2       4       big    low unacc
## 241   vhigh   med     2    more       big    low unacc
## 243   vhigh   med     2    more       big   high   acc
## 251   vhigh   med     3       2       big    med unacc
## 253   vhigh   med     3       4     small    low unacc
## 257   vhigh   med     3       4       med    med unacc
## 260   vhigh   med     3       4       big    med   acc
## 263   vhigh   med     3    more     small    med unacc
## 271   vhigh   med     4       2     small    low unacc
## 277   vhigh   med     4       2       big    low unacc
## 283   vhigh   med     4       4       med    low unacc
## 284   vhigh   med     4       4       med    med   acc
## 285   vhigh   med     4       4       med   high   acc
## 287   vhigh   med     4       4       big    med   acc
## 289   vhigh   med     4    more     small    low unacc
## 294   vhigh   med     4    more       med   high   acc
## 299   vhigh   med 5more       2     small    med unacc
## 313   vhigh   med 5more       4       big    low unacc
## 318   vhigh   med 5more    more     small   high   acc
## 323   vhigh   med 5more    more       big    med   acc
## 324   vhigh   med 5more    more       big   high   acc
## 325   vhigh   low     2       2     small    low unacc
## 326   vhigh   low     2       2     small    med unacc
## 330   vhigh   low     2       2       med   high unacc
## 338   vhigh   low     2       4       med    med unacc
## 340   vhigh   low     2       4       big    low unacc
## 342   vhigh   low     2       4       big   high   acc
## 343   vhigh   low     2    more     small    low unacc
## 346   vhigh   low     2    more       med    low unacc
## 360   vhigh   low     3       2       big   high unacc
## 363   vhigh   low     3       4     small   high   acc
## 365   vhigh   low     3       4       med    med unacc
## 371   vhigh   low     3    more     small    med unacc
## 372   vhigh   low     3    more     small   high   acc
## 374   vhigh   low     3    more       med    med   acc
## 393   vhigh   low     4       4       med   high   acc
## 394   vhigh   low     4       4       big    low unacc
## 402   vhigh   low     4    more       med   high   acc
## 404   vhigh   low     4    more       big    med   acc
## 409   vhigh   low 5more       2       med    low unacc
## 422   vhigh   low 5more       4       big    med   acc
## 432   vhigh   low 5more    more       big   high   acc
## 437    high vhigh     2       2       med    med unacc
## 442    high vhigh     2       4     small    low unacc
## 456    high vhigh     2    more       med   high unacc
## 457    high vhigh     2    more       big    low unacc
## 460    high vhigh     3       2     small    low unacc
## 465    high vhigh     3       2       med   high unacc
## 468    high vhigh     3       2       big   high unacc
## 470    high vhigh     3       4     small    med unacc
## 474    high vhigh     3       4       med   high unacc
## 475    high vhigh     3       4       big    low unacc
## 476    high vhigh     3       4       big    med unacc
## 485    high vhigh     3    more       big    med unacc
## 503    high vhigh     4       4       big    med unacc
## 504    high vhigh     4       4       big   high unacc
## 506    high vhigh     4    more     small    med unacc
## 507    high vhigh     4    more     small   high unacc
## 516    high vhigh 5more       2     small   high unacc
## 522    high vhigh 5more       2       big   high unacc
## 524    high vhigh 5more       4     small    med unacc
## 526    high vhigh 5more       4       med    low unacc
## 528    high vhigh 5more       4       med   high unacc
## 529    high vhigh 5more       4       big    low unacc
## 530    high vhigh 5more       4       big    med unacc
## 531    high vhigh 5more       4       big   high unacc
## 535    high vhigh 5more    more       med    low unacc
## 541    high  high     2       2     small    low unacc
## 543    high  high     2       2     small   high unacc
## 544    high  high     2       2       med    low unacc
## 547    high  high     2       2       big    low unacc
## 549    high  high     2       2       big   high unacc
## 550    high  high     2       4     small    low unacc
## 553    high  high     2       4       med    low unacc
## 558    high  high     2       4       big   high   acc
## 561    high  high     2    more     small   high unacc
## 581    high  high     3       4       med    med unacc
## 591    high  high     3    more       med   high   acc
## 593    high  high     3    more       big    med   acc
## 595    high  high     4       2     small    low unacc
## 602    high  high     4       2       big    med unacc
## 606    high  high     4       4     small   high   acc
## 614    high  high     4    more     small    med unacc
## 620    high  high     4    more       big    med   acc
## 631    high  high 5more       4     small    low unacc
## 632    high  high 5more       4     small    med unacc
## 637    high  high 5more       4       big    low unacc
## 647    high  high 5more    more       big    med   acc
## 657    high   med     2       2       big   high unacc
## 659    high   med     2       4     small    med unacc
## 663    high   med     2       4       med   high   acc
## 667    high   med     2    more     small    low unacc
## 671    high   med     2    more       med    med unacc
## 672    high   med     2    more       med   high   acc
## 675    high   med     2    more       big   high   acc
## 679    high   med     3       2       med    low unacc
## 682    high   med     3       2       big    low unacc
## 683    high   med     3       2       big    med unacc
## 684    high   med     3       2       big   high unacc
## 686    high   med     3       4     small    med unacc
## 693    high   med     3       4       big   high   acc
## 695    high   med     3    more     small    med unacc
## 697    high   med     3    more       med    low unacc
## 699    high   med     3    more       med   high   acc
## 702    high   med     3    more       big   high   acc
## 707    high   med     4       2       med    med unacc
## 717    high   med     4       4       med   high   acc
## 719    high   med     4       4       big    med   acc
## 723    high   med     4    more     small   high   acc
## 740    high   med 5more       4     small    med unacc
## 745    high   med 5more       4       big    low unacc
## 747    high   med 5more       4       big   high   acc
## 754    high   med 5more    more       big    low unacc
## 758    high   low     2       2     small    med unacc
## 759    high   low     2       2     small   high unacc
## 771    high   low     2       4       med   high   acc
## 774    high   low     2       4       big   high   acc
## 775    high   low     2    more     small    low unacc
## 777    high   low     2    more     small   high unacc
## 783    high   low     2    more       big   high   acc
## 789    high   low     3       2       med   high unacc
## 792    high   low     3       2       big   high unacc
## 793    high   low     3       4     small    low unacc
## 806    high   low     3    more       med    med   acc
## 807    high   low     3    more       med   high   acc
## 809    high   low     3    more       big    med   acc
## 811    high   low     4       2     small    low unacc
## 818    high   low     4       2       big    med unacc
## 825    high   low     4       4       med   high   acc
## 827    high   low     4       4       big    med   acc
## 836    high   low     4    more       big    med   acc
## 837    high   low     4    more       big   high   acc
## 839    high   low 5more       2     small    med unacc
## 840    high   low 5more       2     small   high unacc
## 843    high   low 5more       2       med   high unacc
## 846    high   low 5more       2       big   high unacc
## 853    high   low 5more       4       big    low unacc
## 856    high   low 5more    more     small    low unacc
## 862    high   low 5more    more       big    low unacc
## 863    high   low 5more    more       big    med   acc
## 868     med vhigh     2       2       med    low unacc
## 871     med vhigh     2       2       big    low unacc
## 876     med vhigh     2       4     small   high   acc
## 878     med vhigh     2       4       med    med unacc
## 885     med vhigh     2    more     small   high unacc
## 896     med vhigh     3       2       med    med unacc
## 897     med vhigh     3       2       med   high unacc
## 898     med vhigh     3       2       big    low unacc
## 902     med vhigh     3       4     small    med unacc
## 905     med vhigh     3       4       med    med unacc
## 921     med vhigh     4       2     small   high unacc
## 924     med vhigh     4       2       med   high unacc
## 930     med vhigh     4       4     small   high   acc
## 945     med vhigh     4    more       big   high   acc
## 951     med vhigh 5more       2       med   high unacc
## 955     med vhigh 5more       4     small    low unacc
## 959     med vhigh 5more       4       med    med   acc
## 963     med vhigh 5more       4       big   high   acc
## 966     med vhigh 5more    more     small   high   acc
## 970     med vhigh 5more    more       big    low unacc
## 972     med vhigh 5more    more       big   high   acc
## 984     med  high     2       4     small   high   acc
## 995     med  high     2    more       med    med unacc
## 998     med  high     2    more       big    med   acc
## 1005    med  high     3       2       med   high unacc
## 1007    med  high     3       2       big    med unacc
## 1018    med  high     3    more     small    low unacc
## 1024    med  high     3    more       big    low unacc
## 1025    med  high     3    more       big    med   acc
## 1034    med  high     4       2       big    med unacc
## 1039    med  high     4       4       med    low unacc
## 1055    med  high 5more       2     small    med unacc
## 1056    med  high 5more       2     small   high unacc
## 1057    med  high 5more       2       med    low unacc
## 1061    med  high 5more       2       big    med unacc
## 1071    med  high 5more       4       big   high   acc
## 1074    med  high 5more    more     small   high   acc
## 1075    med  high 5more    more       med    low unacc
## 1077    med  high 5more    more       med   high   acc
## 1081    med   med     2       2     small    low unacc
## 1090    med   med     2       4     small    low unacc
## 1096    med   med     2       4       big    low unacc
## 1101    med   med     2    more     small   high unacc
## 1103    med   med     2    more       med    med   acc
## 1110    med   med     3       2     small   high unacc
## 1118    med   med     3       4     small    med   acc
## 1134    med   med     3    more       big   high vgood
## 1137    med   med     4       2     small   high unacc
## 1138    med   med     4       2       med    low unacc
## 1141    med   med     4       2       big    low unacc
## 1142    med   med     4       2       big    med unacc
## 1143    med   med     4       2       big   high unacc
## 1183    med   med 5more    more       med    low unacc
## 1195    med   low     2       2       big    low unacc
## 1200    med   low     2       4     small   high  good
## 1201    med   low     2       4       med    low unacc
## 1213    med   low     2    more       big    low unacc
## 1214    med   low     2    more       big    med  good
## 1216    med   low     3       2     small    low unacc
## 1220    med   low     3       2       med    med unacc
## 1221    med   low     3       2       med   high unacc
## 1229    med   low     3       4       med    med   acc
## 1230    med   low     3       4       med   high  good
## 1246    med   low     4       2       med    low unacc
## 1248    med   low     4       2       med   high unacc
## 1251    med   low     4       2       big   high unacc
## 1252    med   low     4       4     small    low unacc
## 1269    med   low     4    more       big   high vgood
## 1274    med   low 5more       2       med    med unacc
## 1279    med   low 5more       4     small    low unacc
## 1281    med   low 5more       4     small   high  good
## 1288    med   low 5more    more     small    low unacc
## 1292    med   low 5more    more       med    med  good
## 1297    low vhigh     2       2     small    low unacc
## 1301    low vhigh     2       2       med    med unacc
## 1306    low vhigh     2       4     small    low unacc
## 1309    low vhigh     2       4       med    low unacc
## 1314    low vhigh     2       4       big   high   acc
## 1319    low vhigh     2    more       med    med unacc
## 1324    low vhigh     3       2     small    low unacc
## 1334    low vhigh     3       4     small    med unacc
## 1338    low vhigh     3       4       med   high   acc
## 1353    low vhigh     4       2     small   high unacc
## 1355    low vhigh     4       2       med    med unacc
## 1360    low vhigh     4       4     small    low unacc
## 1362    low vhigh     4       4     small   high   acc
## 1365    low vhigh     4       4       med   high   acc
## 1375    low vhigh     4    more       big    low unacc
## 1377    low vhigh     4    more       big   high   acc
## 1381    low vhigh 5more       2       med    low unacc
## 1382    low vhigh 5more       2       med    med unacc
## 1389    low vhigh 5more       4     small   high   acc
## 1393    low vhigh 5more       4       big    low unacc
## 1399    low vhigh 5more    more       med    low unacc
## 1414    low  high     2       4     small    low unacc
## 1425    low  high     2    more     small   high unacc
## 1430    low  high     2    more       big    med   acc
## 1433    low  high     3       2     small    med unacc
## 1442    low  high     3       4     small    med   acc
## 1443    low  high     3       4     small   high   acc
## 1448    low  high     3       4       big    med   acc
## 1464    low  high     4       2       med   high unacc
## 1470    low  high     4       4     small   high   acc
## 1474    low  high     4       4       big    low unacc
## 1476    low  high     4       4       big   high vgood
## 1477    low  high     4    more     small    low unacc
## 1479    low  high     4    more     small   high   acc
## 1482    low  high     4    more       med   high vgood
## 1486    low  high 5more       2     small    low unacc
## 1488    low  high 5more       2     small   high unacc
## 1490    low  high 5more       2       med    med unacc
## 1491    low  high 5more       2       med   high unacc
## 1494    low  high 5more       2       big   high unacc
## 1499    low  high 5more       4       med    med   acc
## 1512    low  high 5more    more       big   high vgood
## 1513    low   med     2       2     small    low unacc
## 1518    low   med     2       2       med   high unacc
## 1519    low   med     2       2       big    low unacc
## 1520    low   med     2       2       big    med unacc
## 1522    low   med     2       4     small    low unacc
## 1528    low   med     2       4       big    low unacc
## 1529    low   med     2       4       big    med  good
## 1535    low   med     2    more       med    med   acc
## 1538    low   med     2    more       big    med  good
## 1539    low   med     2    more       big   high vgood
## 1548    low   med     3       2       big   high unacc
## 1565    low   med     3    more       big    med  good
## 1566    low   med     3    more       big   high vgood
## 1575    low   med     4       2       big   high unacc
## 1578    low   med     4       4     small   high  good
## 1581    low   med     4       4       med   high vgood
## 1588    low   med     4    more       med    low unacc
## 1595    low   med 5more       2     small    med unacc
## 1617    low   med 5more    more       med   high vgood
## 1620    low   med 5more    more       big   high vgood
## 1626    low   low     2       2       med   high unacc
## 1633    low   low     2       4       med    low unacc
## 1637    low   low     2       4       big    med  good
## 1638    low   low     2       4       big   high vgood
## 1645    low   low     2    more       big    low unacc
## 1649    low   low     3       2     small    med unacc
## 1653    low   low     3       2       med   high unacc
## 1661    low   low     3       4       med    med   acc
## 1666    low   low     3    more     small    low unacc
## 1670    low   low     3    more       med    med  good
## 1682    low   low     4       2       big    med unacc
## 1684    low   low     4       4     small    low unacc
## 1700    low   low     4    more       big    med  good
## 1701    low   low     4    more       big   high vgood
## 1703    low   low 5more       2     small    med unacc
## 1710    low   low 5more       2       big   high unacc
## 1716    low   low 5more       4       med   high vgood
## 1722    low   low 5more    more     small   high  good
##dim(dataTest)
set.seed(1234)
fit <- NaiveBayes(Class~., data=dataTrain)
predictions <- predict(fit, dataTest[,1:6])
confusionMatrix(predictions$class, dataTest$Class)
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction acc good unacc vgood
##      acc    63    9    15     2
##      good    1    4     0     0
##      unacc  12    0   227     0
##      vgood   0    0     0    11
## 
## Overall Statistics
##                                           
##                Accuracy : 0.8866          
##                  95% CI : (0.8483, 0.9181)
##     No Information Rate : 0.7035          
##     P-Value [Acc > NIR] : 4.176e-16       
##                                           
##                   Kappa : 0.7494          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: acc Class: good Class: unacc Class: vgood
## Sensitivity              0.8289     0.30769       0.9380      0.84615
## Specificity              0.9030     0.99698       0.8824      1.00000
## Pos Pred Value           0.7079     0.80000       0.9498      1.00000
## Neg Pred Value           0.9490     0.97345       0.8571      0.99399
## Prevalence               0.2209     0.03779       0.7035      0.03779
## Detection Rate           0.1831     0.01163       0.6599      0.03198
## Detection Prevalence     0.2587     0.01453       0.6948      0.03198
## Balanced Accuracy        0.8660     0.65234       0.9102      0.92308