El paquete CARET (Classification And REgression Training) es un paquete integral con una amplia variedad de algoritmos para el aprendizaje automático.
# 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("DataExplorer") # Análisis Exploratorio
library(DataExplorer)
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
df <- read.csv("C:\\Users\\lucia\\Downloads\\M1_data.csv", stringsAsFactors = FALSE)
df <- na.omit(df) # para evitar problemas de longitudes diferentes
# Variable objetivo en factor
df$m1_purchase <- as.factor(df$m1_purchase)
# (opcional) asegurar que columnas tipo texto sean factor
df <- df %>%
mutate(across(where(is.character), as.factor))
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 ...
plot_missing(df)
## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
## ℹ Please use tidy evaluation idioms with `aes()`.
## ℹ See also `vignette("ggplot2-in-packages")` for more information.
## ℹ The deprecated feature was likely used in the DataExplorer package.
## Please report the issue at
## <https://github.com/boxuancui/DataExplorer/issues>.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
plot_histogram(df)
# correlación sólo con numéricas (si no, puede salir en blanco o error)
df_num <- df %>% select(where(is.numeric))
if(ncol(df_num) > 1) plot_correlation(df_num)
# Preparación
y <- df$m1_purchase
x_raw <- df %>% select(-m1_purchase)
# Crear dummies ANTES de partir para evitar "new levels" en prueba
dmy <- dummyVars(~ ., data = x_raw, fullRank = TRUE)
x <- predict(dmy, newdata = x_raw) %>% as.data.frame()
set.seed(123)
renglones_entrenamiento <- createDataPartition(y, p = 0.8, list = FALSE)
x_entrenamiento <- x[renglones_entrenamiento, ]
x_prueba <- x[-renglones_entrenamiento, ]
y_entrenamiento <- y[renglones_entrenamiento]
y_prueba <- y[-renglones_entrenamiento]
SVM: Support Vector Machine o Máquina de Vectores de Soporte. Hay varios subtipos: Lineal (svmLinear), Radial (svmRadial), Polinómico (svmPoly), etc. Árbol de Decisión: rpart Redes Neuronales: nnet Random Forest o Bosques Aleatorios: rf
modelo1 <- train(
x = x_entrenamiento, y = y_entrenamiento,
method = "svmLinear",
preProcess = c("scale", "center"),
trControl = trainControl(method="cv", number=10),
tuneGrid = data.frame(C=1)
)
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Student ant employed, status.Unemployed,
## domain.Communication , domain.Realestate, domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retail, domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Consulting , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Logistics, domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
resultado_entrenamiento1 <- predict(modelo1, x_entrenamiento)
resultado_prueba1 <- predict(modelo1, x_prueba)
mcre1 <- confusionMatrix(resultado_entrenamiento1, y_entrenamiento)
mcrp1 <- confusionMatrix(resultado_prueba1, y_prueba)
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
##
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(
x = x_entrenamiento, y = y_entrenamiento,
method = "svmRadial",
preProcess = c("scale", "center"),
trControl = trainControl(method="cv", number=10),
tuneGrid = data.frame(sigma=1, C=1)
)
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Agriculture, domain.Communication ,
## domain.Logistics, domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retail, domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Student ant employed, status.Unemployed, domain.Communication ,
## domain.Realestate, domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Consulting , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Economics, domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
resultado_entrenamiento2 <- predict(modelo2, x_entrenamiento)
resultado_prueba2 <- predict(modelo2, x_prueba)
mcre2 <- confusionMatrix(resultado_entrenamiento2, y_entrenamiento)
mcrp2 <- confusionMatrix(resultado_prueba2, y_prueba)
mcre2
## 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
##
mcrp2
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 0 0
## Yes 9 17
##
## Accuracy : 0.6538
## 95% CI : (0.4433, 0.8279)
## No Information Rate : 0.6538
## P-Value [Acc > NIR] : 0.589398
##
## Kappa : 0
##
## Mcnemar's Test P-Value : 0.007661
##
## Sensitivity : 0.0000
## Specificity : 1.0000
## Pos Pred Value : NaN
## Neg Pred Value : 0.6538
## Prevalence : 0.3462
## Detection Rate : 0.0000
## Detection Prevalence : 0.0000
## Balanced Accuracy : 0.5000
##
## 'Positive' Class : No
##
modelo3 <- train(
x = x_entrenamiento, y = y_entrenamiento,
method = "svmPoly",
preProcess = c("scale", "center"),
trControl = trainControl(method="cv", number=10),
tuneGrid = data.frame(degree=1, scale=1, C=1)
)
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Realestate, domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Self-Employed, status.Student ant employed, status.Unemployed,
## domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Consulting , domain.Retail,
## domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Logistics, domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Law,
## domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
resultado_entrenamiento3 <- predict(modelo3, x_entrenamiento)
resultado_prueba3 <- predict(modelo3, x_prueba)
mcre3 <- confusionMatrix(resultado_entrenamiento3, y_entrenamiento)
mcrp3 <- confusionMatrix(resultado_prueba3, y_prueba)
mcre3
## 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
##
mcrp3
## 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
##
modelo4 <- train(
x = x_entrenamiento, y = y_entrenamiento,
method = "rpart",
preProcess = c("scale", "center"),
trControl = trainControl(method="cv", number=10),
tuneLength = 10
)
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Logistics, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retail, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Student ant employed, status.Unemployed,
## domain.Communication , domain.Realestate, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Law,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Consulting , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
resultado_entrenamiento4 <- predict(modelo4, x_entrenamiento)
resultado_prueba4 <- predict(modelo4, x_prueba)
mcre4 <- confusionMatrix(resultado_entrenamiento4, y_entrenamiento)
mcrp4 <- confusionMatrix(resultado_prueba4, y_prueba)
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
##
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(
x = x_entrenamiento, y = y_entrenamiento,
method = "nnet",
preProcess = c("scale", "center"),
trControl = trainControl(method="cv", number=10),
trace = FALSE
)
## Warning in preProcess.default(method = c("scale", "center"), x =
## structure(list(: These variables have zero variances: user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Student ant employed, status.Unemployed, domain.Communication ,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Student ant employed, status.Unemployed, domain.Communication ,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Student ant employed, status.Unemployed, domain.Communication ,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Student ant employed, status.Unemployed, domain.Communication ,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Student ant employed, status.Unemployed, domain.Communication ,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Student ant employed, status.Unemployed, domain.Communication ,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Student ant employed, status.Unemployed, domain.Communication ,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Student ant employed, status.Unemployed, domain.Communication ,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Student ant employed, status.Unemployed, domain.Communication ,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retail, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retail, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retail, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retail, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retail, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retail, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retail, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retail, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retail, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Realestate, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Realestate, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Realestate, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Realestate, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Realestate, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Realestate, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Realestate, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Realestate, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Realestate, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Consulting
## , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Consulting
## , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Consulting
## , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Consulting
## , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Consulting
## , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Consulting
## , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Consulting
## , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Consulting
## , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Consulting
## , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Logistics, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Logistics, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Logistics, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Logistics, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Logistics, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Logistics, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Logistics, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Logistics, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Logistics, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
resultado_entrenamiento5 <- predict(modelo5, x_entrenamiento)
resultado_prueba5 <- predict(modelo5, x_prueba)
mcre5 <- confusionMatrix(resultado_entrenamiento5, y_entrenamiento)
mcrp5 <- confusionMatrix(resultado_prueba5, y_prueba)
mcre5
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 32 2
## Yes 4 69
##
## Accuracy : 0.9439
## 95% CI : (0.8819, 0.9791)
## No Information Rate : 0.6636
## P-Value [Acc > NIR] : 3.021e-12
##
## Kappa : 0.8727
##
## Mcnemar's Test P-Value : 0.6831
##
## Sensitivity : 0.8889
## Specificity : 0.9718
## Pos Pred Value : 0.9412
## Neg Pred Value : 0.9452
## Prevalence : 0.3364
## Detection Rate : 0.2991
## Detection Prevalence : 0.3178
## Balanced Accuracy : 0.9304
##
## 'Positive' Class : No
##
mcrp5
## 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
##
# mtry no puede ser mayor que el número de columnas
p <- ncol(x_entrenamiento)
mtry_vals <- unique(pmin(c(2,4,6), p))
tgrid_rf <- expand.grid(mtry = mtry_vals)
modelo6 <- train(
x = x_entrenamiento, y = y_entrenamiento,
method = "rf",
preProcess = c("scale", "center"),
trControl = trainControl(method="cv", number=10),
tuneGrid = tgrid_rf
)
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Student ant employed, status.Unemployed, domain.Communication ,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Student ant employed, status.Unemployed, domain.Communication ,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Student ant employed, status.Unemployed, domain.Communication ,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Agriculture, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Realestate, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Realestate, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Realestate, domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Hp, user_pcmac.Other,
## status.Retired, status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Consulting , domain.Retail,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Consulting , domain.Retail,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Consulting , domain.Retail,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Logistics,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Logistics,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Law, domain.Logistics,
## domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: user_pcmac.Other, status.Retired,
## status.Unemployed, domain.Communication , domain.Retired
resultado_entrenamiento6 <- predict(modelo6, x_entrenamiento)
resultado_prueba6 <- predict(modelo6, x_prueba)
mcre6 <- confusionMatrix(resultado_entrenamiento6, y_entrenamiento)
mcrp6 <- confusionMatrix(resultado_prueba6, y_prueba)
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
##
mcrp6
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Yes
## No 4 3
## Yes 5 14
##
## Accuracy : 0.6923
## 95% CI : (0.4821, 0.8567)
## No Information Rate : 0.6538
## P-Value [Acc > NIR] : 0.4267
##
## Kappa : 0.2828
##
## Mcnemar's Test P-Value : 0.7237
##
## Sensitivity : 0.4444
## Specificity : 0.8235
## Pos Pred Value : 0.5714
## Neg Pred Value : 0.7368
## Prevalence : 0.3462
## Detection Rate : 0.1538
## Detection Prevalence : 0.2692
## Balanced Accuracy : 0.6340
##
## '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.9813084 0.9065421 0.8037383 0.9439252
## Precisión de prueba 0.5384615 0.6538462 0.5384615 0.5769231 0.5769231
## rf
## Precisión de entrenamiento 0.9813084
## Precisión de prueba 0.6923077
Los modelos mostraron diferencias importantes entre precisión de entrenamiento y precisión de prueba, lo que nos muestra cierto nivel de sobreajuste en algunos casos. Aunque SVM Radial y Random Forest alcanzaron altas precisiones en entrenamiento (cercanas al 98%), su desempeño disminuyó en datos de prueba. El modelo con mejor capacidad de generalización fue Random Forest, al tener la mayor precisión en prueba (69.23%), seguido por SVM Radial (65.38%). En conclusión, el modelo más recomendable para esta base de datos es Random Forest, ya que ofrece el mejor equilibrio entre rendimiento y capacidad predictiva en datos nuevos.