Sonar dataset
data(Sonar, package = "mlbench")
Sonar$Class <- 1*(Sonar$Class == "M")
cvlist <- list()
modelsnames <- c("BSWiMS.model","filteredFit","NAIVE_BAYES","LASSO_1SE","LASSO_MIN","GLMNET_RIDGE_MIN","GLMNET_ELASTICNET_MIN")
BSWIMScv <- randomCV(Sonar,
"Class",
BSWiMS.model,
trainFraction = 0.7,
repetitions = 20)
## .[++++++-+-].[+++--+-+-].[++++++++-].[+++++-].[++++-+-].[+++++--].[++++++-].[++++++++++-]..[+++++++++--].[+++-]10 Tested: 198 Min Tests: 1 Max Tests: 8 Mean Tests: 3.232323 . MAD: 0.370997
## .[+++++++-].[++++-].[++++++--].[++++-+-].[+++++++-].[++++++-+++-].[++++--].[++++++--].[+++++-+-].[++-++--]20 Tested: 206 Min Tests: 2 Max Tests: 13 Mean Tests: 6.213592 . MAD: 0.3727587
cvlist[[modelsnames[1]]] <- BSWIMScv
filteredFitcv <- randomCV(Sonar,
"Class",
filteredFit,
trainSampleSets = BSWIMScv$trainSamplesSets,
fitmethod=glm,
filtermethod=univariate_BinEnsemble,
filtermethod.control = list(pvalue=0.05),
family = "binomial")
## ..........10 Tested: 198 Min Tests: 1 Max Tests: 8 Mean Tests: 3.232323 . MAD: 0.2579247
## ..........20 Tested: 206 Min Tests: 2 Max Tests: 13 Mean Tests: 6.213592 . MAD: 0.2518095
cvlist[[modelsnames[2]]] <- filteredFitcv
NAIVE_BAYEScv <- randomCV(Sonar,
"Class",
NAIVE_BAYES,
trainSampleSets = BSWIMScv$trainSamplesSets)
## ..........10 Tested: 198 Min Tests: 1 Max Tests: 8 Mean Tests: 3.232323 . MAD: 0.2931819
## ..........20 Tested: 206 Min Tests: 2 Max Tests: 13 Mean Tests: 6.213592 . MAD: 0.2996297
cvlist[[modelsnames[3]]] <- NAIVE_BAYEScv
LASSO_1SEcv <- randomCV(Sonar,
"Class",
LASSO_1SE,
trainSampleSets = BSWIMScv$trainSamplesSets)
## ..........10 Tested: 198 Min Tests: 1 Max Tests: 8 Mean Tests: 3.232323 . MAD: 0.4358892
## ..........20 Tested: 206 Min Tests: 2 Max Tests: 13 Mean Tests: 6.213592 . MAD: 0.4267017
cvlist[[modelsnames[4]]] <- LASSO_1SEcv
LASSO_MINcv <- randomCV(Sonar,
"Class",
LASSO_MIN,
trainSampleSets = BSWIMScv$trainSamplesSets)
## ..........10 Tested: 198 Min Tests: 1 Max Tests: 8 Mean Tests: 3.232323 . MAD: 0.4534764
## ..........20 Tested: 206 Min Tests: 2 Max Tests: 13 Mean Tests: 6.213592 . MAD: 0.4562231
cvlist[[modelsnames[5]]] <- LASSO_MINcv
GLMNET_RIDGE_MINcv <- randomCV(Sonar,
"Class",
GLMNET_RIDGE_MIN,
trainSampleSets = BSWIMScv$trainSamplesSets)
## ..........10 Tested: 198 Min Tests: 1 Max Tests: 8 Mean Tests: 3.232323 . MAD: 0.4513263
## ..........20 Tested: 206 Min Tests: 2 Max Tests: 13 Mean Tests: 6.213592 . MAD: 0.4547085
cvlist[[modelsnames[6]]] <- GLMNET_RIDGE_MINcv
GLMNET_ELASTICNET_MINcv <- randomCV(Sonar,
"Class",
GLMNET_ELASTICNET_MIN,
trainSampleSets = BSWIMScv$trainSamplesSets)
## ..........10 Tested: 198 Min Tests: 1 Max Tests: 8 Mean Tests: 3.232323 . MAD: 0.4518452
## ..........20 Tested: 206 Min Tests: 2 Max Tests: 13 Mean Tests: 6.213592 . MAD: 0.4548971
cvlist[[modelsnames[7]]] <- GLMNET_ELASTICNET_MINcv
beep()
cp <- BinaryBenchmark(referenceCV = cvlist)
## BSWiMS.model

## filteredFit

## NAIVE_BAYES

## LASSO_1SE

## LASSO_MIN

## GLMNET_RIDGE_MIN

## GLMNET_ELASTICNET_MIN

## ..........10 Tested: 198 Min Tests: 1 Max Tests: 8 Mean Tests: 3.232323 . MAD: 0.3268283
## ..........20 Tested: 206 Min Tests: 2 Max Tests: 13 Mean Tests: 6.213592 . MAD: 0.324835
## Random Forest

## ..........10 Tested: 198 Min Tests: 1 Max Tests: 8 Mean Tests: 3.232323 . MAD: 0.3104744
## ..........20 Tested: 206 Min Tests: 2 Max Tests: 13 Mean Tests: 6.213592 . MAD: 0.2934764
## RPART

## ..........10 Tested: 198 Min Tests: 1 Max Tests: 8 Mean Tests: 3.232323 . MAD: 0.346791
## ..........20 Tested: 206 Min Tests: 2 Max Tests: 13 Mean Tests: 6.213592 . MAD: 0.3394423
## LASSO

## ..........10 Tested: 198 Min Tests: 1 Max Tests: 8 Mean Tests: 3.232323 . MAD: 0.3042093
## ..........20 Tested: 206 Min Tests: 2 Max Tests: 13 Mean Tests: 6.213592 . MAD: 0.3051135
## SVM

## ..........10 Tested: 198 Min Tests: 1 Max Tests: 8 Mean Tests: 3.232323 . MAD: 0.2931218
## ..........20 Tested: 206 Min Tests: 2 Max Tests: 13 Mean Tests: 6.213592 . MAD: 0.2922332
## KNN

## Ensemble

sonar_algo_auctable <- get.auctable(cp,is.lc = FALSE)
par(mfrow = c(1,1),
cex = 0.7,
xpd = T, #
pty = 'm', #maximal plotting region
mar = c(3,3,3,10)) # Making space for the legend
cp <- trim.cp(cp)
prBenchmark <- plot(cp)








pander::pander(prBenchmark$metrics,caption = "Classifier Performance",round = 3)
Classifier Performance (continued below)
| BER |
0.231 |
0.239 |
0.26 |
0.268 |
0.485 |
| ACC |
0.767 |
0.762 |
0.743 |
0.718 |
0.553 |
| AUC |
0.837 |
0.84 |
0.81 |
0.829 |
0.846 |
| SEN |
0.757 |
0.784 |
0.775 |
0.55 |
1 |
| SPE |
0.779 |
0.737 |
0.705 |
0.916 |
0.032 |
| CIDX |
0.845 |
0.827 |
0.824 |
0.719 |
0.84 |
| BER |
0.485 |
0.49 |
| ACC |
0.553 |
0.549 |
| AUC |
0.863 |
0.864 |
| SEN |
1 |
1 |
| SPE |
0.032 |
0.021 |
| CIDX |
0.865 |
0.865 |
pander::pander(sonar_algo_auctable,caption = "ROC AUC table",round = 3)
ROC AUC table
| BSWiMS.model |
0.837 |
[0.781,0.892] |
| filteredFit |
0.84 |
[0.787,0.893] |
| NAIVE_BAYES |
0.829 |
[0.774,0.884] |
| LASSO_1SE |
0.81 |
[0.751,0.87] |
| LASSO_MIN |
0.846 |
[0.793,0.899] |
| GLMNET_RIDGE_MIN |
0.864 |
[0.814,0.913] |
| GLMNET_ELASTICNET_MIN |
0.863 |
[0.813,0.913] |
| RF |
0.934 |
[0.904,0.965] |
| RPART |
0.811 |
[0.75,0.871] |
| LASSO |
0.844 |
[0.79,0.898] |
| SVM |
0.875 |
[0.827,0.922] |
| KNN |
0.865 |
[0.816,0.914] |
| ENS |
0.895 |
[0.853,0.937] |