This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
library(caret)
## Loading required package: lattice
## Loading required package: ggplot2
library(plyr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:plyr':
##
## arrange, count, desc, failwith, id, mutate, rename, summarise,
## summarize
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(C50)
library(kernlab)
##
## Attaching package: 'kernlab'
## The following object is masked from 'package:ggplot2':
##
## alpha
library(e1071)
# Load data
Rwine <- read.csv( "winered.csv", header = TRUE , sep = ";" )
str(Rwine)
## 'data.frame': 1599 obs. of 12 variables:
## $ fixed.acidity : num 7.4 7.8 7.8 11.2 7.4 7.4 7.9 7.3 7.8 7.5 ...
## $ volatile.acidity : num 0.7 0.88 0.76 0.28 0.7 0.66 0.6 0.65 0.58 0.5 ...
## $ citric.acid : num 0 0 0.04 0.56 0 0 0.06 0 0.02 0.36 ...
## $ residual.sugar : num 1.9 2.6 2.3 1.9 1.9 1.8 1.6 1.2 2 6.1 ...
## $ chlorides : num 0.076 0.098 0.092 0.075 0.076 0.075 0.069 0.065 0.073 0.071 ...
## $ free.sulfur.dioxide : num 11 25 15 17 11 13 15 15 9 17 ...
## $ total.sulfur.dioxide: num 34 67 54 60 34 40 59 21 18 102 ...
## $ density : num 0.998 0.997 0.997 0.998 0.998 ...
## $ pH : num 3.51 3.2 3.26 3.16 3.51 3.51 3.3 3.39 3.36 3.35 ...
## $ sulphates : num 0.56 0.68 0.65 0.58 0.56 0.56 0.46 0.47 0.57 0.8 ...
## $ alcohol : num 9.4 9.8 9.8 9.8 9.4 9.4 9.4 10 9.5 10.5 ...
## $ quality : int 5 5 5 6 5 5 5 7 7 5 ...
class(Rwine)
## [1] "data.frame"
Rwine$quality <- as.factor(Rwine$quality)
str(Rwine)
## 'data.frame': 1599 obs. of 12 variables:
## $ fixed.acidity : num 7.4 7.8 7.8 11.2 7.4 7.4 7.9 7.3 7.8 7.5 ...
## $ volatile.acidity : num 0.7 0.88 0.76 0.28 0.7 0.66 0.6 0.65 0.58 0.5 ...
## $ citric.acid : num 0 0 0.04 0.56 0 0 0.06 0 0.02 0.36 ...
## $ residual.sugar : num 1.9 2.6 2.3 1.9 1.9 1.8 1.6 1.2 2 6.1 ...
## $ chlorides : num 0.076 0.098 0.092 0.075 0.076 0.075 0.069 0.065 0.073 0.071 ...
## $ free.sulfur.dioxide : num 11 25 15 17 11 13 15 15 9 17 ...
## $ total.sulfur.dioxide: num 34 67 54 60 34 40 59 21 18 102 ...
## $ density : num 0.998 0.997 0.997 0.998 0.998 ...
## $ pH : num 3.51 3.2 3.26 3.16 3.51 3.51 3.3 3.39 3.36 3.35 ...
## $ sulphates : num 0.56 0.68 0.65 0.58 0.56 0.56 0.46 0.47 0.57 0.8 ...
## $ alcohol : num 9.4 9.8 9.8 9.8 9.4 9.4 9.4 10 9.5 10.5 ...
## $ quality : Factor w/ 6 levels "3","4","5","6",..: 3 3 3 4 3 3 3 5 5 3 ...
sum(is.na(Rwine))
## [1] 0
corrMatrix <- cor(Rwine[,-12] , use = "pairwise.complete.obs")
table(is.na(corrMatrix))
##
## FALSE
## 121
# replace NA's
corrMatrix <- replace(corrMatrix, which(is.na(corrMatrix)), 0)
# Column indexes to remove
rmcols <- findCorrelation(corrMatrix, cutoff = 0.5, verbose = TRUE)
## Compare row 1 and column 3 with corr 0.672
## Means: 0.3 vs 0.19 so flagging column 1
## Compare row 3 and column 9 with corr 0.542
## Means: 0.258 vs 0.173 so flagging column 3
## Compare row 7 and column 6 with corr 0.668
## Means: 0.173 vs 0.16 so flagging column 7
## All correlations <= 0.5
# Column names to remove
colnames(corrMatrix[,rmcols])
## [1] "fixed.acidity" "citric.acid" "total.sulfur.dioxide"
# New dataset with columns removed
Rwine1 <- Rwine[,-which(names(Rwine) %in% colnames(corrMatrix[,rmcols]))]
You can also embed plots, for example:
## [1] "volatile.acidity" "residual.sugar" "chlorides"
## [4] "free.sulfur.dioxide" "density" "pH"
## [7] "sulphates" "alcohol" "quality"
## C5.0
##
## 1202 samples
## 8 predictor
## 6 classes: '3', '4', '5', '6', '7', '8'
##
## No pre-processing
## Resampling: Cross-Validated (10 fold, repeated 1 times)
## Summary of sample sizes: 1082, 1082, 1083, 1082, 1081, 1082, ...
## Resampling results across tuning parameters:
##
## model winnow trials Accuracy Kappa
## rules FALSE 1 0.5757031 0.3269682
## rules FALSE 10 0.6498304 0.4430491
## rules FALSE 20 0.6564972 0.4546811
## rules TRUE 1 0.5723629 0.3175320
## rules TRUE 10 0.6365660 0.4244958
## rules TRUE 20 0.6398443 0.4292661
## tree FALSE 1 0.5799113 0.3412427
## tree FALSE 10 0.6498169 0.4368292
## tree FALSE 20 0.6588936 0.4528531
## tree TRUE 1 0.5790436 0.3362621
## tree TRUE 10 0.6514353 0.4447137
## tree TRUE 20 0.6596993 0.4557600
##
## Accuracy was used to select the optimal model using the largest value.
## The final values used for the model were trials = 20, model = tree
## and winnow = TRUE.
## [1] 5 5 5 5 5 6 5 5 5 5 5 5 5 5 5 5 5 5 6 5 5 5 5 5 5 5 5 5 5 6 5 6 5 5 5
## [36] 5 5 6 5 5 6 5 6 5 5 5 5 5 5 5 6 5 6 6 7 6 5 5 6 5 6 5 7 5 6 6 5 6 7 6
## [71] 5 5 5 5 5 6 5 5 6 6 8 6 6 7 6 5 5 5 7 7 5 5 5 6 5 5 7 5 5 5 5 7 7 5 6
## [106] 6 6 6 6 6 5 6 5 5 5 6 5 6 5 5 5 7 6 7 7 7 7 6 7 6 5 6 6 5 6 5 6 5 5 7
## [141] 5 5 5 5 5 5 6 6 5 7 5 6 5 6 5 5 5 6 5 5 6 7 6 6 6 5 6 6 6 6 6 5 5 6 5
## [176] 5 6 5 5 5 5 4 5 5 5 5 5 5 5 5 5 6 5 5 5 5 5 6 7 7 7 5 6 6 5 5 5 5 5 6
## [211] 5 5 5 6 6 6 5 5 6 6 5 6 7 7 6 6 5 6 6 7 7 6 5 7 6 5 5 6 5 5 5 5 6 6 7
## [246] 6 6 7 6 6 5 6 6 5 6 5 7 5 6 7 5 7 6 7 6 6 5 6 6 7 4 6 7 6 5 7 6 6 5 6
## [281] 6 6 6 6 7 5 5 5 5 6 5 6 7 5 6 6 5 5 5 5 6 5 6 6 5 5 5 6 5 6 6 6 5 5 6
## [316] 6 5 6 6 7 6 6 5 5 5 6 6 5 5 5 5 5 6 6 5 5 5 6 6 6 5 5 5 6 5 6 5 5 7 6
## [351] 6 6 6 6 5 6 7 5 7 6 5 5 5 5 7 6 6 5 6 6 5 6 7 6 6 6 6 5 7 6 6 6 6 6 6
## [386] 5 6 5 5 5 6 6 6 7 7 6 6
## Levels: 3 4 5 6 7 8
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 6.801008e-01 4.846633e-01 6.317414e-01 7.257498e-01 4.282116e-01
## AccuracyPValue McnemarPValue
## 4.016961e-24 NaN
## Sensitivity Specificity Pos Pred Value Neg Pred Value Precision
## Class: 3 0.0000000 1.0000000 NaN 0.9949622 NA
## Class: 4 0.0000000 0.9947917 0.0000000 0.9670886 0.0000000
## Class: 5 0.8058824 0.7400881 0.6989796 0.8358209 0.6989796
## Class: 6 0.6477987 0.7941176 0.6776316 0.7714286 0.6776316
## Class: 7 0.6122449 0.9540230 0.6521739 0.9458689 0.6521739
## Class: 8 0.0000000 0.9974555 0.0000000 0.9898990 0.0000000
## Recall F1 Prevalence Detection Rate
## Class: 3 0.0000000 NA 0.005037783 0.00000000
## Class: 4 0.0000000 NaN 0.032745592 0.00000000
## Class: 5 0.8058824 0.7486339 0.428211587 0.34508816
## Class: 6 0.6477987 0.6623794 0.400503778 0.25944584
## Class: 7 0.6122449 0.6315789 0.123425693 0.07556675
## Class: 8 0.0000000 NaN 0.010075567 0.00000000
## Detection Prevalence Balanced Accuracy
## Class: 3 0.000000000 0.5000000
## Class: 4 0.005037783 0.4973958
## Class: 5 0.493702771 0.7729852
## Class: 6 0.382871537 0.7209582
## Class: 7 0.115869018 0.7831339
## Class: 8 0.002518892 0.4987277
Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.
#nb
DecTreeModel4 <- train(trainingData[,-9], trainingData$quality,
method = "nb",
trControl= TrainingParameters,
na.action = na.omit)
## Loading required package: klaR
## Loading required package: MASS
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
# check tree
DecTreeModel4
## Naive Bayes
##
## 1202 samples
## 8 predictor
## 6 classes: '3', '4', '5', '6', '7', '8'
##
## No pre-processing
## Resampling: Cross-Validated (10 fold, repeated 1 times)
## Summary of sample sizes: 1082, 1082, 1081, 1082, 1082, 1082, ...
## Resampling results across tuning parameters:
##
## usekernel Accuracy Kappa
## FALSE 0.5300138 0.2646092
## TRUE 0.5666047 0.3120979
##
## 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
DTPredictions4<-predict(DecTreeModel4, testData, na.action = na.pass)
# See predictions
DTPredictions4
## [1] 5 5 7 5 6 5 5 5 5 5 6 5 5 5 5 6 5 5 5 5 5 5 5 5 5 5 6 6 5 5 5 8 5 5 5
## [36] 6 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 5 5 5 5 5 5 5 7 6 6 6 6 5 7 6
## [71] 5 5 6 6 5 6 5 5 6 6 7 6 6 6 5 5 5 5 7 7 6 5 5 6 5 5 6 5 5 5 5 6 7 6 6
## [106] 6 6 6 5 6 5 6 6 6 5 5 5 6 5 5 5 6 6 7 7 6 6 5 7 5 5 6 6 5 6 5 6 5 6 7
## [141] 5 6 5 5 5 5 6 5 5 7 5 6 5 6 5 5 5 5 3 5 6 8 5 7 6 5 6 5 6 5 5 5 5 5 6
## [176] 5 6 5 5 6 5 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 5 8 7 7 5 7 6 5 5 5 3 5 6
## [211] 5 5 5 6 6 6 6 6 5 6 5 6 7 5 6 5 5 5 5 7 7 6 5 7 6 5 6 6 5 5 5 6 6 6 7
## [246] 7 6 7 6 6 6 5 6 5 6 6 6 5 6 7 7 7 5 5 6 7 5 6 6 7 5 7 7 5 6 7 6 6 5 6
## [281] 6 5 5 6 7 5 5 5 6 7 5 5 6 5 6 6 5 5 5 6 5 4 6 6 5 5 5 6 5 6 5 5 6 3 6
## [316] 6 5 6 6 7 6 6 5 5 5 6 6 6 5 5 6 5 5 6 5 5 5 5 6 5 5 5 5 5 5 6 5 5 7 6
## [351] 6 6 6 7 6 5 7 5 7 6 4 6 6 5 8 6 4 5 6 6 5 6 6 6 6 6 6 5 6 6 5 6 6 6 6
## [386] 6 5 5 5 5 5 6 6 7 6 6 7
## Levels: 3 4 5 6 7 8
# Create confusion matrix
cm1 <-confusionMatrix(DTPredictions4, testData$quality)
cm1$overall
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 6.498741e-01 4.387237e-01 6.007098e-01 6.967846e-01 4.282116e-01
## AccuracyPValue McnemarPValue
## 5.132145e-19 NaN
cm1$byClass
## Sensitivity Specificity Pos Pred Value Neg Pred Value Precision
## Class: 3 0.50000000 0.9949367 0.3333333 0.9974619 0.3333333
## Class: 4 0.07692308 0.9921875 0.2500000 0.9694656 0.2500000
## Class: 5 0.82352941 0.7180617 0.6862745 0.8445596 0.6862745
## Class: 6 0.58490566 0.7941176 0.6549296 0.7411765 0.6549296
## Class: 7 0.46938776 0.9511494 0.5750000 0.9271709 0.5750000
## Class: 8 0.00000000 0.9898219 0.0000000 0.9898219 0.0000000
## Recall F1 Prevalence Detection Rate
## Class: 3 0.50000000 0.4000000 0.005037783 0.002518892
## Class: 4 0.07692308 0.1176471 0.032745592 0.002518892
## Class: 5 0.82352941 0.7486631 0.428211587 0.352644836
## Class: 6 0.58490566 0.6179402 0.400503778 0.234256927
## Class: 7 0.46938776 0.5168539 0.123425693 0.057934509
## Class: 8 0.00000000 NaN 0.010075567 0.000000000
## Detection Prevalence Balanced Accuracy
## Class: 3 0.007556675 0.7474684
## Class: 4 0.010075567 0.5345553
## Class: 5 0.513853904 0.7707955
## Class: 6 0.357682620 0.6895117
## Class: 7 0.100755668 0.7102686
## Class: 8 0.010075567 0.4949109
# paramter declaration for 10 fold
NoTrainingParameters <- trainControl(method = "repeatedcv", number = 10, repeats = 1)
set.seed(245)
#NN classifier
NNModel <- train(trainingData[,-9], trainingData$quality,
method = "nnet",
trControl= NoTrainingParameters,
tuneGrid = data.frame(size = 5,
decay = 0
)
)
## Loading required package: nnet
## # weights: 81
## initial value 1988.171996
## iter 10 value 1264.503605
## iter 20 value 1211.603327
## iter 30 value 1061.690426
## iter 40 value 1042.400183
## iter 50 value 1028.248268
## iter 60 value 1020.582808
## iter 70 value 1009.617882
## iter 80 value 1004.989469
## iter 90 value 1000.969762
## iter 100 value 997.977857
## final value 997.977857
## stopped after 100 iterations
## # weights: 81
## initial value 2191.698309
## iter 10 value 1265.081798
## iter 20 value 1176.435665
## iter 30 value 1112.503492
## iter 40 value 1041.444391
## iter 50 value 1020.720563
## iter 60 value 1007.263165
## iter 70 value 1002.273086
## iter 80 value 998.870334
## iter 90 value 998.565072
## iter 100 value 997.176009
## final value 997.176009
## stopped after 100 iterations
## # weights: 81
## initial value 1880.650401
## iter 10 value 1282.717474
## iter 20 value 1232.623129
## iter 30 value 1168.596518
## iter 40 value 1095.304250
## iter 50 value 1049.185317
## iter 60 value 1024.202611
## iter 70 value 1009.302352
## iter 80 value 996.489989
## iter 90 value 991.302093
## iter 100 value 988.030055
## final value 988.030055
## stopped after 100 iterations
## # weights: 81
## initial value 1923.572108
## iter 10 value 1270.365898
## iter 20 value 1210.767662
## iter 30 value 1107.519171
## iter 40 value 1048.966953
## iter 50 value 1030.756004
## iter 60 value 1014.656168
## iter 70 value 1012.196833
## iter 80 value 1010.150422
## iter 90 value 1001.379788
## iter 100 value 996.917814
## final value 996.917814
## stopped after 100 iterations
## # weights: 81
## initial value 2806.040597
## iter 10 value 1281.969417
## iter 20 value 1270.087493
## iter 30 value 1185.848391
## iter 40 value 1070.026659
## iter 50 value 1040.665584
## iter 60 value 1028.261344
## iter 70 value 1022.709840
## iter 80 value 1021.710833
## iter 90 value 1021.212302
## iter 100 value 1020.988549
## final value 1020.988549
## stopped after 100 iterations
## # weights: 81
## initial value 1988.156889
## iter 10 value 1294.222695
## iter 20 value 1288.607173
## iter 30 value 1288.509428
## final value 1288.509331
## converged
## # weights: 81
## initial value 2414.613421
## iter 10 value 1288.877559
## iter 20 value 1265.370683
## iter 30 value 1188.915222
## iter 40 value 1095.910579
## iter 50 value 1069.208977
## iter 60 value 1054.133105
## iter 70 value 1051.969671
## iter 80 value 1051.353561
## iter 90 value 1051.289814
## iter 100 value 1051.268734
## final value 1051.268734
## stopped after 100 iterations
## # weights: 81
## initial value 1933.435766
## iter 10 value 1298.998851
## iter 20 value 1185.207322
## iter 30 value 1107.184049
## iter 40 value 1070.657429
## iter 50 value 1063.849246
## iter 60 value 1061.931055
## iter 70 value 1061.454535
## iter 80 value 1061.340598
## iter 90 value 1061.224554
## iter 100 value 1061.213610
## final value 1061.213610
## stopped after 100 iterations
## # weights: 81
## initial value 3645.812227
## iter 10 value 1305.488196
## iter 20 value 1287.343710
## final value 1287.343107
## converged
## # weights: 81
## initial value 2606.848726
## iter 10 value 1279.592781
## iter 20 value 1260.937147
## iter 30 value 1206.390912
## iter 40 value 1069.931256
## iter 50 value 1039.411630
## iter 60 value 1032.689333
## iter 70 value 1029.737228
## iter 80 value 1018.386943
## iter 90 value 1006.173614
## iter 100 value 1001.379571
## final value 1001.379571
## stopped after 100 iterations
## # weights: 81
## initial value 2379.778568
## iter 10 value 1414.961258
## iter 20 value 1345.956625
## iter 30 value 1252.765841
## iter 40 value 1196.136662
## iter 50 value 1156.592097
## iter 60 value 1133.948309
## iter 70 value 1122.387515
## iter 80 value 1120.270809
## iter 90 value 1119.419601
## iter 100 value 1119.073499
## final value 1119.073499
## stopped after 100 iterations
NNPredictions <-predict(NNModel, testData)
# See predictions
NNPredictions
## [1] 5 5 6 5 6 5 5 5 5 5 6 5 5 5 5 6 5 5 6 6 5 5 5 5 5 5 6 6 5 5 5 7 6 5 5
## [36] 6 6 5 5 5 5 5 5 5 5 5 5 5 5 6 6 5 5 5 6 6 5 5 5 5 5 5 7 6 6 6 6 6 7 6
## [71] 5 5 6 6 5 5 5 5 6 7 7 6 6 7 5 5 6 5 7 7 6 5 5 6 5 5 6 5 5 5 5 6 6 5 6
## [106] 6 6 6 6 6 5 6 6 6 5 5 5 6 6 5 5 6 6 7 7 6 6 5 7 5 5 6 6 5 6 6 7 5 6 6
## [141] 5 6 5 5 5 5 5 5 5 7 5 6 6 6 5 5 5 5 5 5 6 7 6 6 6 5 5 5 6 5 5 5 5 5 6
## [176] 5 6 5 5 6 5 5 5 5 5 5 5 5 5 5 5 6 5 5 5 5 5 6 7 7 7 6 6 6 5 5 5 5 5 6
## [211] 5 5 6 6 6 6 6 6 5 6 5 6 7 6 6 6 5 6 6 7 6 6 5 6 6 5 6 6 5 5 5 6 6 6 7
## [246] 7 6 7 6 5 6 6 6 5 6 6 6 5 6 6 5 7 5 6 6 7 5 7 6 7 5 6 7 5 6 7 6 6 5 6
## [281] 6 6 6 6 7 5 5 6 6 6 5 5 6 5 6 6 5 5 5 5 5 6 6 6 5 6 5 6 5 6 5 6 5 5 6
## [316] 6 5 5 6 6 6 6 5 5 5 6 6 6 5 5 6 5 6 6 5 5 5 5 6 5 5 5 5 5 5 6 5 5 6 6
## [351] 6 6 6 6 6 6 7 5 6 6 5 6 6 5 7 6 5 5 6 6 5 6 6 5 6 6 6 5 6 6 5 6 6 6 5
## [386] 6 6 5 5 5 6 6 6 6 6 6 6
## Levels: 3 4 5 6 7 8
# Create confusion matrix
cmNN <-confusionMatrix(NNPredictions, testData$quality)
cmNN$overall
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 6.549118e-01 4.323007e-01 6.058672e-01 7.016268e-01 4.282116e-01
## AccuracyPValue McnemarPValue
## 8.082425e-20 NaN
cmNN$byClass
## Sensitivity Specificity Pos Pred Value Neg Pred Value Precision
## Class: 3 0.0000000 1.0000000 NaN 0.9949622 NA
## Class: 4 0.0000000 1.0000000 NaN 0.9672544 NA
## Class: 5 0.7941176 0.7577093 0.7105263 0.8309179 0.7105263
## Class: 6 0.6792453 0.7142857 0.6136364 0.7692308 0.6136364
## Class: 7 0.3469388 0.9597701 0.5483871 0.9125683 0.5483871
## Class: 8 0.0000000 1.0000000 NaN 0.9899244 NA
## Recall F1 Prevalence Detection Rate
## Class: 3 0.0000000 NA 0.005037783 0.00000000
## Class: 4 0.0000000 NA 0.032745592 0.00000000
## Class: 5 0.7941176 0.7500000 0.428211587 0.34005038
## Class: 6 0.6792453 0.6447761 0.400503778 0.27204030
## Class: 7 0.3469388 0.4250000 0.123425693 0.04282116
## Class: 8 0.0000000 NA 0.010075567 0.00000000
## Detection Prevalence Balanced Accuracy
## Class: 3 0.00000000 0.5000000
## Class: 4 0.00000000 0.5000000
## Class: 5 0.47858942 0.7759134
## Class: 6 0.44332494 0.6967655
## Class: 7 0.07808564 0.6533544
## Class: 8 0.00000000 0.5000000
# train model with SVM
TrainingDataIndex1 <- createDataPartition(Rwine1$quality, p=0.70, list = FALSE)
SVModel <- train(quality ~ ., data = trainingData,
method = "svmPoly",
trControl= NoTrainingParameters,
tuneGrid = data.frame(degree = 1,
scale = 1,
C = 1
)
)
SVMPredictions <-predict(SVModel, testData)
# See predictions
SVMPredictions
## [1] 5 5 6 5 6 5 5 5 5 5 5 5 5 5 5 6 5 5 6 6 5 5 5 5 5 5 6 6 5 5 5 6 6 5 5
## [36] 6 6 5 5 5 5 6 5 5 5 5 5 5 5 6 6 6 5 5 6 5 5 5 5 5 5 5 6 6 6 6 6 5 6 6
## [71] 5 5 6 5 5 5 5 5 6 6 6 6 6 6 5 5 5 5 6 6 6 5 5 6 5 5 6 5 5 5 5 6 6 6 6
## [106] 6 6 6 6 6 5 6 6 6 5 5 5 6 6 5 5 6 6 6 6 6 6 5 6 5 5 6 6 5 6 6 6 5 6 6
## [141] 5 5 5 5 5 5 5 5 5 6 5 6 6 5 5 5 5 5 5 5 6 6 5 6 6 5 5 5 6 5 5 5 5 5 6
## [176] 5 6 5 5 6 5 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 5 6 6 5 5 5 5 5 6
## [211] 5 5 6 6 6 6 6 6 5 6 5 5 6 6 6 6 5 6 5 6 6 6 5 6 6 5 6 6 5 5 5 6 6 6 6
## [246] 6 6 6 6 5 6 5 6 5 6 6 6 5 6 6 6 6 5 6 6 6 5 6 6 6 5 6 6 5 6 6 6 6 5 6
## [281] 6 5 6 6 6 5 5 6 6 6 5 5 6 5 5 6 5 5 5 5 5 6 6 6 5 6 5 5 5 6 5 6 5 5 6
## [316] 6 5 6 6 6 6 6 5 5 5 5 5 6 5 5 6 5 5 6 5 5 5 5 6 5 5 5 5 5 5 6 5 5 6 6
## [351] 6 6 6 6 6 5 6 5 6 6 5 6 6 5 6 6 5 5 6 6 5 6 6 5 5 6 6 5 6 6 5 6 5 5 5
## [386] 6 6 5 5 5 6 6 6 6 6 6 6
## Levels: 3 4 5 6 7 8
# Create confusion matrix
cmSVM <-confusionMatrix(SVMPredictions, testData$quality)
cmSVM$overall
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 5.818640e-01 2.853828e-01 5.316241e-01 6.308742e-01 4.282116e-01
## AccuracyPValue McnemarPValue
## 5.465011e-10 NaN
cmSVM$byClass
## Sensitivity Specificity Pos Pred Value Neg Pred Value Precision
## Class: 3 0.0000000 1.0000000 NaN 0.9949622 NA
## Class: 4 0.0000000 1.0000000 NaN 0.9672544 NA
## Class: 5 0.7764706 0.6740088 0.6407767 0.8010471 0.6407767
## Class: 6 0.6226415 0.6134454 0.5183246 0.7087379 0.5183246
## Class: 7 0.0000000 1.0000000 NaN 0.8765743 NA
## Class: 8 0.0000000 1.0000000 NaN 0.9899244 NA
## Recall F1 Prevalence Detection Rate
## Class: 3 0.0000000 NA 0.005037783 0.0000000
## Class: 4 0.0000000 NA 0.032745592 0.0000000
## Class: 5 0.7764706 0.7021277 0.428211587 0.3324937
## Class: 6 0.6226415 0.5657143 0.400503778 0.2493703
## Class: 7 0.0000000 NA 0.123425693 0.0000000
## Class: 8 0.0000000 NA 0.010075567 0.0000000
## Detection Prevalence Balanced Accuracy
## Class: 3 0.0000000 0.5000000
## Class: 4 0.0000000 0.5000000
## Class: 5 0.5188917 0.7252397
## Class: 6 0.4811083 0.6180434
## Class: 7 0.0000000 0.5000000
## Class: 8 0.0000000 0.5000000
# train model with PCA -decision tree
TrainingDataIndex2 <- createDataPartition(Rwine1$quality, p=0.75, list = FALSE)
DecTreeModel2 <- train(trainingData[,-9], trainingData$quality,
method = "C5.0",
trControl= TrainingParameters,
preProcess = c("pca"),
na.action = na.omit)
DecTreeModel2
## C5.0
##
## 1202 samples
## 8 predictor
## 6 classes: '3', '4', '5', '6', '7', '8'
##
## Pre-processing: principal component signal extraction (8), centered
## (8), scaled (8)
## Resampling: Cross-Validated (10 fold, repeated 1 times)
## Summary of sample sizes: 1083, 1081, 1082, 1081, 1081, 1081, ...
## Resampling results across tuning parameters:
##
## model winnow trials Accuracy Kappa
## rules FALSE 1 0.5558246 0.2898855
## rules FALSE 10 0.5975567 0.3636733
## rules FALSE 20 0.6023544 0.3723878
## rules TRUE 1 0.5508382 0.2848263
## rules TRUE 10 0.5967580 0.3614330
## rules TRUE 20 0.5957220 0.3606184
## tree FALSE 1 0.5607963 0.3028572
## tree FALSE 10 0.6107024 0.3768949
## tree FALSE 20 0.6248775 0.4000253
## tree TRUE 1 0.5540736 0.2910306
## tree TRUE 10 0.6073268 0.3708163
## tree TRUE 20 0.6190576 0.3898641
##
## Accuracy was used to select the optimal model using the largest value.
## The final values used for the model were trials = 20, model = tree
## and winnow = FALSE.
#predict
DTPredictions2 <-predict(DecTreeModel2, testData, na.action = na.pass)
# See predictions
DTPredictions2
## [1] 5 5 5 5 6 5 5 5 5 5 5 6 5 5 6 6 5 5 6 5 5 5 5 6 5 5 6 5 5 6 5 6 5 5 5
## [36] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 5 6 6 7 6 5 6 5 5 6 5 7 5 6 6 5 6 6 6
## [71] 5 5 6 5 6 6 5 5 6 6 6 6 6 6 5 5 5 5 7 6 6 6 6 6 5 5 6 5 5 5 5 7 7 6 6
## [106] 6 6 7 5 6 5 6 6 6 5 5 5 6 5 6 6 6 6 7 6 7 7 6 6 5 5 6 5 5 6 5 6 5 6 7
## [141] 5 5 5 5 5 5 6 6 5 5 6 6 5 6 5 5 5 5 5 5 6 7 6 6 6 5 6 6 6 6 5 5 5 6 6
## [176] 5 6 5 5 6 5 4 5 5 5 5 5 5 5 5 5 6 5 5 5 5 6 6 7 7 7 5 6 6 5 6 5 3 5 6
## [211] 5 5 6 6 6 6 6 6 6 6 5 6 7 7 6 6 5 6 5 7 7 6 5 6 6 5 5 5 5 5 5 5 7 7 7
## [246] 7 6 7 6 6 5 6 6 5 6 6 7 5 6 7 5 7 6 7 6 7 5 6 6 7 5 6 6 6 6 7 6 6 6 7
## [281] 6 6 6 7 6 5 5 5 6 6 5 6 7 5 6 6 5 5 5 6 5 5 6 6 5 5 5 6 5 6 6 6 6 5 6
## [316] 6 5 5 7 6 6 6 5 5 5 6 6 6 5 5 5 5 6 6 5 5 5 5 6 5 5 5 5 6 5 6 5 5 7 6
## [351] 6 6 7 7 6 5 6 5 7 6 6 6 6 5 7 6 6 5 6 6 6 6 6 6 5 6 6 5 6 6 5 6 5 5 5
## [386] 5 6 5 5 5 6 7 5 6 7 6 6
## Levels: 3 4 5 6 7 8
# Create confusion matrix
cm2 <-confusionMatrix(DTPredictions2, testData$quality)
cm2$overall
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 6.926952e-01 5.020920e-01 6.447351e-01 7.377545e-01 4.282116e-01
## AccuracyPValue McnemarPValue
## 1.848038e-26 NaN
cm2$byClass
## Sensitivity Specificity Pos Pred Value Neg Pred Value Precision
## Class: 3 0.0000000 0.9974684 0.0000000 0.9949495 0.0000000
## Class: 4 0.0000000 0.9973958 0.0000000 0.9671717 0.0000000
## Class: 5 0.7647059 0.7621145 0.7065217 0.8122066 0.7065217
## Class: 6 0.7169811 0.7647059 0.6705882 0.8017621 0.6705882
## Class: 7 0.6326531 0.9712644 0.7560976 0.9494382 0.7560976
## Class: 8 0.0000000 1.0000000 NaN 0.9899244 NA
## Recall F1 Prevalence Detection Rate
## Class: 3 0.0000000 NaN 0.005037783 0.00000000
## Class: 4 0.0000000 NaN 0.032745592 0.00000000
## Class: 5 0.7647059 0.7344633 0.428211587 0.32745592
## Class: 6 0.7169811 0.6930091 0.400503778 0.28715365
## Class: 7 0.6326531 0.6888889 0.123425693 0.07808564
## Class: 8 0.0000000 NA 0.010075567 0.00000000
## Detection Prevalence Balanced Accuracy
## Class: 3 0.002518892 0.4987342
## Class: 4 0.002518892 0.4986979
## Class: 5 0.463476071 0.7634102
## Class: 6 0.428211587 0.7408435
## Class: 7 0.103274559 0.8019587
## Class: 8 0.000000000 0.5000000
# PCA with nb
DecTreeModel3 <- train(trainingData[,-9], trainingData$quality,
method = "nb",
trControl= TrainingParameters,
preProcess = c("pca"),
na.action = na.omit)
DecTreeModel3
## Naive Bayes
##
## 1202 samples
## 8 predictor
## 6 classes: '3', '4', '5', '6', '7', '8'
##
## Pre-processing: principal component signal extraction (8), centered
## (8), scaled (8)
## Resampling: Cross-Validated (10 fold, repeated 1 times)
## Summary of sample sizes: 1083, 1083, 1081, 1082, 1080, 1082, ...
## Resampling results across tuning parameters:
##
## usekernel Accuracy Kappa
## FALSE 0.5416133 0.2610351
## TRUE 0.5406756 0.2578611
##
## 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
DTPredictions3 <-predict(DecTreeModel3, testData, na.action = na.pass)
# See predictions
DTPredictions3
## [1] 5 5 6 5 6 4 5 5 5 5 4 5 5 5 5 6 5 4 4 6 5 5 5 5 6 5 6 6 5 5 5 7 6 5 5
## [36] 6 6 5 5 5 5 4 5 5 5 5 5 5 5 5 5 5 5 5 6 6 5 4 5 5 5 5 7 5 6 6 5 6 7 6
## [71] 5 5 6 6 5 5 5 5 6 7 7 6 6 7 5 5 5 5 7 7 6 5 5 6 5 5 6 5 5 6 5 6 7 6 6
## [106] 6 6 6 5 6 5 6 6 6 5 5 5 6 6 5 5 6 6 7 6 6 6 5 6 5 5 6 6 5 6 6 7 5 6 6
## [141] 5 5 5 5 5 5 5 5 5 7 5 6 4 6 5 5 5 5 5 5 6 7 6 6 6 5 5 5 5 5 5 4 5 5 6
## [176] 4 6 5 5 4 5 5 5 5 5 5 5 5 5 5 5 6 5 5 5 5 6 5 8 7 7 5 6 5 5 5 5 5 5 6
## [211] 5 5 6 6 6 5 6 6 5 5 5 5 7 5 5 6 5 6 5 6 6 6 5 6 6 5 6 6 5 5 5 6 6 6 7
## [246] 7 6 7 6 6 6 5 6 5 6 6 7 5 6 7 6 6 5 6 6 7 5 6 6 7 5 6 7 5 6 7 6 6 5 6
## [281] 6 6 6 6 7 5 4 6 6 7 5 5 6 5 5 6 5 5 5 5 5 5 6 6 5 6 5 5 5 6 5 6 5 4 6
## [316] 5 5 5 6 6 6 6 5 5 5 5 5 6 5 5 6 5 5 6 5 5 5 4 7 4 5 5 5 5 5 6 5 5 6 6
## [351] 6 6 6 6 6 5 6 5 6 5 5 6 6 4 7 6 5 5 6 6 5 6 6 5 6 6 6 5 6 6 5 6 6 5 5
## [386] 6 5 5 5 5 4 6 6 6 6 6 6
## Levels: 3 4 5 6 7 8
# Create confusion matrix
cm3 <-confusionMatrix(DTPredictions3, testData$quality)
cm3$overall
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 5.717884e-01 3.109398e-01 5.214712e-01 6.210275e-01 4.282116e-01
## AccuracyPValue McnemarPValue
## 6.269718e-09 NaN
cm3$byClass
## Sensitivity Specificity Pos Pred Value Neg Pred Value Precision
## Class: 3 0.0000000 1.0000000 NaN 0.9949622 NA
## Class: 4 0.0000000 0.9583333 0.0000000 0.9658793 0.0000000
## Class: 5 0.7294118 0.6563877 0.6138614 0.7641026 0.6138614
## Class: 6 0.5345912 0.7310924 0.5704698 0.7016129 0.5704698
## Class: 7 0.3673469 0.9683908 0.6206897 0.9157609 0.6206897
## Class: 8 0.0000000 0.9974555 0.0000000 0.9898990 0.0000000
## Recall F1 Prevalence Detection Rate
## Class: 3 0.0000000 NA 0.005037783 0.00000000
## Class: 4 0.0000000 NaN 0.032745592 0.00000000
## Class: 5 0.7294118 0.6666667 0.428211587 0.31234257
## Class: 6 0.5345912 0.5519481 0.400503778 0.21410579
## Class: 7 0.3673469 0.4615385 0.123425693 0.04534005
## Class: 8 0.0000000 NaN 0.010075567 0.00000000
## Detection Prevalence Balanced Accuracy
## Class: 3 0.000000000 0.5000000
## Class: 4 0.040302267 0.4791667
## Class: 5 0.508816121 0.6928997
## Class: 6 0.375314861 0.6328418
## Class: 7 0.073047859 0.6678689
## Class: 8 0.002518892 0.4987277
# PCA with NN
NoTrainingParameters1 <- trainControl(method = "repeatedcv", number = 10, repeats = 1)
set.seed(245)
NNModel1 <- train(trainingData[,-9], trainingData$quality,
method = "nnet",
trControl= NoTrainingParameters1,
preProcess = c("pca"),
tuneGrid = data.frame(size = 5,
decay = 0
)
)
## # weights: 76
## initial value 1569.750316
## iter 10 value 1071.908574
## iter 20 value 1011.177103
## iter 30 value 991.937753
## iter 40 value 978.500571
## iter 50 value 974.660346
## iter 60 value 972.011638
## iter 70 value 967.753856
## iter 80 value 965.479405
## iter 90 value 962.853607
## iter 100 value 960.523599
## final value 960.523599
## stopped after 100 iterations
## # weights: 76
## initial value 2278.668446
## iter 10 value 1132.305666
## iter 20 value 1030.028549
## iter 30 value 1001.869613
## iter 40 value 992.288815
## iter 50 value 983.476751
## iter 60 value 973.878877
## iter 70 value 969.500282
## iter 80 value 961.690877
## iter 90 value 956.283404
## iter 100 value 954.026571
## final value 954.026571
## stopped after 100 iterations
## # weights: 76
## initial value 2299.835967
## iter 10 value 1105.015824
## iter 20 value 1026.310206
## iter 30 value 1007.929075
## iter 40 value 992.668967
## iter 50 value 984.173017
## iter 60 value 979.558668
## iter 70 value 975.064622
## iter 80 value 969.028635
## iter 90 value 962.115214
## iter 100 value 957.544699
## final value 957.544699
## stopped after 100 iterations
## # weights: 76
## initial value 1878.689878
## iter 10 value 1084.748045
## iter 20 value 1020.011150
## iter 30 value 1003.850075
## iter 40 value 993.680085
## iter 50 value 987.023836
## iter 60 value 977.726990
## iter 70 value 972.965805
## iter 80 value 965.504153
## iter 90 value 960.190838
## iter 100 value 957.194146
## final value 957.194146
## stopped after 100 iterations
## # weights: 76
## initial value 1742.450340
## iter 10 value 1153.367171
## iter 20 value 1049.835142
## iter 30 value 1032.209400
## iter 40 value 1007.692461
## iter 50 value 988.335874
## iter 60 value 973.767344
## iter 70 value 970.252551
## iter 80 value 967.258680
## iter 90 value 964.825770
## iter 100 value 962.625438
## final value 962.625438
## stopped after 100 iterations
## # weights: 76
## initial value 2247.428320
## iter 10 value 1109.062326
## iter 20 value 1024.530303
## iter 30 value 1008.706522
## iter 40 value 1001.652214
## iter 50 value 997.489904
## iter 60 value 994.345976
## iter 70 value 987.213013
## iter 80 value 982.935617
## iter 90 value 979.528005
## iter 100 value 975.619087
## final value 975.619087
## stopped after 100 iterations
## # weights: 76
## initial value 2009.159643
## iter 10 value 1055.951605
## iter 20 value 993.494704
## iter 30 value 975.674631
## iter 40 value 968.619805
## iter 50 value 961.442946
## iter 60 value 953.923491
## iter 70 value 948.046717
## iter 80 value 942.682709
## iter 90 value 937.448625
## iter 100 value 934.232240
## final value 934.232240
## stopped after 100 iterations
## # weights: 76
## initial value 1878.165656
## iter 10 value 1137.064076
## iter 20 value 1039.437661
## iter 30 value 1010.139483
## iter 40 value 995.726641
## iter 50 value 990.538951
## iter 60 value 984.638591
## iter 70 value 976.901633
## iter 80 value 967.802753
## iter 90 value 960.847235
## iter 100 value 959.270705
## final value 959.270705
## stopped after 100 iterations
## # weights: 76
## initial value 2190.778631
## iter 10 value 1085.287714
## iter 20 value 1030.905049
## iter 30 value 1008.130315
## iter 40 value 995.455584
## iter 50 value 983.644887
## iter 60 value 977.223393
## iter 70 value 971.303407
## iter 80 value 966.256476
## iter 90 value 961.810467
## iter 100 value 959.207177
## final value 959.207177
## stopped after 100 iterations
## # weights: 76
## initial value 2695.956316
## iter 10 value 1132.683010
## iter 20 value 1024.325309
## iter 30 value 1005.509893
## iter 40 value 998.416374
## iter 50 value 993.345031
## iter 60 value 977.806784
## iter 70 value 968.272151
## iter 80 value 964.646917
## iter 90 value 962.321053
## iter 100 value 959.931351
## final value 959.931351
## stopped after 100 iterations
## # weights: 76
## initial value 2481.754818
## iter 10 value 1209.403432
## iter 20 value 1133.078310
## iter 30 value 1099.245448
## iter 40 value 1087.904054
## iter 50 value 1081.293677
## iter 60 value 1078.176423
## iter 70 value 1074.961285
## iter 80 value 1070.202139
## iter 90 value 1068.308581
## iter 100 value 1066.219519
## final value 1066.219519
## stopped after 100 iterations
NNPredictions1 <-predict(NNModel1, testData)
# See predictions
NNPredictions1
## [1] 5 5 6 5 6 5 5 5 5 5 5 5 5 5 5 6 5 5 5 5 5 5 6 5 5 5 6 6 5 5 5 7 5 5 5
## [36] 6 6 5 5 5 5 5 5 5 5 5 5 5 5 6 6 5 5 5 6 3 5 5 5 5 5 5 7 6 6 6 6 5 7 6
## [71] 5 5 6 5 5 5 5 5 6 7 7 6 6 6 5 5 5 5 7 7 6 6 5 6 5 5 6 6 5 5 5 6 7 6 6
## [106] 6 6 7 5 6 5 6 6 6 5 5 5 6 6 5 5 6 6 7 6 7 7 5 7 5 5 6 6 5 6 5 6 5 6 6
## [141] 5 6 5 5 5 5 5 5 5 7 5 6 5 6 5 5 5 5 5 5 6 7 6 7 6 5 5 6 6 6 5 5 5 6 6
## [176] 3 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 7 7 7 5 6 5 5 5 5 5 5 7
## [211] 6 6 6 6 6 6 6 6 5 6 5 5 7 5 6 5 6 5 6 7 6 5 5 7 7 5 6 6 5 5 6 6 6 6 7
## [246] 7 6 7 5 5 6 6 6 3 6 6 7 5 6 7 5 7 5 5 6 7 5 7 6 7 5 6 7 6 6 7 6 6 5 6
## [281] 6 5 6 7 7 5 5 6 6 7 5 5 6 5 6 6 5 6 5 6 5 5 6 6 5 6 5 6 5 6 5 6 6 3 6
## [316] 6 5 5 7 7 6 6 5 5 5 6 6 6 5 5 6 5 6 6 5 5 6 5 6 5 5 5 5 6 5 6 5 5 7 6
## [351] 6 6 6 7 6 6 7 5 7 6 6 6 6 6 7 6 6 5 6 6 6 6 6 6 6 6 6 5 6 6 5 6 6 5 6
## [386] 6 6 5 5 5 5 6 6 7 6 6 6
## Levels: 3 4 5 6 7 8
# Create confusion matrix
cmNN1 <-confusionMatrix(NNPredictions1, testData$quality)
cmNN1$overall
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 6.498741e-01 4.373904e-01 6.007098e-01 6.967846e-01 4.282116e-01
## AccuracyPValue McnemarPValue
## 5.132145e-19 NaN
cmNN1$byClass
## Sensitivity Specificity Pos Pred Value Neg Pred Value Precision
## Class: 3 0.5000000 0.9924051 0.2500000 0.9974555 0.2500000
## Class: 4 0.0000000 1.0000000 NaN 0.9672544 NA
## Class: 5 0.7764706 0.7444934 0.6947368 0.8164251 0.6947368
## Class: 6 0.6163522 0.7521008 0.6242038 0.7458333 0.6242038
## Class: 7 0.5510204 0.9454023 0.5869565 0.9373219 0.5869565
## Class: 8 0.0000000 1.0000000 NaN 0.9899244 NA
## Recall F1 Prevalence Detection Rate
## Class: 3 0.5000000 0.3333333 0.005037783 0.002518892
## Class: 4 0.0000000 NA 0.032745592 0.000000000
## Class: 5 0.7764706 0.7333333 0.428211587 0.332493703
## Class: 6 0.6163522 0.6202532 0.400503778 0.246851385
## Class: 7 0.5510204 0.5684211 0.123425693 0.068010076
## Class: 8 0.0000000 NA 0.010075567 0.000000000
## Detection Prevalence Balanced Accuracy
## Class: 3 0.01007557 0.7462025
## Class: 4 0.00000000 0.5000000
## Class: 5 0.47858942 0.7604820
## Class: 6 0.39546599 0.6842265
## Class: 7 0.11586902 0.7482114
## Class: 8 0.00000000 0.5000000
#PCA with SVM
TrainingDataIndex3 <- createDataPartition(Rwine1$quality, p=0.70, list = FALSE)
SVModel1 <- train(quality ~ ., data = trainingData,
method = "svmPoly",
trControl= NoTrainingParameters,
preProcess = c("pca"),
tuneGrid = data.frame(degree = 1,
scale = 1,
C = 1
))
SVMPredictions1 <-predict(SVModel1, testData)
# See predictions
SVMPredictions1
## [1] 5 5 6 5 6 5 5 5 5 5 5 5 5 5 5 6 5 5 6 6 5 5 5 5 6 5 6 6 5 5 5 6 6 5 5
## [36] 6 6 5 5 5 5 6 5 5 5 5 5 5 5 6 6 6 5 5 6 6 5 5 5 5 5 5 6 6 6 6 6 6 6 6
## [71] 5 5 6 6 5 5 5 5 6 6 6 6 6 6 5 5 5 5 6 6 6 5 5 6 5 5 6 5 5 6 5 6 6 6 6
## [106] 6 6 6 6 6 5 6 6 6 5 5 5 6 6 5 5 6 6 6 6 6 6 5 6 5 5 6 6 5 6 6 6 5 5 6
## [141] 5 5 5 5 5 5 5 5 5 6 5 6 6 6 5 5 5 5 5 5 6 6 5 6 5 5 5 5 6 5 5 5 5 5 6
## [176] 5 6 5 5 6 5 5 5 5 5 5 5 5 5 5 5 6 5 5 5 5 6 6 6 6 6 6 6 6 5 5 5 5 5 6
## [211] 5 5 6 6 6 6 6 6 5 6 5 5 6 6 6 6 5 6 5 6 6 6 5 6 6 5 6 6 5 5 5 6 6 6 6
## [246] 6 6 6 6 6 6 5 6 5 6 6 6 5 6 6 6 6 5 6 6 6 5 6 6 6 5 6 6 5 6 6 6 6 5 6
## [281] 6 5 6 6 6 5 5 6 6 6 5 5 6 5 5 6 5 5 5 5 5 6 6 6 5 6 5 5 5 6 5 5 5 5 6
## [316] 6 5 6 6 6 6 6 5 5 5 5 5 6 5 5 6 5 5 6 5 5 5 5 6 5 5 5 5 5 5 6 5 5 6 6
## [351] 6 6 6 6 6 5 6 5 6 6 5 6 6 5 6 6 5 5 6 6 5 6 6 5 6 6 6 5 6 6 5 6 5 5 5
## [386] 6 6 5 5 5 6 6 6 6 6 6 6
## Levels: 3 4 5 6 7 8
# Create confusion matrix
cmSVM1 <-confusionMatrix(SVMPredictions1, testData$quality)
cmSVM1$overall
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 5.919395e-01 3.031012e-01 5.417978e-01 6.407002e-01 4.282116e-01
## AccuracyPValue McnemarPValue
## 4.052257e-11 NaN
cmSVM1$byClass
## Sensitivity Specificity Pos Pred Value Neg Pred Value Precision
## Class: 3 0.0000000 1.0000000 NaN 0.9949622 NA
## Class: 4 0.0000000 1.0000000 NaN 0.9672544 NA
## Class: 5 0.7705882 0.6960352 0.6550000 0.8020305 0.6550000
## Class: 6 0.6540881 0.6092437 0.5279188 0.7250000 0.5279188
## Class: 7 0.0000000 1.0000000 NaN 0.8765743 NA
## Class: 8 0.0000000 1.0000000 NaN 0.9899244 NA
## Recall F1 Prevalence Detection Rate
## Class: 3 0.0000000 NA 0.005037783 0.0000000
## Class: 4 0.0000000 NA 0.032745592 0.0000000
## Class: 5 0.7705882 0.7081081 0.428211587 0.3299748
## Class: 6 0.6540881 0.5842697 0.400503778 0.2619647
## Class: 7 0.0000000 NA 0.123425693 0.0000000
## Class: 8 0.0000000 NA 0.010075567 0.0000000
## Detection Prevalence Balanced Accuracy
## Class: 3 0.0000000 0.5000000
## Class: 4 0.0000000 0.5000000
## Class: 5 0.5037783 0.7333117
## Class: 6 0.4962217 0.6316659
## Class: 7 0.0000000 0.5000000
## Class: 8 0.0000000 0.5000000
#ada
library(rpart)
library(adabag)
## Loading required package: mlbench
Rwine1.boostcv <- boosting.cv(quality ~ ., v=10, data=trainingData, mfinal=10,
control=rpart.control(cp=0.01))
## i: 1 Fri Mar 17 10:52:07 2017
## i: 2 Fri Mar 17 10:52:10 2017
## i: 3 Fri Mar 17 10:52:13 2017
## i: 4 Fri Mar 17 10:52:15 2017
## i: 5 Fri Mar 17 10:52:18 2017
## i: 6 Fri Mar 17 10:52:21 2017
## i: 7 Fri Mar 17 10:52:24 2017
## i: 8 Fri Mar 17 10:52:26 2017
## i: 9 Fri Mar 17 10:52:29 2017
## i: 10 Fri Mar 17 10:52:32 2017
Rwine1.boostcv
## $class
## [1] "5" "5" "6" "5" "5" "5" "5" "5" "5" "5" "5" "5" "5" "5" "5" "5" "5"
## [18] "5" "5" "5" "5" "5" "5" "5" "5" "5" "6" "6" "5" "5" "6" "5" "5" "5"
## [35] "6" "5" "5" "6" "6" "6" "5" "5" "5" "6" "5" "5" "5" "5" "5" "5" "6"
## [52] "6" "5" "6" "5" "5" "5" "6" "6" "5" "5" "5" "5" "5" "5" "5" "6" "6"
## [69] "5" "5" "5" "5" "5" "5" "5" "6" "5" "5" "6" "6" "5" "5" "5" "5" "6"
## [86] "5" "5" "5" "6" "5" "6" "6" "5" "6" "5" "5" "6" "5" "5" "5" "5" "5"
## [103] "5" "5" "6" "5" "5" "5" "5" "5" "5" "7" "5" "5" "5" "5" "5" "6" "5"
## [120] "6" "6" "5" "5" "5" "5" "5" "5" "5" "5" "6" "6" "5" "5" "5" "5" "5"
## [137] "5" "5" "5" "5" "5" "5" "5" "5" "5" "5" "5" "5" "5" "6" "6" "6" "5"
## [154] "6" "6" "5" "5" "5" "6" "7" "5" "5" "6" "7" "5" "5" "5" "5" "5" "5"
## [171] "5" "5" "5" "5" "6" "5" "5" "5" "6" "6" "5" "6" "5" "5" "5" "5" "5"
## [188] "6" "5" "6" "5" "5" "5" "6" "5" "5" "5" "6" "5" "6" "5" "6" "5" "6"
## [205] "6" "6" "6" "5" "5" "5" "6" "5" "5" "6" "6" "6" "5" "6" "6" "6" "5"
## [222] "5" "5" "5" "6" "6" "5" "6" "5" "5" "5" "5" "5" "5" "5" "5" "6" "5"
## [239] "5" "6" "6" "6" "5" "5" "5" "5" "6" "5" "7" "6" "5" "7" "5" "6" "7"
## [256] "7" "5" "6" "6" "6" "6" "5" "6" "5" "6" "5" "5" "5" "7" "7" "6" "6"
## [273] "7" "5" "6" "5" "6" "5" "7" "5" "6" "5" "7" "5" "6" "6" "7" "7" "6"
## [290] "6" "6" "6" "6" "6" "5" "5" "6" "6" "5" "5" "5" "6" "5" "6" "6" "6"
## [307] "6" "6" "5" "6" "6" "6" "5" "5" "7" "5" "6" "6" "5" "7" "5" "5" "6"
## [324] "6" "5" "6" "6" "5" "6" "5" "5" "5" "6" "5" "7" "6" "5" "5" "5" "6"
## [341] "6" "6" "5" "5" "7" "5" "6" "5" "6" "6" "6" "6" "7" "6" "6" "6" "6"
## [358] "5" "6" "7" "5" "5" "6" "7" "6" "6" "5" "6" "7" "6" "6" "6" "6" "7"
## [375] "6" "6" "7" "7" "6" "7" "5" "5" "6" "5" "5" "6" "6" "5" "7" "6" "6"
## [392] "6" "6" "5" "5" "6" "6" "6" "5" "5" "5" "6" "6" "6" "5" "6" "6" "5"
## [409] "5" "6" "6" "5" "5" "7" "5" "5" "6" "6" "6" "6" "5" "5" "6" "6" "5"
## [426] "5" "6" "6" "5" "6" "6" "6" "6" "5" "6" "6" "5" "5" "5" "6" "6" "6"
## [443] "7" "7" "6" "6" "5" "5" "5" "5" "6" "5" "5" "5" "5" "5" "6" "5" "5"
## [460] "6" "5" "5" "5" "5" "6" "6" "5" "7" "5" "5" "5" "5" "5" "5" "6" "5"
## [477] "5" "5" "5" "5" "6" "5" "5" "5" "5" "5" "5" "6" "6" "5" "6" "6" "5"
## [494] "5" "5" "6" "5" "6" "5" "6" "5" "5" "6" "6" "6" "5" "5" "5" "5" "5"
## [511] "5" "6" "5" "6" "5" "5" "6" "5" "5" "5" "5" "5" "6" "5" "5" "5" "5"
## [528] "5" "6" "5" "5" "5" "6" "5" "5" "5" "5" "5" "6" "5" "5" "5" "5" "6"
## [545] "5" "6" "5" "6" "6" "6" "5" "6" "5" "5" "5" "5" "6" "5" "5" "6" "6"
## [562] "5" "5" "6" "6" "5" "5" "5" "5" "5" "5" "5" "5" "5" "5" "5" "5" "5"
## [579] "5" "5" "5" "5" "5" "5" "6" "5" "6" "5" "5" "5" "5" "5" "6" "5" "5"
## [596] "6" "5" "7" "5" "5" "6" "5" "5" "5" "5" "5" "7" "6" "5" "6" "6" "6"
## [613] "6" "7" "5" "7" "5" "5" "6" "6" "5" "6" "6" "6" "6" "5" "5" "6" "6"
## [630] "6" "5" "7" "5" "6" "5" "5" "5" "5" "5" "5" "6" "6" "6" "6" "6" "5"
## [647] "6" "5" "5" "5" "5" "6" "6" "6" "6" "6" "5" "6" "7" "6" "5" "5" "7"
## [664] "5" "5" "6" "6" "7" "6" "5" "6" "5" "5" "5" "7" "6" "4" "7" "6" "6"
## [681] "6" "5" "6" "6" "6" "6" "5" "6" "7" "6" "6" "6" "5" "6" "6" "5" "6"
## [698] "7" "6" "6" "6" "6" "5" "6" "7" "5" "5" "6" "6" "6" "6" "7" "6" "6"
## [715] "5" "7" "6" "7" "6" "6" "7" "7" "6" "6" "6" "6" "6" "6" "6" "6" "6"
## [732] "6" "6" "5" "5" "6" "6" "6" "6" "6" "5" "5" "6" "6" "6" "5" "6" "6"
## [749] "5" "5" "6" "5" "5" "5" "5" "6" "6" "5" "7" "6" "6" "6" "7" "6" "5"
## [766] "5" "5" "6" "6" "6" "6" "6" "6" "6" "5" "6" "6" "6" "5" "6" "6" "5"
## [783] "5" "6" "6" "5" "7" "5" "6" "6" "6" "6" "6" "6" "6" "5" "6" "7" "5"
## [800] "5" "7" "6" "6" "7" "6" "6" "6" "7" "6" "6" "6" "5" "5" "6" "5" "6"
## [817] "7" "7" "6" "6" "7" "6" "5" "6" "6" "5" "6" "6" "6" "5" "6" "5" "7"
## [834] "7" "6" "5" "6" "7" "5" "6" "6" "5" "6" "6" "6" "6" "6" "6" "6" "6"
## [851] "6" "6" "6" "6" "6" "6" "5" "7" "5" "6" "5" "5" "6" "6" "6" "6" "6"
## [868] "6" "7" "6" "5" "6" "6" "5" "6" "6" "6" "6" "5" "7" "6" "6" "6" "7"
## [885] "5" "5" "6" "6" "6" "6" "6" "6" "6" "5" "6" "6" "6" "6" "6" "5" "6"
## [902] "5" "7" "5" "5" "5" "7" "5" "5" "6" "6" "5" "6" "6" "5" "6" "6" "6"
## [919] "6" "5" "6" "6" "6" "6" "6" "7" "7" "6" "5" "5" "7" "7" "6" "5" "6"
## [936] "7" "5" "6" "5" "6" "5" "6" "5" "6" "5" "5" "6" "5" "5" "6" "6" "5"
## [953] "6" "6" "5" "6" "5" "6" "6" "6" "5" "6" "7" "6" "6" "7" "5" "5" "6"
## [970] "6" "6" "6" "6" "6" "6" "6" "6" "5" "6" "6" "5" "6" "5" "5" "6" "6"
## [987] "7" "6" "5" "6" "5" "5" "5" "6" "5" "6" "6" "5" "6" "5" "5" "5" "6"
## [1004] "6" "6" "6" "5" "5" "5" "5" "5" "5" "6" "5" "5" "5" "5" "5" "5" "5"
## [1021] "6" "5" "5" "6" "5" "5" "5" "5" "6" "5" "5" "5" "7" "5" "6" "6" "6"
## [1038] "5" "5" "5" "5" "5" "5" "5" "5" "5" "6" "5" "5" "5" "5" "5" "5" "5"
## [1055] "7" "6" "5" "7" "7" "6" "5" "5" "7" "5" "5" "7" "5" "5" "5" "5" "6"
## [1072] "6" "6" "7" "6" "6" "6" "5" "5" "6" "5" "6" "5" "6" "6" "5" "5" "5"
## [1089] "5" "6" "6" "6" "6" "5" "6" "5" "5" "7" "5" "5" "5" "5" "5" "5" "6"
## [1106] "6" "5" "5" "5" "6" "6" "7" "6" "5" "6" "5" "6" "6" "5" "5" "6" "5"
## [1123] "6" "6" "6" "5" "5" "6" "6" "5" "5" "5" "5" "5" "5" "6" "6" "6" "5"
## [1140] "5" "5" "7" "6" "5" "6" "6" "6" "5" "5" "5" "6" "5" "6" "5" "6" "6"
## [1157] "6" "6" "6" "6" "6" "6" "6" "6" "5" "5" "5" "6" "6" "5" "6" "5" "5"
## [1174] "5" "5" "5" "6" "6" "5" "5" "6" "7" "6" "6" "6" "6" "6" "6" "6" "6"
## [1191] "5" "7" "7" "6" "7" "5" "6" "6" "5" "6" "6" "5"
##
## $confusion
## Observed Class
## Predicted Class 3 4 5 6 7 8
## 4 1 0 0 0 0 0
## 5 6 24 377 170 15 0
## 6 1 14 129 275 90 10
## 7 0 2 5 34 45 4
##
## $error
## [1] 0.4201331
#clustering
library(cluster)
library(ggplot2)
library(dendextend)
##
## ---------------------
## Welcome to dendextend version 1.4.0
## Type citation('dendextend') for how to cite the package.
##
## Type browseVignettes(package = 'dendextend') for the package vignette.
## The github page is: https://github.com/talgalili/dendextend/
##
## Suggestions and bug-reports can be submitted at: https://github.com/talgalili/dendextend/issues
## Or contact: <tal.galili@gmail.com>
##
## To suppress this message use: suppressPackageStartupMessages(library(dendextend))
## ---------------------
##
## Attaching package: 'dendextend'
## The following object is masked from 'package:rpart':
##
## prune
## The following object is masked from 'package:stats':
##
## cutree
library(Rcpp)
library(dplyr)
cluster <- read.csv( "winered.csv", header = TRUE , sep = ";" )
RwineDataSubset <- cluster[rowSums(is.na(cluster))<25,]
summary(RwineDataSubset)
## fixed.acidity volatile.acidity citric.acid residual.sugar
## Min. : 4.60 Min. :0.1200 Min. :0.000 Min. : 0.900
## 1st Qu.: 7.10 1st Qu.:0.3900 1st Qu.:0.090 1st Qu.: 1.900
## Median : 7.90 Median :0.5200 Median :0.260 Median : 2.200
## Mean : 8.32 Mean :0.5278 Mean :0.271 Mean : 2.539
## 3rd Qu.: 9.20 3rd Qu.:0.6400 3rd Qu.:0.420 3rd Qu.: 2.600
## Max. :15.90 Max. :1.5800 Max. :1.000 Max. :15.500
## chlorides free.sulfur.dioxide total.sulfur.dioxide
## Min. :0.01200 Min. : 1.00 Min. : 6.00
## 1st Qu.:0.07000 1st Qu.: 7.00 1st Qu.: 22.00
## Median :0.07900 Median :14.00 Median : 38.00
## Mean :0.08747 Mean :15.87 Mean : 46.47
## 3rd Qu.:0.09000 3rd Qu.:21.00 3rd Qu.: 62.00
## Max. :0.61100 Max. :72.00 Max. :289.00
## density pH sulphates alcohol
## Min. :0.9901 Min. :2.740 Min. :0.3300 Min. : 8.40
## 1st Qu.:0.9956 1st Qu.:3.210 1st Qu.:0.5500 1st Qu.: 9.50
## Median :0.9968 Median :3.310 Median :0.6200 Median :10.20
## Mean :0.9967 Mean :3.311 Mean :0.6581 Mean :10.42
## 3rd Qu.:0.9978 3rd Qu.:3.400 3rd Qu.:0.7300 3rd Qu.:11.10
## Max. :1.0037 Max. :4.010 Max. :2.0000 Max. :14.90
## quality
## Min. :3.000
## 1st Qu.:5.000
## Median :6.000
## Mean :5.636
## 3rd Qu.:6.000
## Max. :8.000
str(RwineDataSubset)
## 'data.frame': 1599 obs. of 12 variables:
## $ fixed.acidity : num 7.4 7.8 7.8 11.2 7.4 7.4 7.9 7.3 7.8 7.5 ...
## $ volatile.acidity : num 0.7 0.88 0.76 0.28 0.7 0.66 0.6 0.65 0.58 0.5 ...
## $ citric.acid : num 0 0 0.04 0.56 0 0 0.06 0 0.02 0.36 ...
## $ residual.sugar : num 1.9 2.6 2.3 1.9 1.9 1.8 1.6 1.2 2 6.1 ...
## $ chlorides : num 0.076 0.098 0.092 0.075 0.076 0.075 0.069 0.065 0.073 0.071 ...
## $ free.sulfur.dioxide : num 11 25 15 17 11 13 15 15 9 17 ...
## $ total.sulfur.dioxide: num 34 67 54 60 34 40 59 21 18 102 ...
## $ density : num 0.998 0.997 0.997 0.998 0.998 ...
## $ pH : num 3.51 3.2 3.26 3.16 3.51 3.51 3.3 3.39 3.36 3.35 ...
## $ sulphates : num 0.56 0.68 0.65 0.58 0.56 0.56 0.46 0.47 0.57 0.8 ...
## $ alcohol : num 9.4 9.8 9.8 9.8 9.4 9.4 9.4 10 9.5 10.5 ...
## $ quality : int 5 5 5 6 5 5 5 7 7 5 ...
RwineDataSubset[is.na(RwineDataSubset)] <- 0
ScaledProdData <- scale(RwineDataSubset)
ScaledProdData[is.na(ScaledProdData)] <- 0
## Loading required package: plotly
##
## Attaching package: 'plotly'
## The following object is masked from 'package:MASS':
##
## select
## The following objects are masked from 'package:plyr':
##
## arrange, mutate, rename, summarise
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
## Loading required package: viridis
##
## ---------------------
## Welcome to heatmaply version 0.7.0
## Type ?heatmaply for the main documentation.
## The github page is: https://github.com/talgalili/heatmaply/
##
## Suggestions and bug-reports can be submitted at: https://github.com/talgalili/heatmaply/issues
## Or contact: <tal.galili@gmail.com>
##
## To suppress this message use: suppressPackageStartupMessages(library(heatmaply))
## ---------------------
##
## FALSE
## 19188
## $All.index
## 3 4 5 6 7 8 9 10 11 12
## 1.4583 1.5417 2.6785 1.7279 0.7501 1.3689 1.6231 3.0428 2.5016 0.8092
## 13 14 15 16 17 18 19 20 21 22
## 2.2554 1.6922 2.4279 2.1627 2.3223 1.7691 1.4733 1.3256 2.3381 1.5758
## 23 24 25 26 27 28 29 30 31 32
## 1.3349 1.7058 1.3951 2.4590 1.7770 1.7954 3.1312 1.7851 2.2489 1.5495
## 33 34 35 36 37 38 39 40
## 2.3108 3.1694 1.9085 4.0536 2.5618 2.7331 2.8524 1.8956
##
## $All.CriticalValues
## 3 4 5 6 7 8 9 10 11 12
## 0.9001 0.8935 0.8628 0.8906 0.8905 0.8706 0.8647 0.8433 0.8439 0.8456
## 13 14 15 16 17 18 19 20 21 22
## 0.8168 0.8384 0.8059 0.8359 0.8022 0.8068 0.7854 0.7867 0.7993 0.7983
## 23 24 25 26 27 28 29 30 31 32
## 0.7993 0.7951 0.7983 0.7367 0.7813 0.7475 0.7085 0.6894 0.6995 0.7085
## 33 34 35 36 37 38 39 40
## 0.6575 0.6649 0.6894 0.6575 0.7367 0.6717 0.6410 0.6316
##
## $Best.nc
## Number_clusters Value_Index
## 3.0000 1.4583
##
## $Best.partition
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
## 1 2 1 3 1 1 1 1 1 2 1 2 1 2 2
## 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
## 2 2 2 1 2 2 2 2 2 1 1 1 2 1 1
## 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
## 1 1 2 2 1 1 1 3 1 2 2 2 3 1 1
## 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
## 1 2 3 1 2 1 1 1 2 2 1 3 2 1 1
## 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
## 2 2 1 1 1 1 1 1 2 1 1 2 2 1 2
## 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
## 3 3 1 1 2 1 2 2 2 1 1 2 1 2 1
## 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
## 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1
## 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
## 1 2 1 2 2 2 2 2 3 2 3 1 1 1 1
## 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
## 1 1 1 1 2 2 1 1 1 1 2 1 1 1 1
## 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
## 2 1 1 2 2 2 1 1 1 1 2 1 2 1 3
## 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
## 3 2 2 2 2 2 2 2 1 1 1 1 1 2 2
## 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
## 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1
## 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
## 1 2 1 1 1 2 2 1 2 2 2 1 2 1 1
## 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
## 2 1 3 1 1 3 2 1 1 1 3 3 2 2 3
## 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225
## 3 1 3 2 1 2 1 1 1 2 2 2 1 1 2
## 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
## 2 2 1 2 1 1 1 2 1 1 1 1 1 1 1
## 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
## 2 3 2 3 3 1 1 1 1 1 3 1 3 2 1
## 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270
## 2 3 1 2 3 1 1 1 2 3 3 2 3 1 3
## 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285
## 1 3 3 1 2 1 1 3 3 3 3 3 1 3 2
## 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300
## 2 3 2 1 2 1 3 3 1 3 3 2 1 1 1
## 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315
## 1 3 1 1 2 3 1 3 3 1 3 2 2 2 2
## 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330
## 1 2 2 3 2 3 2 1 2 2 2 3 3 3 3
## 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345
## 3 3 2 1 1 3 3 2 3 3 3 3 3 3 3
## 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
## 1 1 3 3 1 3 1 1 3 2 1 3 3 3 3
## 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375
## 2 2 3 3 3 3 3 3 2 3 1 3 3 2 3
## 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390
## 3 3 3 3 2 3 3 3 3 2 1 2 1 2 3
## 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405
## 1 3 3 2 3 3 2 3 3 1 2 1 3 3 1
## 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420
## 3 3 3 3 2 2 2 2 3 2 2 3 2 3 1
## 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435
## 2 1 1 3 1 1 1 1 1 3 3 2 3 3 3
## 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450
## 3 2 3 3 1 3 3 3 3 1 1 3 3 1 3
## 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465
## 3 3 1 3 1 3 1 2 3 2 3 1 3 2 3
## 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480
## 3 3 3 3 1 3 3 3 3 3 3 3 3 3 1
## 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495
## 3 3 3 3 3 3 3 3 3 3 2 3 3 2 2
## 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510
## 3 1 2 3 2 1 3 3 3 3 3 3 3 2 3
## 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525
## 3 2 3 3 3 2 3 2 3 2 3 2 2 2 2
## 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540
## 2 2 2 2 3 3 3 3 3 3 3 3 1 3 3
## 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555
## 2 3 1 3 3 2 1 3 3 3 1 3 3 1 3
## 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570
## 3 3 3 3 3 3 2 2 2 3 3 1 1 3 1
## 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585
## 3 1 3 2 3 3 1 2 2 3 3 3 3 3 2
## 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600
## 1 3 2 1 3 2 2 2 3 1 2 3 3 1 3
## 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615
## 1 3 1 3 2 1 3 2 2 1 2 3 1 3 2
## 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630
## 2 2 3 3 3 2 2 3 1 2 2 1 1 1 2
## 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645
## 1 3 1 2 2 1 2 2 1 3 2 2 2 2 2
## 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660
## 1 1 1 3 2 3 2 3 3 3 2 3 3 1 1
## 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675
## 1 2 1 3 3 2 3 3 3 3 2 1 2 1 3
## 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690
## 3 3 1 2 3 3 1 2 1 2 1 1 2 1 3
## 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705
## 1 2 2 2 2 1 1 1 2 3 2 1 1 2 1
## 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720
## 1 1 1 1 3 2 2 1 1 2 1 1 1 1 1
## 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735
## 1 2 1 2 1 1 1 1 1 1 2 1 1 2 1
## 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750
## 1 1 1 2 1 1 2 1 2 2 1 2 2 1 1
## 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765
## 1 1 2 1 2 1 1 1 1 2 2 1 1 1 1
## 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780
## 1 2 2 1 1 1 2 2 3 3 1 1 1 1 1
## 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795
## 1 1 2 1 1 3 3 2 2 2 2 2 1 1 3
## 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810
## 2 2 3 3 3 2 1 1 1 1 3 3 3 1 3
## 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825
## 1 3 3 1 3 3 3 3 1 2 1 1 1 1 1
## 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840
## 1 3 1 1 1 1 1 2 2 1 1 1 1 3 1
## 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855
## 3 1 2 2 3 1 1 1 1 1 3 3 2 2 2
## 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870
## 1 2 3 3 1 1 1 1 1 1 1 1 1 1 1
## 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885
## 1 1 1 3 3 3 1 1 2 1 1 1 3 1 2
## 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900
## 1 1 3 1 2 1 1 3 1 1 1 3 1 3 1
## 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915
## 3 1 1 1 1 2 1 1 1 1 3 3 3 3 1
## 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930
## 3 1 2 2 1 3 2 1 2 3 2 2 2 3 3
## 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945
## 1 1 2 1 1 3 3 3 3 1 3 3 3 3 3
## 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960
## 3 3 3 3 3 3 3 3 3 1 3 3 3 1 1
## 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975
## 3 1 1 3 3 3 3 2 3 1 3 3 3 1 3
## 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990
## 2 2 2 1 3 3 1 2 3 3 1 3 2 1 3
## 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005
## 1 2 1 2 2 1 1 1 1 1 1 3 3 1 2
## 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020
## 1 3 3 3 2 3 3 1 1 1 3 3 2 2 1
## 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035
## 3 3 1 3 1 1 1 1 2 1 1 1 1 1 1
## 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050
## 3 3 1 3 3 1 1 3 3 1 1 1 1 3 3
## 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065
## 1 2 1 3 2 2 3 2 3 3 3 3 3 3 1
## 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080
## 1 1 3 3 2 3 2 2 1 2 2 3 3 3 2
## 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095
## 3 2 2 3 2 2 3 3 3 3 3 3 1 3 1
## 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110
## 3 1 1 3 1 3 1 1 1 1 1 3 3 1 2
## 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125
## 1 1 3 3 1 1 1 1 1 1 3 1 1 3 1
## 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140
## 3 1 1 2 2 1 2 3 1 3 3 3 3 2 2
## 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155
## 2 2 1 1 2 2 1 3 3 3 3 1 1 3 1
## 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170
## 1 2 1 2 3 3 3 3 1 1 2 3 3 1 1
## 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185
## 3 1 3 2 2 1 1 1 1 3 3 3 2 1 2
## 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200
## 1 1 1 2 1 3 1 3 1 1 1 2 1 3 2
## 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215
## 1 3 3 2 3 3 3 2 3 1 1 1 1 3 3
## 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230
## 3 2 2 3 3 3 3 2 3 3 2 2 1 1 2
## 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245
## 3 2 2 3 1 2 1 1 1 1 2 2 3 2 2
## 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260
## 1 1 1 1 1 1 2 1 1 1 1 2 1 1 1
## 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275
## 2 1 2 1 1 1 1 3 1 1 1 1 1 2 1
## 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290
## 2 3 1 2 3 1 1 1 2 1 3 3 1 2 2
## 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305
## 1 1 1 1 1 2 2 1 1 1 1 1 3 2 2
## 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320
## 2 2 1 2 1 2 1 1 1 1 2 1 3 2 2
## 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335
## 2 1 3 3 1 1 1 1 1 2 2 2 1 1 1
## 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350
## 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1
## 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365
## 2 1 1 1 1 1 1 1 2 3 3 1 3 1 1
## 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380
## 1 1 2 1 1 2 3 2 2 1 2 1 1 1 1
## 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395
## 1 1 2 2 2 2 1 1 1 2 1 1 1 1 2
## 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410
## 1 1 2 1 1 2 2 3 3 3 3 3 1 3 1
## 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425
## 1 1 3 2 3 1 3 3 1 2 1 2 1 1 3
## 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440
## 3 3 1 1 2 1 1 1 1 2 2 2 1 1 1
## 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455
## 3 2 1 1 1 2 1 1 2 3 3 3 1 2 3
## 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470
## 1 1 2 3 3 1 1 1 1 1 1 2 1 2 1
## 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485
## 1 1 3 1 2 1 2 1 1 3 1 3 1 3 1
## 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500
## 1 1 1 1 1 3 1 1 2 1 1 2 1 1 1
## 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515
## 1 2 1 1 3 1 1 3 3 3 1 1 1 1 1
## 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530
## 1 2 1 1 1 1 1 2 1 1 1 1 1 3 1
## 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545
## 1 1 1 2 1 1 1 1 1 2 1 3 1 3 3
## 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560
## 1 1 1 3 3 1 1 1 1 1 1 1 1 2 2
## 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575
## 2 2 1 1 1 1 3 1 1 1 3 1 2 1 2
## 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590
## 1 3 1 1 1 1 1 1 2 3 3 2 1 2 2
## 1591 1592 1593 1594 1595 1596 1597 1598 1599
## 1 1 1 1 1 1 1 1 1
## Loading required package: class