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