El paquete caret en R es una herramienta muy utilizada para crear modelos de machine learning. Destaca porque unifica y facilita la preparación de datos, el entrenamiento y la validación de modelos en un solo flujo de trabajo.
#install.packages("ggplot2") # Gráficas
library(ggplot2)
#install.packages("lattice") # Crear gráficos
library(lattice)
#install.packages("caret") # Algoritmos de aprendizaje automático
library(caret)
#install.packages("datasets") # Usar bases de datos, en este caso Iris
library(datasets)
#install.packages("DataExplorer") # Análisis Exploratorio
library(DataExplorer)
#file.choose() buscar el archivo
df <- read.csv("C:\\Users\\ramir\\Downloads\\M1_data.csv", stringsAsFactors = TRUE)
# Sin esto tenemos problemas en la particion porque no unifica y detecta errores en el nivel de prueba
df$m1_purchase <- as.factor(df$m1_purchase)
#Eliminamos valore nulos para estar seguros
df <- na.omit(df)
summary(df)
## trust_apple interest_computers age_computer user_pcmac appleproducts_count
## No : 19 Min. :2.000 Min. :0.000 Apple:86 Min. :0.000
## Yes:114 1st Qu.:3.000 1st Qu.:1.000 Hp : 1 1st Qu.:1.000
## Median :4.000 Median :3.000 Other: 1 Median :3.000
## Mean :3.812 Mean :2.827 PC :45 Mean :2.609
## 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:4.000
## Max. :5.000 Max. :9.000 Max. :8.000
##
## familiarity_m1 f_batterylife f_price f_size f_multitasking
## No :75 Min. :1.000 Min. :1.000 Min. :1.000 Min. :2.00
## Yes:58 1st Qu.:4.000 1st Qu.:3.000 1st Qu.:2.000 1st Qu.:4.00
## Median :5.000 Median :4.000 Median :3.000 Median :4.00
## Mean :4.526 Mean :3.872 Mean :3.158 Mean :4.12
## 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:4.000 3rd Qu.:5.00
## Max. :5.000 Max. :5.000 Max. :5.000 Max. :5.00
##
## f_noise f_performance f_neural f_synergy
## Min. :1.000 Min. :2.000 Min. :1.000 Min. :1.000
## 1st Qu.:3.000 1st Qu.:4.000 1st Qu.:2.000 1st Qu.:3.000
## Median :4.000 Median :5.000 Median :3.000 Median :4.000
## Mean :3.729 Mean :4.398 Mean :3.165 Mean :3.466
## 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:4.000 3rd Qu.:4.000
## Max. :5.000 Max. :5.000 Max. :5.000 Max. :5.000
##
## f_performanceloss m1_consideration m1_purchase gender age_group
## Min. :1.000 Min. :1.000 No :45 Female:61 Min. : 1.00
## 1st Qu.:3.000 1st Qu.:3.000 Yes:88 Male :72 1st Qu.: 2.00
## Median :4.000 Median :4.000 Median : 2.00
## Mean :3.376 Mean :3.609 Mean : 2.97
## 3rd Qu.:4.000 3rd Qu.:5.000 3rd Qu.: 3.00
## Max. :5.000 Max. :5.000 Max. :10.00
##
## income_group status domain
## Min. :1.00 Employed :41 IT & Technology:33
## 1st Qu.:1.00 Retired : 1 Marketing :21
## Median :2.00 Self-Employed : 5 Business :14
## Mean :2.97 Student :84 Engineering : 7
## 3rd Qu.:4.00 Student ant employed: 1 Finance : 7
## Max. :7.00 Unemployed : 1 Science : 7
## (Other) :44
str(df)
## 'data.frame': 133 obs. of 22 variables:
## $ trust_apple : Factor w/ 2 levels "No","Yes": 1 2 2 2 2 2 2 1 2 2 ...
## $ interest_computers : int 4 2 5 2 4 3 3 3 4 5 ...
## $ age_computer : int 8 4 6 6 4 1 2 0 2 0 ...
## $ user_pcmac : Factor w/ 4 levels "Apple","Hp","Other",..: 4 4 4 1 1 1 1 4 1 1 ...
## $ appleproducts_count: int 0 1 0 4 7 2 7 0 6 7 ...
## $ familiarity_m1 : Factor w/ 2 levels "No","Yes": 1 1 1 1 2 1 1 1 2 2 ...
## $ f_batterylife : int 5 5 3 4 5 5 4 5 4 5 ...
## $ f_price : int 4 5 4 3 3 5 3 5 4 3 ...
## $ f_size : int 3 5 2 3 3 4 4 4 3 5 ...
## $ f_multitasking : int 4 3 4 4 4 4 5 4 4 5 ...
## $ f_noise : int 4 4 1 4 4 5 5 3 4 5 ...
## $ f_performance : int 2 5 4 4 5 5 5 3 4 5 ...
## $ f_neural : int 2 2 2 4 3 5 3 2 3 3 ...
## $ f_synergy : int 1 2 2 4 4 4 3 2 3 5 ...
## $ f_performanceloss : int 1 4 2 3 4 2 2 3 4 5 ...
## $ m1_consideration : int 1 2 4 2 4 2 3 1 5 5 ...
## $ m1_purchase : Factor w/ 2 levels "No","Yes": 2 1 2 1 2 1 2 1 2 2 ...
## $ gender : Factor w/ 2 levels "Female","Male": 2 2 2 1 2 1 2 2 2 2 ...
## $ age_group : int 2 2 2 2 5 2 6 2 8 4 ...
## $ income_group : int 2 3 2 2 7 2 7 2 7 6 ...
## $ status : Factor w/ 6 levels "Employed","Retired",..: 4 1 4 4 1 4 1 4 1 1 ...
## $ domain : Factor w/ 22 levels "Administration & Public Services",..: 21 10 13 3 12 17 13 22 13 12 ...
# create_report(df)
plot_missing(df)
plot_histogram(df)
plot_correlation(df)
## 1 features with more than 20 categories ignored!
## domain: 22 categories
NOTA: La variable que queremos predecir debe tener formato de FACTOR
# Normalmente 80-20
set.seed(123)
renglones_entrenamiento <- createDataPartition(df$m1_purchase, p=0.8, list=FALSE)
entrenamiento <- df[renglones_entrenamiento, ]
prueba <- df[-renglones_entrenamiento, ]
Los métodos más utilizados para modelar aprendizaje automático son:
modelo1 <- train(m1_purchase ~ ., data=entrenamiento,
method = "svmLinear",
preProcess = c("scale", "center"),
trControl = trainControl(method="cv", number=10),
tuneGrid = data.frame(C=1)
)
resultado_entrenamiento1 <- predict(modelo1, entrenamiento)
resultado_prueba1 <- predict(modelo1, prueba)
# Matriz de Confusión del Resultado del Entrenamiento
mcre1 <- confusionMatrix(resultado_entrenamiento1, entrenamiento$m1_purchase)
mcre1
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 30 4
## Yes 6 67
##
## Accuracy : 0.9065
## 95% CI : (0.8348, 0.9543)
## No Information Rate : 0.6636
## P-Value [Acc > NIR] : 4.281e-09
##
## Kappa : 0.7878
##
## Mcnemar's Test P-Value : 0.7518
##
## Sensitivity : 0.8333
## Specificity : 0.9437
## Pos Pred Value : 0.8824
## Neg Pred Value : 0.9178
## Prevalence : 0.3364
## Detection Rate : 0.2804
## Detection Prevalence : 0.3178
## Balanced Accuracy : 0.8885
##
## 'Positive' Class : No
##
# Matriz de Confusión del Resultado de la Prueba
mcrp1 <- confusionMatrix(resultado_prueba1, prueba$m1_purchase)
mcrp1
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 3 6
## Yes 6 11
##
## Accuracy : 0.5385
## 95% CI : (0.3337, 0.7341)
## No Information Rate : 0.6538
## P-Value [Acc > NIR] : 0.9231
##
## Kappa : -0.0196
##
## Mcnemar's Test P-Value : 1.0000
##
## Sensitivity : 0.3333
## Specificity : 0.6471
## Pos Pred Value : 0.3333
## Neg Pred Value : 0.6471
## Prevalence : 0.3462
## Detection Rate : 0.1154
## Detection Prevalence : 0.3462
## Balanced Accuracy : 0.4902
##
## 'Positive' Class : No
##
modelo2 <- train(m1_purchase ~ ., data=entrenamiento,
method = "svmRadial", #Cambiar
preProcess = c("scale", "center"),
trControl = trainControl(method="cv", number=10),
tuneGride = data.frame(sigma=1, C=1) #Cambiar
)
resultado_entrenamiento2 <- predict(modelo2, entrenamiento)
resultado_prueba2 <- predict(modelo2, prueba)
# Matriz de Confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificación.
# Matriz de Confusión del Resultado del Entrenamiento
mcre2 <- confusionMatrix(resultado_entrenamiento2, entrenamiento$m1_purchase)
mcre2
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 26 0
## Yes 10 71
##
## Accuracy : 0.9065
## 95% CI : (0.8348, 0.9543)
## No Information Rate : 0.6636
## P-Value [Acc > NIR] : 4.281e-09
##
## Kappa : 0.7753
##
## Mcnemar's Test P-Value : 0.004427
##
## Sensitivity : 0.7222
## Specificity : 1.0000
## Pos Pred Value : 1.0000
## Neg Pred Value : 0.8765
## Prevalence : 0.3364
## Detection Rate : 0.2430
## Detection Prevalence : 0.2430
## Balanced Accuracy : 0.8611
##
## 'Positive' Class : No
##
# Matriz de Confusión del Resultado de la Prueba
mcrp2 <- confusionMatrix(resultado_prueba2, prueba$m1_purchase)
mcrp2
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 1 4
## Yes 8 13
##
## Accuracy : 0.5385
## 95% CI : (0.3337, 0.7341)
## No Information Rate : 0.6538
## P-Value [Acc > NIR] : 0.9231
##
## Kappa : -0.1387
##
## Mcnemar's Test P-Value : 0.3865
##
## Sensitivity : 0.11111
## Specificity : 0.76471
## Pos Pred Value : 0.20000
## Neg Pred Value : 0.61905
## Prevalence : 0.34615
## Detection Rate : 0.03846
## Detection Prevalence : 0.19231
## Balanced Accuracy : 0.43791
##
## 'Positive' Class : No
##
modelo3 <- train(m1_purchase ~ ., data=entrenamiento,
method = "svmPoly", #Cambiar
preProcess = c("scale", "center"),
trControl = trainControl(method="cv", number=10),
tuneGride = data.frame(degree=1, scale=1, C=1) #Cambiar
)
resultado_entrenamiento3 <- predict(modelo3, entrenamiento)
resultado_prueba3 <- predict(modelo3, prueba)
# Matriz de Confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificación.
# Matriz de Confusión del Resultado del Entrenamiento
mcre3 <- confusionMatrix(resultado_entrenamiento3, entrenamiento$m1_purchase)
mcre3
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 29 4
## Yes 7 67
##
## Accuracy : 0.8972
## 95% CI : (0.8235, 0.9476)
## No Information Rate : 0.6636
## P-Value [Acc > NIR] : 1.967e-08
##
## Kappa : 0.7649
##
## Mcnemar's Test P-Value : 0.5465
##
## Sensitivity : 0.8056
## Specificity : 0.9437
## Pos Pred Value : 0.8788
## Neg Pred Value : 0.9054
## Prevalence : 0.3364
## Detection Rate : 0.2710
## Detection Prevalence : 0.3084
## Balanced Accuracy : 0.8746
##
## 'Positive' Class : No
##
# Matriz de Confusión del Resultado de la Prueba
mcrp3 <- confusionMatrix(resultado_prueba3, prueba$m1_purchase)
mcrp3
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 4 7
## Yes 5 10
##
## Accuracy : 0.5385
## 95% CI : (0.3337, 0.7341)
## No Information Rate : 0.6538
## P-Value [Acc > NIR] : 0.9231
##
## Kappa : 0.0311
##
## Mcnemar's Test P-Value : 0.7728
##
## Sensitivity : 0.4444
## Specificity : 0.5882
## Pos Pred Value : 0.3636
## Neg Pred Value : 0.6667
## Prevalence : 0.3462
## Detection Rate : 0.1538
## Detection Prevalence : 0.4231
## Balanced Accuracy : 0.5163
##
## 'Positive' Class : No
##
modelo4 <- train(m1_purchase ~ ., data=entrenamiento,
method = "rpart", #Cambiar
preProcess = c("scale", "center"),
trControl = trainControl(method="cv", number=10),
tuneLength = 10 #Cambiar
)
resultado_entrenamiento4 <- predict(modelo4, entrenamiento)
resultado_prueba4 <- predict(modelo4, prueba)
# Matriz de Confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificación.
# Matriz de Confusión del Resultado del Entrenamiento
mcre4 <- confusionMatrix(resultado_entrenamiento4, entrenamiento$m1_purchase)
mcre4
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 17 2
## Yes 19 69
##
## Accuracy : 0.8037
## 95% CI : (0.7158, 0.8742)
## No Information Rate : 0.6636
## P-Value [Acc > NIR] : 0.0010139
##
## Kappa : 0.5025
##
## Mcnemar's Test P-Value : 0.0004803
##
## Sensitivity : 0.4722
## Specificity : 0.9718
## Pos Pred Value : 0.8947
## Neg Pred Value : 0.7841
## Prevalence : 0.3364
## Detection Rate : 0.1589
## Detection Prevalence : 0.1776
## Balanced Accuracy : 0.7220
##
## 'Positive' Class : No
##
# Matriz de Confusión del Resultado de la Prueba
mcrp4 <- confusionMatrix(resultado_prueba4, prueba$m1_purchase)
mcrp4
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 4 6
## Yes 5 11
##
## Accuracy : 0.5769
## 95% CI : (0.3692, 0.7665)
## No Information Rate : 0.6538
## P-Value [Acc > NIR] : 0.8485
##
## Kappa : 0.0892
##
## Mcnemar's Test P-Value : 1.0000
##
## Sensitivity : 0.4444
## Specificity : 0.6471
## Pos Pred Value : 0.4000
## Neg Pred Value : 0.6875
## Prevalence : 0.3462
## Detection Rate : 0.1538
## Detection Prevalence : 0.3846
## Balanced Accuracy : 0.5458
##
## 'Positive' Class : No
##
modelo5 <- train(m1_purchase ~ ., data=entrenamiento,
method = "nnet", #Cambiar
preProcess = c("scale", "center"),
trControl = trainControl(method="cv", number=10)
#Cambiar
)
## # weights: 50
## initial value 74.247141
## iter 10 value 35.573297
## iter 20 value 26.955288
## iter 30 value 23.575587
## iter 40 value 21.351510
## iter 50 value 16.796235
## iter 60 value 16.743905
## iter 70 value 16.142754
## iter 80 value 15.212566
## iter 90 value 15.211433
## iter 100 value 15.211262
## final value 15.211262
## stopped after 100 iterations
## # weights: 148
## initial value 60.994638
## iter 10 value 14.797393
## iter 20 value 6.726077
## iter 30 value 5.846459
## iter 40 value 5.335932
## iter 50 value 5.285527
## iter 60 value 5.279700
## iter 70 value 5.028168
## iter 80 value 5.025583
## iter 90 value 5.021837
## iter 100 value 4.707235
## final value 4.707235
## stopped after 100 iterations
## # weights: 246
## initial value 63.088441
## iter 10 value 17.956727
## iter 20 value 3.111347
## iter 30 value 2.798906
## iter 40 value 2.773111
## iter 50 value 2.772634
## iter 60 value 2.772589
## iter 60 value 2.772589
## iter 60 value 2.772589
## final value 2.772589
## converged
## # weights: 50
## initial value 63.156136
## iter 10 value 29.495525
## iter 20 value 22.340354
## iter 30 value 21.589614
## iter 40 value 21.584546
## final value 21.584544
## converged
## # weights: 148
## initial value 68.046300
## iter 10 value 37.446921
## iter 20 value 18.090359
## iter 30 value 15.989113
## iter 40 value 15.620063
## iter 50 value 15.396680
## iter 60 value 15.279846
## iter 70 value 15.270745
## iter 80 value 15.270617
## final value 15.270616
## converged
## # weights: 246
## initial value 72.789509
## iter 10 value 25.271723
## iter 20 value 15.439661
## iter 30 value 14.559762
## iter 40 value 14.236887
## iter 50 value 14.094303
## iter 60 value 14.067507
## iter 70 value 14.056102
## iter 80 value 14.051176
## iter 90 value 14.049230
## iter 100 value 14.048526
## final value 14.048526
## stopped after 100 iterations
## # weights: 50
## initial value 66.619352
## iter 10 value 22.867635
## iter 20 value 11.433596
## iter 30 value 10.408121
## iter 40 value 10.394737
## iter 50 value 10.392697
## iter 60 value 10.391389
## iter 70 value 10.389948
## iter 80 value 10.389260
## iter 90 value 10.388650
## iter 100 value 10.388089
## final value 10.388089
## stopped after 100 iterations
## # weights: 148
## initial value 70.831792
## iter 10 value 21.635375
## iter 20 value 13.882540
## iter 30 value 7.837304
## iter 40 value 6.894951
## iter 50 value 6.758358
## iter 60 value 6.735467
## iter 70 value 6.205625
## iter 80 value 5.695199
## iter 90 value 5.686045
## iter 100 value 4.943829
## final value 4.943829
## stopped after 100 iterations
## # weights: 246
## initial value 71.178764
## iter 10 value 10.920175
## iter 20 value 3.173858
## iter 30 value 2.955508
## iter 40 value 2.924206
## iter 50 value 2.910129
## iter 60 value 2.895697
## iter 70 value 2.887648
## iter 80 value 2.879736
## iter 90 value 2.873228
## iter 100 value 2.868855
## final value 2.868855
## stopped after 100 iterations
## # weights: 50
## initial value 70.461136
## iter 10 value 29.637622
## iter 20 value 24.896018
## iter 30 value 24.785136
## iter 40 value 23.849898
## iter 50 value 22.266883
## iter 60 value 22.028012
## iter 70 value 22.026220
## iter 80 value 22.024817
## iter 90 value 22.022883
## iter 100 value 22.022083
## final value 22.022083
## stopped after 100 iterations
## # weights: 148
## initial value 83.038936
## iter 10 value 17.906396
## iter 20 value 9.024395
## iter 30 value 7.962449
## iter 40 value 7.588703
## iter 50 value 7.542751
## iter 60 value 7.533131
## iter 70 value 7.528144
## iter 80 value 7.526916
## iter 90 value 7.525144
## iter 100 value 7.524613
## final value 7.524613
## stopped after 100 iterations
## # weights: 246
## initial value 97.089941
## iter 10 value 13.236253
## iter 20 value 7.027142
## iter 30 value 6.931576
## iter 40 value 6.931398
## iter 50 value 6.137821
## iter 60 value 6.137649
## final value 6.137648
## converged
## # weights: 50
## initial value 63.592743
## iter 10 value 33.572146
## iter 20 value 23.660654
## iter 30 value 22.625912
## iter 40 value 22.606223
## iter 50 value 22.605796
## final value 22.605794
## converged
## # weights: 148
## initial value 68.123293
## iter 10 value 27.334352
## iter 20 value 18.593081
## iter 30 value 17.534828
## iter 40 value 17.180908
## iter 50 value 17.102883
## iter 60 value 17.092293
## iter 70 value 17.090896
## iter 80 value 17.090635
## iter 90 value 17.090623
## final value 17.090623
## converged
## # weights: 246
## initial value 62.664827
## iter 10 value 22.058294
## iter 20 value 17.701457
## iter 30 value 16.737544
## iter 40 value 15.736257
## iter 50 value 15.503372
## iter 60 value 15.470090
## iter 70 value 15.467216
## final value 15.467182
## converged
## # weights: 50
## initial value 85.720549
## iter 10 value 29.959529
## iter 20 value 26.252869
## iter 30 value 24.738443
## iter 40 value 23.238898
## iter 50 value 23.212547
## iter 60 value 23.208734
## iter 70 value 23.207691
## iter 80 value 23.206458
## iter 90 value 23.205360
## iter 100 value 23.204799
## final value 23.204799
## stopped after 100 iterations
## # weights: 148
## initial value 78.476532
## iter 10 value 22.218352
## iter 20 value 15.234602
## iter 30 value 14.602727
## iter 40 value 14.009794
## iter 50 value 13.417621
## iter 60 value 13.347010
## iter 70 value 12.991732
## iter 80 value 12.784718
## iter 90 value 12.730930
## iter 100 value 12.705643
## final value 12.705643
## stopped after 100 iterations
## # weights: 246
## initial value 61.979459
## iter 10 value 12.700194
## iter 20 value 9.700148
## iter 30 value 7.774787
## iter 40 value 7.635994
## iter 50 value 7.370546
## iter 60 value 7.354467
## iter 70 value 4.596214
## iter 80 value 3.655218
## iter 90 value 3.592889
## iter 100 value 3.577700
## final value 3.577700
## stopped after 100 iterations
## # weights: 50
## initial value 77.361947
## iter 10 value 27.133126
## iter 20 value 20.197498
## iter 30 value 20.033281
## iter 40 value 20.029611
## final value 20.029596
## converged
## # weights: 148
## initial value 69.253864
## iter 10 value 29.640040
## iter 20 value 12.079151
## iter 30 value 11.040399
## iter 40 value 10.669686
## iter 50 value 10.331229
## iter 60 value 10.327987
## iter 70 value 9.762637
## iter 80 value 9.735740
## iter 90 value 9.734909
## iter 100 value 9.734451
## final value 9.734451
## stopped after 100 iterations
## # weights: 246
## initial value 65.841760
## iter 10 value 20.066964
## iter 20 value 6.109942
## iter 30 value 2.839043
## iter 40 value 2.777050
## iter 50 value 2.772746
## iter 60 value 2.772641
## iter 70 value 2.772596
## final value 2.772592
## converged
## # weights: 50
## initial value 60.756744
## iter 10 value 33.658598
## iter 20 value 28.344173
## iter 30 value 23.299959
## iter 40 value 22.070420
## iter 50 value 22.063349
## final value 22.063336
## converged
## # weights: 148
## initial value 64.540074
## iter 10 value 26.041092
## iter 20 value 18.051452
## iter 30 value 17.076063
## iter 40 value 15.939398
## iter 50 value 15.788762
## iter 60 value 15.781481
## iter 70 value 15.772708
## iter 80 value 15.770683
## final value 15.770632
## converged
## # weights: 246
## initial value 90.721474
## iter 10 value 28.159264
## iter 20 value 19.691693
## iter 30 value 16.842922
## iter 40 value 15.921174
## iter 50 value 15.542337
## iter 60 value 15.445324
## iter 70 value 15.422428
## iter 80 value 15.362703
## iter 90 value 15.359990
## iter 100 value 15.359560
## final value 15.359560
## stopped after 100 iterations
## # weights: 50
## initial value 76.389314
## iter 10 value 30.170576
## iter 20 value 23.629854
## iter 30 value 23.218148
## iter 40 value 23.205239
## iter 50 value 23.201991
## iter 60 value 23.199864
## iter 70 value 23.198628
## iter 80 value 23.197717
## iter 90 value 23.197236
## iter 100 value 23.196748
## final value 23.196748
## stopped after 100 iterations
## # weights: 148
## initial value 65.732139
## iter 10 value 17.144385
## iter 20 value 3.989383
## iter 30 value 2.994798
## iter 40 value 2.916044
## iter 50 value 2.908516
## iter 60 value 2.902956
## iter 70 value 2.896174
## iter 80 value 2.888044
## iter 90 value 2.883371
## iter 100 value 2.878192
## final value 2.878192
## stopped after 100 iterations
## # weights: 246
## initial value 76.181890
## iter 10 value 9.534100
## iter 20 value 3.103306
## iter 30 value 3.004992
## iter 40 value 2.975824
## iter 50 value 2.942289
## iter 60 value 2.916197
## iter 70 value 2.895984
## iter 80 value 2.879800
## iter 90 value 2.870633
## iter 100 value 2.863583
## final value 2.863583
## stopped after 100 iterations
## # weights: 50
## initial value 64.273549
## iter 10 value 31.787518
## iter 20 value 28.070434
## iter 30 value 28.054779
## iter 40 value 28.051093
## final value 28.051001
## converged
## # weights: 148
## initial value 63.869210
## iter 10 value 11.707651
## iter 20 value 7.787308
## iter 30 value 4.108267
## iter 40 value 3.860734
## iter 50 value 3.825131
## iter 60 value 3.820141
## iter 70 value 3.469875
## iter 80 value 2.280526
## iter 90 value 1.918474
## iter 100 value 1.912727
## final value 1.912727
## stopped after 100 iterations
## # weights: 246
## initial value 68.839143
## iter 10 value 8.882069
## iter 20 value 5.905050
## iter 30 value 5.871238
## iter 40 value 5.868301
## iter 50 value 5.774048
## iter 60 value 5.276243
## iter 70 value 5.274727
## final value 5.274626
## converged
## # weights: 50
## initial value 70.795422
## iter 10 value 32.047907
## iter 20 value 26.946720
## iter 30 value 24.652170
## iter 40 value 23.186315
## iter 50 value 22.182320
## iter 60 value 22.090320
## iter 70 value 22.087915
## final value 22.087900
## converged
## # weights: 148
## initial value 66.421053
## iter 10 value 22.215929
## iter 20 value 19.043928
## iter 30 value 16.731489
## iter 40 value 14.916165
## iter 50 value 14.748428
## iter 60 value 14.693656
## iter 70 value 14.689541
## final value 14.689498
## converged
## # weights: 246
## initial value 93.703985
## iter 10 value 27.186630
## iter 20 value 15.600002
## iter 30 value 14.796207
## iter 40 value 14.482175
## iter 50 value 13.660491
## iter 60 value 13.395956
## iter 70 value 13.279273
## iter 80 value 13.266561
## iter 90 value 13.265572
## iter 100 value 13.265551
## final value 13.265551
## stopped after 100 iterations
## # weights: 50
## initial value 71.936346
## iter 10 value 25.833431
## iter 20 value 20.219778
## iter 30 value 19.807449
## iter 40 value 19.797149
## iter 50 value 19.795972
## iter 60 value 19.795041
## iter 70 value 19.794244
## iter 80 value 19.781644
## iter 90 value 16.687917
## iter 100 value 16.629863
## final value 16.629863
## stopped after 100 iterations
## # weights: 148
## initial value 74.065216
## iter 10 value 25.870791
## iter 20 value 10.295126
## iter 30 value 7.935096
## iter 40 value 5.275161
## iter 50 value 4.906966
## iter 60 value 4.307070
## iter 70 value 4.297093
## iter 80 value 3.955364
## iter 90 value 3.948602
## iter 100 value 3.942260
## final value 3.942260
## stopped after 100 iterations
## # weights: 246
## initial value 71.824251
## iter 10 value 18.318084
## iter 20 value 3.744115
## iter 30 value 3.553298
## iter 40 value 3.525206
## iter 50 value 3.027529
## iter 60 value 2.183698
## iter 70 value 2.131979
## iter 80 value 2.097128
## iter 90 value 2.087701
## iter 100 value 2.062456
## final value 2.062456
## stopped after 100 iterations
## # weights: 50
## initial value 70.814612
## iter 10 value 33.114590
## iter 20 value 23.056801
## iter 30 value 22.332807
## iter 40 value 22.329435
## final value 22.329409
## converged
## # weights: 148
## initial value 88.455029
## iter 10 value 16.295791
## iter 20 value 11.527525
## iter 30 value 10.925408
## iter 40 value 9.431090
## iter 50 value 8.961886
## iter 60 value 8.959162
## iter 70 value 8.955490
## iter 80 value 8.322922
## iter 90 value 8.319476
## iter 100 value 8.318925
## final value 8.318925
## stopped after 100 iterations
## # weights: 246
## initial value 66.041374
## iter 10 value 17.342252
## iter 20 value 7.200597
## iter 30 value 6.627714
## iter 40 value 6.254961
## iter 50 value 6.143318
## iter 60 value 6.139434
## iter 70 value 6.083228
## iter 80 value 5.547651
## iter 90 value 5.547405
## iter 100 value 5.547120
## final value 5.547120
## stopped after 100 iterations
## # weights: 50
## initial value 67.496814
## iter 10 value 30.515368
## iter 20 value 21.068589
## iter 30 value 20.405972
## iter 40 value 20.376071
## final value 20.375844
## converged
## # weights: 148
## initial value 65.359171
## iter 10 value 31.831775
## iter 20 value 17.622850
## iter 30 value 16.504227
## iter 40 value 16.369671
## iter 50 value 16.357483
## iter 60 value 16.356548
## final value 16.356537
## converged
## # weights: 246
## initial value 77.788060
## iter 10 value 27.562391
## iter 20 value 18.189761
## iter 30 value 16.358855
## iter 40 value 16.063131
## iter 50 value 15.965410
## iter 60 value 15.712505
## iter 70 value 15.479670
## iter 80 value 15.431879
## iter 90 value 15.427298
## iter 100 value 15.425827
## final value 15.425827
## stopped after 100 iterations
## # weights: 50
## initial value 68.995071
## iter 10 value 27.815322
## iter 20 value 18.916135
## iter 30 value 12.956311
## iter 40 value 12.905134
## iter 50 value 10.965171
## iter 60 value 10.349348
## iter 70 value 10.331287
## iter 80 value 10.328183
## iter 90 value 10.326941
## iter 100 value 10.325329
## final value 10.325329
## stopped after 100 iterations
## # weights: 148
## initial value 59.068759
## iter 10 value 13.342250
## iter 20 value 11.194082
## iter 30 value 10.241402
## iter 40 value 9.993602
## iter 50 value 9.462438
## iter 60 value 9.076044
## iter 70 value 9.037729
## iter 80 value 9.022014
## iter 90 value 9.015627
## iter 100 value 8.635475
## final value 8.635475
## stopped after 100 iterations
## # weights: 246
## initial value 66.347293
## iter 10 value 17.090083
## iter 20 value 7.512161
## iter 30 value 6.003608
## iter 40 value 5.917302
## iter 50 value 5.804523
## iter 60 value 3.496168
## iter 70 value 3.078921
## iter 80 value 3.016211
## iter 90 value 3.003395
## iter 100 value 2.986100
## final value 2.986100
## stopped after 100 iterations
## # weights: 50
## initial value 64.513897
## iter 10 value 19.485039
## iter 20 value 11.639033
## iter 30 value 10.325810
## iter 40 value 10.317461
## iter 50 value 10.317443
## final value 10.317441
## converged
## # weights: 148
## initial value 70.083238
## iter 10 value 23.244851
## iter 20 value 19.156835
## iter 30 value 11.426313
## iter 40 value 9.671358
## iter 50 value 9.658430
## iter 60 value 9.656097
## iter 70 value 9.570473
## iter 80 value 9.567748
## iter 90 value 9.567562
## iter 100 value 9.381220
## final value 9.381220
## stopped after 100 iterations
## # weights: 246
## initial value 60.593916
## iter 10 value 20.991066
## iter 20 value 19.200181
## iter 30 value 17.178885
## iter 40 value 16.306274
## iter 50 value 16.257038
## iter 60 value 15.075406
## iter 70 value 15.015195
## iter 80 value 14.935005
## iter 90 value 14.925358
## iter 100 value 14.623355
## final value 14.623355
## stopped after 100 iterations
## # weights: 50
## initial value 62.537967
## iter 10 value 35.254701
## iter 20 value 28.825978
## iter 30 value 23.312996
## iter 40 value 21.993042
## iter 50 value 21.961746
## final value 21.961708
## converged
## # weights: 148
## initial value 69.974251
## iter 10 value 29.162916
## iter 20 value 18.193376
## iter 30 value 16.280391
## iter 40 value 15.677443
## iter 50 value 15.563683
## iter 60 value 15.501291
## iter 70 value 15.483204
## iter 80 value 15.482852
## final value 15.482837
## converged
## # weights: 246
## initial value 72.262586
## iter 10 value 20.223094
## iter 20 value 15.945918
## iter 30 value 14.963202
## iter 40 value 14.590589
## iter 50 value 14.543217
## iter 60 value 14.539162
## iter 70 value 14.537981
## iter 80 value 14.537896
## iter 90 value 14.537886
## final value 14.537885
## converged
## # weights: 50
## initial value 66.198486
## iter 10 value 29.766360
## iter 20 value 22.370221
## iter 30 value 22.230156
## iter 40 value 22.222300
## iter 50 value 22.220421
## iter 60 value 22.218938
## iter 70 value 22.216435
## iter 80 value 22.215234
## iter 90 value 22.213851
## iter 100 value 22.213010
## final value 22.213010
## stopped after 100 iterations
## # weights: 148
## initial value 83.100811
## iter 10 value 15.918306
## iter 20 value 10.231947
## iter 30 value 9.215357
## iter 40 value 8.765780
## iter 50 value 8.310662
## iter 60 value 8.246038
## iter 70 value 7.897242
## iter 80 value 7.888984
## iter 90 value 7.884686
## iter 100 value 7.879003
## final value 7.879003
## stopped after 100 iterations
## # weights: 246
## initial value 69.897959
## iter 10 value 11.694864
## iter 20 value 2.963380
## iter 30 value 2.903771
## iter 40 value 2.885586
## iter 50 value 2.873110
## iter 60 value 2.861245
## iter 70 value 2.854449
## iter 80 value 2.849238
## iter 90 value 2.847592
## iter 100 value 2.845049
## final value 2.845049
## stopped after 100 iterations
## # weights: 50
## initial value 61.779635
## iter 10 value 28.140517
## iter 20 value 23.522733
## iter 30 value 23.211933
## iter 40 value 23.205503
## iter 50 value 23.205073
## final value 23.205072
## converged
## # weights: 148
## initial value 77.841695
## iter 10 value 27.698163
## iter 20 value 13.889326
## iter 30 value 10.970202
## iter 40 value 10.734741
## iter 50 value 10.493446
## iter 60 value 10.486599
## final value 10.486513
## converged
## # weights: 246
## initial value 67.400763
## iter 10 value 24.173096
## iter 20 value 8.955481
## iter 30 value 3.031711
## iter 40 value 2.790163
## iter 50 value 2.772812
## final value 2.772599
## converged
## # weights: 50
## initial value 65.789546
## iter 10 value 34.585115
## iter 20 value 25.767771
## iter 30 value 22.195990
## iter 40 value 21.600466
## iter 50 value 21.494987
## final value 21.494860
## converged
## # weights: 148
## initial value 65.361519
## iter 10 value 21.838720
## iter 20 value 16.768068
## iter 30 value 16.286188
## iter 40 value 16.125547
## iter 50 value 16.062607
## iter 60 value 16.049749
## iter 70 value 16.049097
## final value 16.049096
## converged
## # weights: 246
## initial value 69.311848
## iter 10 value 21.702957
## iter 20 value 15.443827
## iter 30 value 14.432362
## iter 40 value 14.113921
## iter 50 value 14.085298
## iter 60 value 14.083951
## iter 70 value 14.083780
## iter 80 value 14.083775
## final value 14.083773
## converged
## # weights: 50
## initial value 90.774473
## iter 10 value 29.923901
## iter 20 value 19.856270
## iter 30 value 19.638293
## iter 40 value 17.654798
## iter 50 value 15.383303
## iter 60 value 15.349196
## iter 70 value 15.341885
## iter 80 value 15.339941
## iter 90 value 15.338566
## iter 100 value 15.337600
## final value 15.337600
## stopped after 100 iterations
## # weights: 148
## initial value 83.276931
## iter 10 value 10.264692
## iter 20 value 8.302523
## iter 30 value 7.938103
## iter 40 value 7.610760
## iter 50 value 7.219643
## iter 60 value 7.208584
## iter 70 value 7.203998
## iter 80 value 7.173276
## iter 90 value 5.685959
## iter 100 value 5.636098
## final value 5.636098
## stopped after 100 iterations
## # weights: 246
## initial value 65.459160
## iter 10 value 16.538406
## iter 20 value 1.813725
## iter 30 value 1.560631
## iter 40 value 1.544815
## iter 50 value 1.529450
## iter 60 value 1.514236
## iter 70 value 1.504423
## iter 80 value 1.498174
## iter 90 value 1.493509
## iter 100 value 1.487447
## final value 1.487447
## stopped after 100 iterations
## # weights: 50
## initial value 63.625801
## iter 10 value 18.232677
## iter 20 value 11.383281
## iter 30 value 10.268632
## iter 40 value 10.256586
## iter 50 value 10.254205
## iter 60 value 10.254073
## iter 70 value 10.253959
## final value 10.253948
## converged
## # weights: 148
## initial value 65.355276
## iter 10 value 14.243692
## iter 20 value 5.801682
## iter 30 value 4.705341
## iter 40 value 4.689118
## iter 50 value 4.683514
## iter 60 value 4.682293
## iter 70 value 4.682146
## final value 4.682145
## converged
## # weights: 246
## initial value 92.903065
## iter 10 value 14.058391
## iter 20 value 6.159199
## iter 30 value 4.766579
## iter 40 value 4.169264
## iter 50 value 2.865474
## iter 60 value 2.797039
## iter 70 value 2.781501
## iter 80 value 2.778008
## iter 90 value 2.776146
## iter 100 value 2.774291
## final value 2.774291
## stopped after 100 iterations
## # weights: 50
## initial value 72.687273
## iter 10 value 36.785816
## iter 20 value 22.756274
## iter 30 value 21.498570
## iter 40 value 21.461387
## final value 21.458412
## converged
## # weights: 148
## initial value 71.410261
## iter 10 value 29.131096
## iter 20 value 18.595055
## iter 30 value 16.659037
## iter 40 value 15.404559
## iter 50 value 15.131581
## iter 60 value 14.664536
## iter 70 value 14.517692
## iter 80 value 14.512139
## iter 90 value 14.511535
## final value 14.511520
## converged
## # weights: 246
## initial value 104.192783
## iter 10 value 24.768062
## iter 20 value 16.302580
## iter 30 value 15.734348
## iter 40 value 15.565991
## iter 50 value 15.402766
## iter 60 value 15.375984
## iter 70 value 15.359687
## iter 80 value 15.351814
## iter 90 value 15.344482
## iter 100 value 15.344293
## final value 15.344293
## stopped after 100 iterations
## # weights: 50
## initial value 73.202895
## iter 10 value 24.895801
## iter 20 value 21.156401
## iter 30 value 19.002029
## iter 40 value 18.978148
## iter 50 value 18.971586
## iter 60 value 18.970203
## iter 70 value 16.548010
## iter 80 value 16.450616
## iter 90 value 16.441013
## iter 100 value 16.438674
## final value 16.438674
## stopped after 100 iterations
## # weights: 148
## initial value 68.120569
## iter 10 value 16.325503
## iter 20 value 9.969414
## iter 30 value 9.657565
## iter 40 value 6.434655
## iter 50 value 6.266739
## iter 60 value 5.953360
## iter 70 value 5.702718
## iter 80 value 5.678465
## iter 90 value 5.482990
## iter 100 value 5.302906
## final value 5.302906
## stopped after 100 iterations
## # weights: 246
## initial value 62.857655
## iter 10 value 5.477674
## iter 20 value 2.962081
## iter 30 value 2.929581
## iter 40 value 2.916364
## iter 50 value 2.899859
## iter 60 value 2.885782
## iter 70 value 2.876054
## iter 80 value 2.869832
## iter 90 value 2.863646
## iter 100 value 2.859856
## final value 2.859856
## stopped after 100 iterations
## # weights: 50
## initial value 72.318449
## iter 10 value 23.905200
## iter 20 value 14.508402
## iter 30 value 14.348878
## iter 40 value 14.347977
## final value 14.347976
## converged
## # weights: 148
## initial value 63.946219
## iter 10 value 21.282347
## iter 20 value 11.393931
## iter 30 value 10.828035
## iter 40 value 10.789203
## iter 50 value 10.749876
## iter 60 value 10.736921
## iter 70 value 9.454619
## iter 80 value 9.339563
## iter 90 value 9.087192
## iter 100 value 9.044489
## final value 9.044489
## stopped after 100 iterations
## # weights: 246
## initial value 75.363655
## iter 10 value 17.219448
## iter 20 value 9.739452
## iter 30 value 4.175350
## iter 40 value 4.159409
## iter 50 value 4.158950
## final value 4.158883
## converged
## # weights: 50
## initial value 60.841012
## iter 10 value 30.539360
## iter 20 value 22.492960
## iter 30 value 21.020821
## iter 40 value 20.909006
## final value 20.908686
## converged
## # weights: 148
## initial value 74.528678
## iter 10 value 26.712829
## iter 20 value 17.373002
## iter 30 value 16.727912
## iter 40 value 16.692688
## iter 50 value 16.686953
## iter 60 value 16.686728
## final value 16.686721
## converged
## # weights: 246
## initial value 78.076159
## iter 10 value 21.956834
## iter 20 value 16.437015
## iter 30 value 14.691541
## iter 40 value 14.195768
## iter 50 value 14.085760
## iter 60 value 13.964192
## iter 70 value 13.888741
## iter 80 value 13.848692
## iter 90 value 13.842821
## iter 100 value 13.842766
## final value 13.842766
## stopped after 100 iterations
## # weights: 50
## initial value 64.246782
## iter 10 value 32.902723
## iter 20 value 27.230156
## iter 30 value 23.629822
## iter 40 value 23.347362
## iter 50 value 23.342720
## iter 60 value 23.341645
## iter 70 value 23.340590
## iter 80 value 23.339990
## iter 90 value 23.339493
## iter 100 value 23.339217
## final value 23.339217
## stopped after 100 iterations
## # weights: 148
## initial value 85.712520
## iter 10 value 16.791619
## iter 20 value 11.603040
## iter 30 value 11.074299
## iter 40 value 10.843327
## iter 50 value 10.333362
## iter 60 value 10.185515
## iter 70 value 9.996806
## iter 80 value 9.856838
## iter 90 value 9.572686
## iter 100 value 9.562315
## final value 9.562315
## stopped after 100 iterations
## # weights: 246
## initial value 79.120018
## iter 10 value 6.377651
## iter 20 value 2.244223
## iter 30 value 2.179833
## iter 40 value 2.135336
## iter 50 value 2.114168
## iter 60 value 2.095743
## iter 70 value 2.081811
## iter 80 value 2.070862
## iter 90 value 2.061911
## iter 100 value 2.055363
## final value 2.055363
## stopped after 100 iterations
## # weights: 50
## initial value 77.557564
## iter 10 value 28.387225
## iter 20 value 19.964057
## iter 30 value 16.618183
## iter 40 value 16.562671
## iter 50 value 16.554093
## iter 60 value 16.551415
## iter 70 value 16.546870
## iter 80 value 16.543692
## iter 90 value 16.543029
## iter 100 value 16.542131
## final value 16.542131
## stopped after 100 iterations
## # weights: 148
## initial value 64.464868
## iter 10 value 16.133207
## iter 20 value 8.703340
## iter 30 value 7.680735
## iter 40 value 7.561353
## iter 50 value 7.553601
## iter 60 value 7.553180
## iter 70 value 7.552963
## final value 7.552950
## converged
## # weights: 246
## initial value 62.611608
## iter 10 value 10.328249
## iter 20 value 3.188274
## iter 30 value 2.806133
## iter 40 value 2.775114
## iter 50 value 2.773460
## iter 60 value 2.772798
## iter 70 value 2.772726
## iter 80 value 2.772628
## final value 2.772627
## converged
## # weights: 50
## initial value 73.592805
## iter 10 value 34.840619
## iter 20 value 23.072476
## iter 30 value 20.065711
## iter 40 value 19.997377
## final value 19.996969
## converged
## # weights: 148
## initial value 82.051734
## iter 10 value 27.173160
## iter 20 value 17.850339
## iter 30 value 16.355921
## iter 40 value 16.148313
## iter 50 value 16.116440
## iter 60 value 16.085791
## iter 70 value 16.084163
## iter 80 value 16.084133
## final value 16.084133
## converged
## # weights: 246
## initial value 76.495503
## iter 10 value 22.318568
## iter 20 value 15.959355
## iter 30 value 15.296612
## iter 40 value 15.047693
## iter 50 value 14.955480
## iter 60 value 14.866659
## iter 70 value 14.857073
## iter 80 value 14.847217
## iter 90 value 14.844692
## iter 100 value 14.844617
## final value 14.844617
## stopped after 100 iterations
## # weights: 50
## initial value 68.311073
## iter 10 value 29.994470
## iter 20 value 15.165530
## iter 30 value 12.551919
## iter 40 value 12.389177
## iter 50 value 12.380944
## iter 60 value 12.377296
## iter 70 value 12.370890
## iter 80 value 12.366133
## iter 90 value 12.364434
## iter 100 value 12.362784
## final value 12.362784
## stopped after 100 iterations
## # weights: 148
## initial value 69.746220
## iter 10 value 14.162096
## iter 20 value 9.299150
## iter 30 value 9.278387
## iter 40 value 9.213619
## iter 50 value 8.760456
## iter 60 value 8.749491
## iter 70 value 8.745224
## iter 80 value 8.491255
## iter 90 value 7.612465
## iter 100 value 7.020722
## final value 7.020722
## stopped after 100 iterations
## # weights: 246
## initial value 67.362469
## iter 10 value 13.287662
## iter 20 value 6.978096
## iter 30 value 6.617655
## iter 40 value 5.973096
## iter 50 value 5.642162
## iter 60 value 5.054511
## iter 70 value 4.790129
## iter 80 value 4.320301
## iter 90 value 4.207467
## iter 100 value 2.982785
## final value 2.982785
## stopped after 100 iterations
## # weights: 148
## initial value 90.759886
## iter 10 value 37.280163
## iter 20 value 23.240553
## iter 30 value 18.488033
## iter 40 value 17.849119
## iter 50 value 17.699662
## iter 60 value 17.665383
## iter 70 value 17.637204
## iter 80 value 17.625254
## iter 90 value 17.623952
## iter 100 value 17.623916
## final value 17.623916
## stopped after 100 iterations
resultado_entrenamiento5 <- predict(modelo5, entrenamiento)
resultado_prueba5 <- predict(modelo5, prueba)
# Matriz de Confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificación.
# Matriz de Confusión del Resultado del Entrenamiento
mcre5 <- confusionMatrix(resultado_entrenamiento5, entrenamiento$m1_purchase)
mcre5
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 33 0
## Yes 3 71
##
## Accuracy : 0.972
## 95% CI : (0.9202, 0.9942)
## No Information Rate : 0.6636
## P-Value [Acc > NIR] : 2.388e-15
##
## Kappa : 0.9359
##
## Mcnemar's Test P-Value : 0.2482
##
## Sensitivity : 0.9167
## Specificity : 1.0000
## Pos Pred Value : 1.0000
## Neg Pred Value : 0.9595
## Prevalence : 0.3364
## Detection Rate : 0.3084
## Detection Prevalence : 0.3084
## Balanced Accuracy : 0.9583
##
## 'Positive' Class : No
##
# Matriz de Confusión del Resultado de la Prueba
mcrp5 <- confusionMatrix(resultado_prueba5, prueba$m1_purchase)
mcrp5
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 2 7
## Yes 7 10
##
## Accuracy : 0.4615
## 95% CI : (0.2659, 0.6663)
## No Information Rate : 0.6538
## P-Value [Acc > NIR] : 0.9866
##
## Kappa : -0.1895
##
## Mcnemar's Test P-Value : 1.0000
##
## Sensitivity : 0.22222
## Specificity : 0.58824
## Pos Pred Value : 0.22222
## Neg Pred Value : 0.58824
## Prevalence : 0.34615
## Detection Rate : 0.07692
## Detection Prevalence : 0.34615
## Balanced Accuracy : 0.40523
##
## 'Positive' Class : No
##
modelo6 <- train(m1_purchase ~ ., data=entrenamiento,
method = "rf", #Cambiar
preProcess = c("scale", "center"),
trControl = trainControl(method="cv", number=10),
tuneGrid = expand.grid(mtry = c(2,4,6)) #Cambiar
)
resultado_entrenamiento6 <- predict(modelo6, entrenamiento)
resultado_prueba6 <- predict(modelo6, prueba)
# Matriz de Confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificación.
# Matriz de Confusión del Resultado del Entrenamiento
mcre6 <- confusionMatrix(resultado_entrenamiento6, entrenamiento$m1_purchase)
mcre6
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 34 0
## Yes 2 71
##
## Accuracy : 0.9813
## 95% CI : (0.9341, 0.9977)
## No Information Rate : 0.6636
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.9576
##
## Mcnemar's Test P-Value : 0.4795
##
## Sensitivity : 0.9444
## Specificity : 1.0000
## Pos Pred Value : 1.0000
## Neg Pred Value : 0.9726
## Prevalence : 0.3364
## Detection Rate : 0.3178
## Detection Prevalence : 0.3178
## Balanced Accuracy : 0.9722
##
## 'Positive' Class : No
##
# Matriz de Confusión del Resultado de la Prueba
mcrp6 <- confusionMatrix(resultado_prueba6, prueba$m1_purchase)
mcrp6
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 4 6
## Yes 5 11
##
## Accuracy : 0.5769
## 95% CI : (0.3692, 0.7665)
## No Information Rate : 0.6538
## P-Value [Acc > NIR] : 0.8485
##
## Kappa : 0.0892
##
## Mcnemar's Test P-Value : 1.0000
##
## Sensitivity : 0.4444
## Specificity : 0.6471
## Pos Pred Value : 0.4000
## Neg Pred Value : 0.6875
## Prevalence : 0.3462
## Detection Rate : 0.1538
## Detection Prevalence : 0.3846
## Balanced Accuracy : 0.5458
##
## 'Positive' Class : No
##
resultados <- data.frame(
"svmLinear" = c(mcre1$overall["Accuracy"], mcrp1$overall["Accuracy"]),
"svmRadial" = c(mcre2$overall["Accuracy"], mcrp2$overall["Accuracy"]),
"svmPoly" = c(mcre3$overall["Accuracy"], mcrp3$overall["Accuracy"]),
"rpart" = c(mcre4$overall["Accuracy"], mcrp4$overall["Accuracy"]),
"nnet" = c(mcre5$overall["Accuracy"], mcrp5$overall["Accuracy"]),
"rf" = c(mcre6$overall["Accuracy"], mcrp6$overall["Accuracy"])
)
rownames(resultados) <- c("Precisión de entrenamiento", "Precisión de prueba")
resultados
## svmLinear svmRadial svmPoly rpart nnet
## Precisión de entrenamiento 0.9065421 0.9065421 0.8971963 0.8037383 0.9719626
## Precisión de prueba 0.5384615 0.5384615 0.5384615 0.5769231 0.4615385
## rf
## Precisión de entrenamiento 0.9813084
## Precisión de prueba 0.5769231
En general, se observa una brecha notable entre la precisión de entrenamiento y prueba en casi todos los modelos. Random Forest (rf) logra la mejor precisión en prueba (0.6538), pero el desempeño general sigue siendo bajo, posiblemente por un tamaño de muestra reducido u otros factores que limitan la generalización.