El paquete caret (Clasification and Regression Training) es un paquete integral con una amplia variedad de algoritmos para el aprendizaje automático.
#install.packages("ggplot2") #Gráficas con mejor diseño
library(ggplot2)
#install.packages("lattice") #Crear gráficos
library(lattice)
#install.packages("caret") #Algoritmos de aprendizaje automático
library(caret)
#install.packages("datasets") #Usar la base de datos "Iris"
library(datasets)
#install.packages("DataExplorer") #Exploración de los datos
library(DataExplorer)
#install.packages("kernlab") #Paquete con métodos de aprendizaje automático
library(kernlab)
#install.packages("randomForest") #Paquete para este método de clasificación
library(randomForest)
df <- read.csv("C:\\Users\\mari0\\OneDrive\\Documents\\R Studio\\IA con impacto empresarial\\Modulo 2\\BD\\heart.csv")
summary(df)
## age sex cp trestbps
## Min. :29.00 Min. :0.0000 Min. :0.0000 Min. : 94.0
## 1st Qu.:48.00 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:120.0
## Median :56.00 Median :1.0000 Median :1.0000 Median :130.0
## Mean :54.43 Mean :0.6956 Mean :0.9424 Mean :131.6
## 3rd Qu.:61.00 3rd Qu.:1.0000 3rd Qu.:2.0000 3rd Qu.:140.0
## Max. :77.00 Max. :1.0000 Max. :3.0000 Max. :200.0
## chol fbs restecg thalach
## Min. :126 Min. :0.0000 Min. :0.0000 Min. : 71.0
## 1st Qu.:211 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:132.0
## Median :240 Median :0.0000 Median :1.0000 Median :152.0
## Mean :246 Mean :0.1493 Mean :0.5298 Mean :149.1
## 3rd Qu.:275 3rd Qu.:0.0000 3rd Qu.:1.0000 3rd Qu.:166.0
## Max. :564 Max. :1.0000 Max. :2.0000 Max. :202.0
## exang oldpeak slope ca
## Min. :0.0000 Min. :0.000 Min. :0.000 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.:0.000 1st Qu.:1.000 1st Qu.:0.0000
## Median :0.0000 Median :0.800 Median :1.000 Median :0.0000
## Mean :0.3366 Mean :1.072 Mean :1.385 Mean :0.7541
## 3rd Qu.:1.0000 3rd Qu.:1.800 3rd Qu.:2.000 3rd Qu.:1.0000
## Max. :1.0000 Max. :6.200 Max. :2.000 Max. :4.0000
## thal target
## Min. :0.000 Min. :0.0000
## 1st Qu.:2.000 1st Qu.:0.0000
## Median :2.000 Median :1.0000
## Mean :2.324 Mean :0.5132
## 3rd Qu.:3.000 3rd Qu.:1.0000
## Max. :3.000 Max. :1.0000
str(df)
## 'data.frame': 1025 obs. of 14 variables:
## $ age : int 52 53 70 61 62 58 58 55 46 54 ...
## $ sex : int 1 1 1 1 0 0 1 1 1 1 ...
## $ cp : int 0 0 0 0 0 0 0 0 0 0 ...
## $ trestbps: int 125 140 145 148 138 100 114 160 120 122 ...
## $ chol : int 212 203 174 203 294 248 318 289 249 286 ...
## $ fbs : int 0 1 0 0 1 0 0 0 0 0 ...
## $ restecg : int 1 0 1 1 1 0 2 0 0 0 ...
## $ thalach : int 168 155 125 161 106 122 140 145 144 116 ...
## $ exang : int 0 1 1 0 0 0 0 1 0 1 ...
## $ oldpeak : num 1 3.1 2.6 0 1.9 1 4.4 0.8 0.8 3.2 ...
## $ slope : int 2 0 0 2 1 1 0 1 2 1 ...
## $ ca : int 2 0 0 1 3 0 3 1 0 2 ...
## $ thal : int 3 3 3 3 2 2 1 3 3 2 ...
## $ target : int 0 0 0 0 0 1 0 0 0 0 ...
plot_missing(df)
** NOTA: La variable que queremos predecir debe tener formato de FACTOR.**
df$target <- as.factor(df$target)
df$sex <- as.factor(df$sex)
df$cp <- as.factor(df$cp)
df$fbs <- as.factor(df$fbs)
df$restecg <- as.factor(df$restecg)
df$exang <- as.factor(df$exang)
df$slope <- as.factor(df$slope)
df$ca <- as.factor(df$ca)
df$thal <- as.factor(df$thal)
set.seed(123)
renglones_entrenamiento <- createDataPartition(df$target, 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(target ~ ., data = entrenamiento,
method = "svmLinear", #Cambiar
preProcess=c("scale", "center"),
trControl = trainControl(method = "cv", number = 10), #validación cruzada de 10
tuneGrid = data.frame(C=1) #Cambiar
)
resultado_entrenamiento1 <- predict(modelo1, entrenamiento)
resultado_prueba1 <- predict(modelo1, prueba)
# Matriz de Confusión del Resultado del Entrenamiento 1
mcre1 <- confusionMatrix(resultado_entrenamiento1, entrenamiento$target)
# Matriz de Confusión del Resultado de la Prueba 1
mcrp1 <- confusionMatrix(resultado_prueba1, prueba$target)
modelo2 <- train(target ~ ., data = entrenamiento,
method = "svmRadial", #Cambiar
preProcess=c("scale", "center"),
trControl = trainControl(method = "cv", number = 10), #validación cruzada de 10
tuneGrid = data.frame(sigma=1, C=1) #Cambiar
)
resultado_entrenamiento2 <- predict(modelo2, entrenamiento)
resultado_prueba2 <- predict(modelo2, prueba)
# Matriz de Confusión del Resultado del Entrenamiento 2
mcre2 <- confusionMatrix(resultado_entrenamiento2, entrenamiento$target)
# Matriz de Confusión del Resultado de la Prueba 2
mcrp2 <- confusionMatrix(resultado_prueba2, prueba$target)
modelo3 <- train(target ~ ., data = entrenamiento,
method = "svmPoly", #Cambiar
preProcess=c("scale", "center"),
trControl = trainControl(method = "cv", number = 10), #validación cruzada de 10
tuneGrid = data.frame(degree=1, scale=1, C=1) #Cambiar
)
resultado_entrenamiento3 <- predict(modelo3, entrenamiento)
resultado_prueba3 <- predict(modelo3, prueba)
# Matriz de Confusión del Resultado del Entrenamiento 3
mcre3 <- confusionMatrix(resultado_entrenamiento3, entrenamiento$target)
# Matriz de Confusión del Resultado de la Prueba 3
mcrp3 <- confusionMatrix(resultado_prueba3, prueba$target)
modelo4 <- train(target ~ ., data = entrenamiento,
method = "rpart", #Cambiar
preProcess=c("scale", "center"),
trControl = trainControl(method = "cv", number = 10), #validación cruzada de 10
tuneLength = 10 #Cambiar
)
resultado_entrenamiento4 <- predict(modelo4, entrenamiento)
resultado_prueba4 <- predict(modelo4, prueba)
# Matriz de Confusión del Resultado del Entrenamiento 4
mcre4 <- confusionMatrix(resultado_entrenamiento4, entrenamiento$target)
# Matriz de Confusión del Resultado de la Prueba 4
mcrp4 <- confusionMatrix(resultado_prueba4, prueba$target)
modelo5 <- train(target ~ ., data = entrenamiento,
method = "nnet", #Cambiar
preProcess=c("scale", "center"),
trControl = trainControl(method = "cv", number = 10) #validación cruzada de 10
#Cambiar
)
## # weights: 25
## initial value 534.715512
## iter 10 value 223.363750
## iter 20 value 209.869954
## iter 30 value 198.570677
## iter 40 value 177.540547
## iter 50 value 177.395285
## final value 177.395138
## converged
## # weights: 73
## initial value 572.745922
## iter 10 value 194.246195
## iter 20 value 152.191711
## iter 30 value 126.614638
## iter 40 value 92.543694
## iter 50 value 78.746555
## iter 60 value 67.755667
## iter 70 value 66.078737
## iter 80 value 64.921139
## iter 90 value 64.707146
## iter 100 value 64.596336
## final value 64.596336
## stopped after 100 iterations
## # weights: 121
## initial value 552.772751
## iter 10 value 190.415083
## iter 20 value 118.504550
## iter 30 value 91.508326
## iter 40 value 85.984039
## iter 50 value 82.755252
## iter 60 value 82.213884
## iter 70 value 81.589103
## iter 80 value 81.273209
## iter 90 value 81.108966
## iter 100 value 80.984541
## final value 80.984541
## stopped after 100 iterations
## # weights: 25
## initial value 532.758179
## iter 10 value 298.830332
## iter 20 value 250.160990
## iter 30 value 222.766098
## iter 40 value 213.792124
## iter 50 value 211.150852
## iter 60 value 210.967881
## iter 70 value 210.947310
## final value 210.941946
## converged
## # weights: 73
## initial value 616.455260
## iter 10 value 220.367230
## iter 20 value 178.688409
## iter 30 value 161.690178
## iter 40 value 154.018812
## iter 50 value 149.620010
## iter 60 value 147.906537
## iter 70 value 146.746374
## iter 80 value 142.285114
## iter 90 value 140.188410
## iter 100 value 140.023100
## final value 140.023100
## stopped after 100 iterations
## # weights: 121
## initial value 545.022132
## iter 10 value 211.260881
## iter 20 value 170.581921
## iter 30 value 139.648122
## iter 40 value 117.500230
## iter 50 value 109.681950
## iter 60 value 107.651362
## iter 70 value 102.899352
## iter 80 value 96.582371
## iter 90 value 94.576403
## iter 100 value 92.591197
## final value 92.591197
## stopped after 100 iterations
## # weights: 25
## initial value 537.456314
## iter 10 value 240.443521
## iter 20 value 222.687610
## iter 30 value 214.577901
## iter 40 value 183.448119
## iter 50 value 175.384834
## iter 60 value 173.731786
## iter 70 value 172.667693
## iter 80 value 172.619775
## iter 90 value 172.461230
## iter 100 value 172.343854
## final value 172.343854
## stopped after 100 iterations
## # weights: 73
## initial value 515.560933
## iter 10 value 204.949223
## iter 20 value 159.397184
## iter 30 value 147.088050
## iter 40 value 139.616109
## iter 50 value 136.316037
## iter 60 value 130.467866
## iter 70 value 128.043107
## iter 80 value 127.993430
## iter 90 value 127.953418
## iter 100 value 127.560573
## final value 127.560573
## stopped after 100 iterations
## # weights: 121
## initial value 485.119713
## iter 10 value 176.720126
## iter 20 value 113.262373
## iter 30 value 79.493830
## iter 40 value 63.600350
## iter 50 value 57.875444
## iter 60 value 55.596528
## iter 70 value 55.118518
## iter 80 value 54.482878
## iter 90 value 53.590291
## iter 100 value 52.904660
## final value 52.904660
## stopped after 100 iterations
## # weights: 25
## initial value 524.413808
## iter 10 value 295.569975
## iter 20 value 217.571715
## iter 30 value 194.948517
## iter 40 value 187.872114
## iter 50 value 181.724110
## iter 60 value 174.102684
## iter 70 value 173.776396
## iter 80 value 171.829884
## iter 90 value 170.111166
## iter 100 value 169.517958
## final value 169.517958
## stopped after 100 iterations
## # weights: 73
## initial value 524.120998
## iter 10 value 212.471264
## iter 20 value 172.690059
## iter 30 value 140.941742
## iter 40 value 126.279258
## iter 50 value 113.987877
## iter 60 value 110.974564
## iter 70 value 109.794101
## iter 80 value 108.107517
## iter 90 value 107.380018
## iter 100 value 106.518703
## final value 106.518703
## stopped after 100 iterations
## # weights: 121
## initial value 547.059822
## iter 10 value 221.311315
## iter 20 value 166.044853
## iter 30 value 129.461313
## iter 40 value 114.292234
## iter 50 value 111.550705
## iter 60 value 108.587919
## iter 70 value 107.733316
## iter 80 value 107.558550
## iter 90 value 107.313274
## iter 100 value 107.278863
## final value 107.278863
## stopped after 100 iterations
## # weights: 25
## initial value 540.296279
## iter 10 value 297.914924
## iter 20 value 236.444748
## iter 30 value 207.296704
## iter 40 value 203.111193
## iter 50 value 203.077087
## final value 203.076976
## converged
## # weights: 73
## initial value 536.723212
## iter 10 value 206.418161
## iter 20 value 175.663989
## iter 30 value 153.396351
## iter 40 value 146.907331
## iter 50 value 136.384178
## iter 60 value 132.605976
## iter 70 value 131.960333
## iter 80 value 131.874042
## iter 90 value 131.872685
## final value 131.872539
## converged
## # weights: 121
## initial value 551.272696
## iter 10 value 189.097449
## iter 20 value 147.268490
## iter 30 value 122.671410
## iter 40 value 107.268407
## iter 50 value 100.484561
## iter 60 value 92.649410
## iter 70 value 83.206523
## iter 80 value 76.720238
## iter 90 value 74.042871
## iter 100 value 72.866357
## final value 72.866357
## stopped after 100 iterations
## # weights: 25
## initial value 515.890725
## iter 10 value 296.723613
## iter 20 value 223.065052
## iter 30 value 215.950306
## iter 40 value 210.458340
## iter 50 value 205.704425
## iter 60 value 194.387688
## iter 70 value 193.372333
## iter 80 value 191.829666
## iter 90 value 190.579366
## iter 100 value 190.568937
## final value 190.568937
## stopped after 100 iterations
## # weights: 73
## initial value 563.534438
## iter 10 value 246.941180
## iter 20 value 183.618271
## iter 30 value 141.671120
## iter 40 value 120.346910
## iter 50 value 115.625041
## iter 60 value 112.064574
## iter 70 value 107.948783
## iter 80 value 107.686302
## iter 90 value 107.155231
## iter 100 value 106.341384
## final value 106.341384
## stopped after 100 iterations
## # weights: 121
## initial value 513.305500
## iter 10 value 150.795079
## iter 20 value 88.198039
## iter 30 value 62.370165
## iter 40 value 52.342423
## iter 50 value 49.453440
## iter 60 value 46.372881
## iter 70 value 44.955872
## iter 80 value 42.525007
## iter 90 value 41.403307
## iter 100 value 41.199317
## final value 41.199317
## stopped after 100 iterations
## # weights: 25
## initial value 530.576334
## iter 10 value 273.812296
## iter 20 value 230.362649
## iter 30 value 213.487875
## iter 40 value 190.047267
## iter 50 value 184.808654
## iter 60 value 184.797714
## final value 184.797642
## converged
## # weights: 73
## initial value 524.549909
## iter 10 value 224.223441
## iter 20 value 171.688857
## iter 30 value 145.659287
## iter 40 value 133.859118
## iter 50 value 131.235786
## iter 60 value 129.271180
## iter 70 value 128.287737
## iter 80 value 127.968055
## iter 90 value 127.651321
## iter 100 value 127.131750
## final value 127.131750
## stopped after 100 iterations
## # weights: 121
## initial value 561.614928
## iter 10 value 168.924128
## iter 20 value 121.510553
## iter 30 value 93.639358
## iter 40 value 84.681283
## iter 50 value 78.413660
## iter 60 value 76.552322
## iter 70 value 75.446137
## iter 80 value 75.248354
## iter 90 value 75.063710
## iter 100 value 75.031249
## final value 75.031249
## stopped after 100 iterations
## # weights: 25
## initial value 512.561986
## iter 10 value 302.881228
## iter 20 value 260.945723
## iter 30 value 216.968473
## iter 40 value 206.127158
## iter 50 value 200.709312
## iter 60 value 200.608473
## iter 70 value 200.544339
## final value 200.537956
## converged
## # weights: 73
## initial value 545.405531
## iter 10 value 215.790810
## iter 20 value 185.017753
## iter 30 value 158.774358
## iter 40 value 144.323270
## iter 50 value 135.396610
## iter 60 value 132.940858
## iter 70 value 131.698254
## iter 80 value 131.264332
## iter 90 value 131.163203
## iter 100 value 131.084761
## final value 131.084761
## stopped after 100 iterations
## # weights: 121
## initial value 671.606874
## iter 10 value 182.491812
## iter 20 value 149.613896
## iter 30 value 138.626112
## iter 40 value 125.912307
## iter 50 value 116.779793
## iter 60 value 114.292329
## iter 70 value 99.436411
## iter 80 value 94.826645
## iter 90 value 90.191510
## iter 100 value 88.029433
## final value 88.029433
## stopped after 100 iterations
## # weights: 25
## initial value 528.043339
## iter 10 value 244.870616
## iter 20 value 201.635439
## iter 30 value 188.794163
## iter 40 value 173.448760
## iter 50 value 172.059521
## iter 60 value 171.916033
## iter 70 value 171.625049
## iter 80 value 171.576975
## iter 90 value 171.545543
## iter 100 value 171.493613
## final value 171.493613
## stopped after 100 iterations
## # weights: 73
## initial value 657.506520
## iter 10 value 190.289177
## iter 20 value 144.672084
## iter 30 value 129.545717
## iter 40 value 110.468785
## iter 50 value 104.403905
## iter 60 value 102.945795
## iter 70 value 102.473290
## iter 80 value 102.108009
## iter 90 value 101.902328
## iter 100 value 100.896297
## final value 100.896297
## stopped after 100 iterations
## # weights: 121
## initial value 526.225241
## iter 10 value 208.370011
## iter 20 value 123.114124
## iter 30 value 76.897954
## iter 40 value 58.387977
## iter 50 value 47.700504
## iter 60 value 44.996865
## iter 70 value 44.251733
## iter 80 value 43.823835
## iter 90 value 35.444655
## iter 100 value 31.988866
## final value 31.988866
## stopped after 100 iterations
## # weights: 25
## initial value 496.906661
## iter 10 value 227.927278
## iter 20 value 204.826169
## iter 30 value 195.942716
## iter 40 value 170.735448
## iter 50 value 159.636670
## iter 60 value 159.571738
## iter 70 value 159.564456
## iter 80 value 159.561491
## iter 90 value 159.561266
## iter 100 value 159.561047
## final value 159.561047
## stopped after 100 iterations
## # weights: 73
## initial value 534.209669
## iter 10 value 199.713573
## iter 20 value 151.862104
## iter 30 value 130.706034
## iter 40 value 121.202323
## iter 50 value 114.706192
## iter 60 value 111.864043
## iter 70 value 107.815705
## iter 80 value 106.800457
## iter 90 value 106.704295
## final value 106.703846
## converged
## # weights: 121
## initial value 513.609801
## iter 10 value 127.826039
## iter 20 value 62.397927
## iter 30 value 48.923657
## iter 40 value 44.048908
## iter 50 value 42.678562
## iter 60 value 41.025312
## iter 70 value 39.196341
## iter 80 value 38.718559
## iter 90 value 38.448806
## iter 100 value 37.497415
## final value 37.497415
## stopped after 100 iterations
## # weights: 25
## initial value 518.151021
## iter 10 value 318.678096
## iter 20 value 241.945332
## iter 30 value 229.638357
## iter 40 value 215.367969
## iter 50 value 206.469115
## iter 60 value 206.251369
## final value 206.251364
## converged
## # weights: 73
## initial value 530.833849
## iter 10 value 338.128042
## iter 20 value 270.513062
## iter 30 value 221.510693
## iter 40 value 178.916613
## iter 50 value 158.169247
## iter 60 value 154.261671
## iter 70 value 153.263984
## iter 80 value 152.546474
## iter 90 value 151.021312
## iter 100 value 150.566527
## final value 150.566527
## stopped after 100 iterations
## # weights: 121
## initial value 565.658486
## iter 10 value 280.189051
## iter 20 value 196.660781
## iter 30 value 143.227586
## iter 40 value 117.647916
## iter 50 value 103.919585
## iter 60 value 94.168347
## iter 70 value 86.161121
## iter 80 value 81.207663
## iter 90 value 78.711033
## iter 100 value 77.422134
## final value 77.422134
## stopped after 100 iterations
## # weights: 25
## initial value 558.963055
## iter 10 value 299.302652
## iter 20 value 227.724495
## iter 30 value 214.949887
## iter 40 value 211.230070
## iter 50 value 211.113771
## iter 60 value 207.671485
## iter 70 value 207.470557
## iter 80 value 207.428745
## iter 90 value 207.424099
## iter 100 value 207.423016
## final value 207.423016
## stopped after 100 iterations
## # weights: 73
## initial value 555.065998
## iter 10 value 180.867594
## iter 20 value 127.554671
## iter 30 value 97.180965
## iter 40 value 87.305561
## iter 50 value 85.099076
## iter 60 value 84.642955
## iter 70 value 84.184183
## iter 80 value 83.930768
## iter 90 value 83.197667
## iter 100 value 82.844331
## final value 82.844331
## stopped after 100 iterations
## # weights: 121
## initial value 535.930796
## iter 10 value 172.540069
## iter 20 value 106.929591
## iter 30 value 71.405229
## iter 40 value 53.528710
## iter 50 value 49.097767
## iter 60 value 41.476905
## iter 70 value 39.775296
## iter 80 value 32.149589
## iter 90 value 24.982120
## iter 100 value 23.739887
## final value 23.739887
## stopped after 100 iterations
## # weights: 25
## initial value 514.080659
## iter 10 value 268.555888
## iter 20 value 227.994652
## iter 30 value 213.904593
## iter 40 value 205.291511
## iter 50 value 196.076685
## iter 60 value 192.252637
## iter 70 value 189.517954
## iter 80 value 185.095985
## iter 90 value 176.724053
## iter 100 value 176.683031
## final value 176.683031
## stopped after 100 iterations
## # weights: 73
## initial value 510.682499
## iter 10 value 179.887314
## iter 20 value 127.635941
## iter 30 value 106.375525
## iter 40 value 97.626447
## iter 50 value 89.293499
## iter 60 value 87.930155
## iter 70 value 87.918810
## final value 87.918765
## converged
## # weights: 121
## initial value 534.557153
## iter 10 value 192.055188
## iter 20 value 106.471874
## iter 30 value 68.157389
## iter 40 value 60.303054
## iter 50 value 57.888174
## iter 60 value 56.108330
## iter 70 value 52.631391
## iter 80 value 52.311097
## iter 90 value 51.221122
## iter 100 value 50.179478
## final value 50.179478
## stopped after 100 iterations
## # weights: 25
## initial value 586.762145
## iter 10 value 279.756970
## iter 20 value 238.839745
## iter 30 value 222.078970
## iter 40 value 219.375113
## iter 50 value 218.660685
## iter 60 value 218.505140
## iter 70 value 213.041871
## iter 80 value 212.591090
## iter 90 value 212.541483
## final value 212.541418
## converged
## # weights: 73
## initial value 537.824697
## iter 10 value 222.473142
## iter 20 value 195.134011
## iter 30 value 169.929303
## iter 40 value 151.462068
## iter 50 value 143.005184
## iter 60 value 142.089657
## iter 70 value 141.677336
## iter 80 value 141.550118
## iter 90 value 141.535187
## iter 100 value 141.534488
## final value 141.534488
## stopped after 100 iterations
## # weights: 121
## initial value 523.052725
## iter 10 value 234.813273
## iter 20 value 151.115173
## iter 30 value 116.206558
## iter 40 value 105.017422
## iter 50 value 97.891829
## iter 60 value 93.755609
## iter 70 value 91.023653
## iter 80 value 89.234505
## iter 90 value 88.982824
## iter 100 value 88.826263
## final value 88.826263
## stopped after 100 iterations
## # weights: 25
## initial value 577.005987
## iter 10 value 243.205547
## iter 20 value 210.027134
## iter 30 value 198.598464
## iter 40 value 176.594694
## iter 50 value 175.697600
## iter 60 value 175.370267
## iter 70 value 175.271829
## iter 80 value 175.258453
## iter 90 value 175.246010
## iter 100 value 175.228476
## final value 175.228476
## stopped after 100 iterations
## # weights: 73
## initial value 567.383546
## iter 10 value 217.054749
## iter 20 value 163.272972
## iter 30 value 148.189837
## iter 40 value 142.441783
## iter 50 value 140.360317
## iter 60 value 138.386061
## iter 70 value 137.306698
## iter 80 value 137.039418
## iter 90 value 131.652550
## iter 100 value 131.544671
## final value 131.544671
## stopped after 100 iterations
## # weights: 121
## initial value 580.015084
## iter 10 value 175.219350
## iter 20 value 83.818059
## iter 30 value 51.814087
## iter 40 value 44.824881
## iter 50 value 41.480529
## iter 60 value 40.473464
## iter 70 value 40.042688
## iter 80 value 39.753456
## iter 90 value 39.568942
## iter 100 value 39.255546
## final value 39.255546
## stopped after 100 iterations
## # weights: 25
## initial value 519.997176
## iter 10 value 337.293526
## iter 20 value 237.014623
## iter 30 value 215.088561
## iter 40 value 212.545772
## iter 50 value 204.735089
## iter 60 value 192.552718
## iter 70 value 175.678167
## iter 80 value 174.270310
## iter 90 value 161.104875
## iter 100 value 159.920089
## final value 159.920089
## stopped after 100 iterations
## # weights: 73
## initial value 532.030675
## iter 10 value 266.200230
## iter 20 value 179.194837
## iter 30 value 146.521497
## iter 40 value 136.482376
## iter 50 value 131.371840
## iter 60 value 126.793256
## iter 70 value 118.170122
## iter 80 value 116.165280
## iter 90 value 113.316185
## iter 100 value 110.244552
## final value 110.244552
## stopped after 100 iterations
## # weights: 121
## initial value 506.627907
## iter 10 value 192.330945
## iter 20 value 127.738074
## iter 30 value 86.905957
## iter 40 value 67.978807
## iter 50 value 64.471510
## iter 60 value 62.819121
## iter 70 value 62.368601
## iter 80 value 62.344584
## iter 90 value 62.317026
## iter 100 value 62.005964
## final value 62.005964
## stopped after 100 iterations
## # weights: 25
## initial value 531.998317
## iter 10 value 316.540442
## iter 20 value 259.026321
## iter 30 value 232.489630
## iter 40 value 209.374541
## iter 50 value 204.875161
## iter 60 value 204.688415
## iter 70 value 204.636980
## final value 204.634356
## converged
## # weights: 73
## initial value 513.857827
## iter 10 value 260.197927
## iter 20 value 206.205019
## iter 30 value 178.847820
## iter 40 value 156.926288
## iter 50 value 146.791836
## iter 60 value 142.252923
## iter 70 value 139.017873
## iter 80 value 137.699279
## iter 90 value 137.463740
## iter 100 value 137.444569
## final value 137.444569
## stopped after 100 iterations
## # weights: 121
## initial value 531.701345
## iter 10 value 203.279757
## iter 20 value 132.176512
## iter 30 value 99.361285
## iter 40 value 80.392178
## iter 50 value 73.665138
## iter 60 value 71.350142
## iter 70 value 69.437480
## iter 80 value 68.213945
## iter 90 value 67.502894
## iter 100 value 66.286726
## final value 66.286726
## stopped after 100 iterations
## # weights: 25
## initial value 520.025084
## iter 10 value 293.197464
## iter 20 value 238.167433
## iter 30 value 216.126975
## iter 40 value 202.923973
## iter 50 value 189.376344
## iter 60 value 188.782848
## iter 70 value 188.586691
## iter 80 value 188.550752
## iter 90 value 188.533234
## iter 100 value 188.511786
## final value 188.511786
## stopped after 100 iterations
## # weights: 73
## initial value 549.276565
## iter 10 value 202.424577
## iter 20 value 120.498977
## iter 30 value 100.218470
## iter 40 value 85.569796
## iter 50 value 82.218717
## iter 60 value 80.805077
## iter 70 value 76.670669
## iter 80 value 76.100468
## iter 90 value 75.950664
## iter 100 value 75.837156
## final value 75.837156
## stopped after 100 iterations
## # weights: 121
## initial value 486.801109
## iter 10 value 162.586173
## iter 20 value 92.472285
## iter 30 value 63.280457
## iter 40 value 58.375504
## iter 50 value 56.479074
## iter 60 value 56.166020
## iter 70 value 56.034755
## iter 80 value 49.839032
## iter 90 value 47.800762
## iter 100 value 47.738452
## final value 47.738452
## stopped after 100 iterations
## # weights: 25
## initial value 515.321427
## iter 10 value 374.746642
## iter 20 value 264.816557
## iter 30 value 217.620535
## iter 40 value 199.793830
## iter 50 value 172.772090
## iter 60 value 168.882395
## iter 70 value 168.783296
## iter 80 value 168.738056
## iter 90 value 168.722188
## iter 100 value 168.714845
## final value 168.714845
## stopped after 100 iterations
## # weights: 73
## initial value 572.217448
## iter 10 value 254.080902
## iter 20 value 186.652289
## iter 30 value 163.244201
## iter 40 value 141.023448
## iter 50 value 134.881444
## iter 60 value 132.591327
## iter 70 value 125.242198
## iter 80 value 125.082199
## iter 90 value 125.032124
## iter 100 value 125.004077
## final value 125.004077
## stopped after 100 iterations
## # weights: 121
## initial value 526.567787
## iter 10 value 177.428831
## iter 20 value 109.604681
## iter 30 value 80.034681
## iter 40 value 71.246729
## iter 50 value 67.295835
## iter 60 value 61.091073
## iter 70 value 57.646852
## iter 80 value 56.382133
## iter 90 value 55.321039
## iter 100 value 54.170818
## final value 54.170818
## stopped after 100 iterations
## # weights: 25
## initial value 510.269611
## iter 10 value 240.884378
## iter 20 value 221.021402
## iter 30 value 213.662528
## iter 40 value 212.891130
## final value 212.890763
## converged
## # weights: 73
## initial value 633.717883
## iter 10 value 335.115868
## iter 20 value 221.363186
## iter 30 value 186.382241
## iter 40 value 154.570270
## iter 50 value 141.029164
## iter 60 value 133.763365
## iter 70 value 130.569600
## iter 80 value 125.288191
## iter 90 value 124.408629
## iter 100 value 124.269476
## final value 124.269476
## stopped after 100 iterations
## # weights: 121
## initial value 519.420760
## iter 10 value 202.494150
## iter 20 value 153.513345
## iter 30 value 132.994726
## iter 40 value 125.035358
## iter 50 value 122.480473
## iter 60 value 121.654446
## iter 70 value 121.533779
## iter 80 value 121.415922
## iter 90 value 118.241332
## iter 100 value 108.877918
## final value 108.877918
## stopped after 100 iterations
## # weights: 25
## initial value 534.337762
## iter 10 value 304.298241
## iter 20 value 269.384794
## iter 30 value 247.819230
## iter 40 value 235.887302
## iter 50 value 223.871379
## iter 60 value 221.359784
## iter 70 value 218.882279
## iter 80 value 218.841898
## iter 90 value 218.835967
## iter 100 value 218.835073
## final value 218.835073
## stopped after 100 iterations
## # weights: 73
## initial value 545.502747
## iter 10 value 285.531002
## iter 20 value 222.690559
## iter 30 value 178.709869
## iter 40 value 169.416660
## iter 50 value 161.293922
## iter 60 value 154.744867
## iter 70 value 151.961957
## iter 80 value 151.707400
## iter 90 value 151.489054
## iter 100 value 148.683822
## final value 148.683822
## stopped after 100 iterations
## # weights: 121
## initial value 546.052860
## iter 10 value 208.491524
## iter 20 value 116.493820
## iter 30 value 60.958446
## iter 40 value 45.114528
## iter 50 value 39.890971
## iter 60 value 34.546262
## iter 70 value 31.457760
## iter 80 value 28.161345
## iter 90 value 27.063840
## iter 100 value 26.695138
## final value 26.695138
## stopped after 100 iterations
## # weights: 25
## initial value 514.188818
## iter 10 value 284.843848
## iter 20 value 241.746632
## iter 30 value 226.575339
## iter 40 value 216.855770
## iter 50 value 213.619677
## iter 60 value 208.142256
## iter 70 value 206.641634
## iter 80 value 200.500824
## iter 90 value 195.762697
## iter 100 value 195.634168
## final value 195.634168
## stopped after 100 iterations
## # weights: 73
## initial value 507.590751
## iter 10 value 204.139765
## iter 20 value 151.372138
## iter 30 value 128.860421
## iter 40 value 115.145026
## iter 50 value 110.394294
## iter 60 value 108.504177
## iter 70 value 99.298406
## iter 80 value 97.902353
## iter 90 value 97.071562
## iter 100 value 96.782485
## final value 96.782485
## stopped after 100 iterations
## # weights: 121
## initial value 642.257183
## iter 10 value 177.785884
## iter 20 value 113.151299
## iter 30 value 80.971671
## iter 40 value 72.881241
## iter 50 value 70.038134
## iter 60 value 69.593229
## iter 70 value 69.552396
## iter 80 value 69.550653
## iter 90 value 69.549159
## iter 100 value 69.548639
## final value 69.548639
## stopped after 100 iterations
## # weights: 25
## initial value 493.834895
## iter 10 value 296.809643
## iter 20 value 232.191490
## iter 30 value 213.748731
## iter 40 value 211.396039
## iter 50 value 211.133742
## iter 60 value 211.132134
## iter 70 value 211.132070
## final value 211.132045
## converged
## # weights: 73
## initial value 499.668010
## iter 10 value 195.434887
## iter 20 value 177.953076
## iter 30 value 169.915107
## iter 40 value 165.354536
## iter 50 value 163.766019
## iter 60 value 163.196369
## iter 70 value 163.147981
## iter 80 value 163.143525
## final value 163.143362
## converged
## # weights: 121
## initial value 659.457381
## iter 10 value 221.448783
## iter 20 value 160.962283
## iter 30 value 130.930886
## iter 40 value 110.781236
## iter 50 value 105.351200
## iter 60 value 102.198898
## iter 70 value 99.486816
## iter 80 value 92.378229
## iter 90 value 83.236206
## iter 100 value 81.571272
## final value 81.571272
## stopped after 100 iterations
## # weights: 25
## initial value 541.077503
## iter 10 value 274.109078
## iter 20 value 241.264534
## iter 30 value 215.108242
## iter 40 value 203.156383
## iter 50 value 183.714258
## iter 60 value 183.349988
## iter 70 value 183.230116
## iter 80 value 183.183624
## iter 90 value 183.143481
## iter 100 value 183.050446
## final value 183.050446
## stopped after 100 iterations
## # weights: 73
## initial value 523.529199
## iter 10 value 207.785244
## iter 20 value 152.316322
## iter 30 value 127.302669
## iter 40 value 123.506949
## iter 50 value 120.328963
## iter 60 value 112.974902
## iter 70 value 109.949303
## iter 80 value 106.229783
## iter 90 value 104.356212
## iter 100 value 103.827350
## final value 103.827350
## stopped after 100 iterations
## # weights: 121
## initial value 482.884400
## iter 10 value 174.096457
## iter 20 value 119.073191
## iter 30 value 81.497925
## iter 40 value 76.493081
## iter 50 value 75.006680
## iter 60 value 74.324558
## iter 70 value 72.964427
## iter 80 value 72.187138
## iter 90 value 71.731750
## iter 100 value 71.594790
## final value 71.594790
## stopped after 100 iterations
## # weights: 25
## initial value 536.081896
## iter 10 value 276.490457
## iter 20 value 203.553763
## iter 30 value 186.245891
## iter 40 value 173.240115
## iter 50 value 168.305256
## iter 60 value 168.268019
## final value 168.267957
## converged
## # weights: 73
## initial value 534.842360
## iter 10 value 204.487422
## iter 20 value 163.482965
## iter 30 value 142.077628
## iter 40 value 130.803010
## iter 50 value 120.021725
## iter 60 value 111.420325
## iter 70 value 111.207750
## iter 80 value 111.202433
## final value 111.202337
## converged
## # weights: 121
## initial value 542.961146
## iter 10 value 166.950905
## iter 20 value 91.296277
## iter 30 value 69.961984
## iter 40 value 62.758711
## iter 50 value 59.420609
## iter 60 value 57.038624
## iter 70 value 55.251056
## iter 80 value 54.270606
## iter 90 value 53.959923
## iter 100 value 53.927938
## final value 53.927938
## stopped after 100 iterations
## # weights: 25
## initial value 515.267926
## iter 10 value 246.345973
## iter 20 value 213.836030
## iter 30 value 208.739181
## iter 40 value 204.212142
## iter 50 value 204.105596
## final value 204.105120
## converged
## # weights: 73
## initial value 625.309381
## iter 10 value 264.146252
## iter 20 value 217.948834
## iter 30 value 198.883808
## iter 40 value 176.291449
## iter 50 value 166.051322
## iter 60 value 164.630502
## iter 70 value 164.405111
## iter 80 value 163.375309
## iter 90 value 163.154796
## final value 163.154530
## converged
## # weights: 121
## initial value 599.183888
## iter 10 value 236.624956
## iter 20 value 167.261292
## iter 30 value 128.163768
## iter 40 value 114.274397
## iter 50 value 110.065972
## iter 60 value 97.949946
## iter 70 value 93.781613
## iter 80 value 93.222554
## iter 90 value 93.188822
## iter 100 value 93.185487
## final value 93.185487
## stopped after 100 iterations
## # weights: 25
## initial value 561.034656
## iter 10 value 258.618270
## iter 20 value 212.124442
## iter 30 value 194.052153
## iter 40 value 177.370931
## iter 50 value 174.933004
## iter 60 value 174.698747
## iter 70 value 174.651941
## iter 80 value 174.644548
## iter 90 value 172.886192
## iter 100 value 172.443430
## final value 172.443430
## stopped after 100 iterations
## # weights: 73
## initial value 552.988008
## iter 10 value 221.226391
## iter 20 value 177.487820
## iter 30 value 165.108687
## iter 40 value 156.678674
## iter 50 value 134.414061
## iter 60 value 124.006524
## iter 70 value 123.304463
## iter 80 value 123.174838
## iter 90 value 122.351418
## iter 100 value 122.019551
## final value 122.019551
## stopped after 100 iterations
## # weights: 121
## initial value 655.149948
## iter 10 value 215.334889
## iter 20 value 148.191549
## iter 30 value 100.220154
## iter 40 value 78.203750
## iter 50 value 59.669982
## iter 60 value 53.887870
## iter 70 value 50.365589
## iter 80 value 49.623528
## iter 90 value 49.427863
## iter 100 value 48.981994
## final value 48.981994
## stopped after 100 iterations
## # weights: 25
## initial value 521.395089
## iter 10 value 298.188677
## iter 20 value 227.343413
## iter 30 value 207.160393
## iter 40 value 193.771924
## iter 50 value 175.744701
## iter 60 value 174.513642
## iter 70 value 174.439729
## iter 80 value 174.417240
## iter 90 value 174.412429
## iter 100 value 174.411093
## final value 174.411093
## stopped after 100 iterations
## # weights: 73
## initial value 542.939486
## iter 10 value 201.122631
## iter 20 value 152.103509
## iter 30 value 122.539904
## iter 40 value 112.992128
## iter 50 value 111.537628
## iter 60 value 111.425610
## iter 70 value 111.417146
## iter 80 value 111.416119
## iter 90 value 111.415499
## iter 100 value 111.414872
## final value 111.414872
## stopped after 100 iterations
## # weights: 121
## initial value 505.063995
## iter 10 value 195.179821
## iter 20 value 138.949242
## iter 30 value 105.517771
## iter 40 value 95.531611
## iter 50 value 93.449423
## iter 60 value 91.974573
## iter 70 value 91.567722
## iter 80 value 91.023346
## iter 90 value 90.132920
## iter 100 value 89.713256
## final value 89.713256
## stopped after 100 iterations
## # weights: 25
## initial value 559.491374
## iter 10 value 236.028240
## iter 20 value 221.230015
## iter 30 value 215.652727
## iter 40 value 210.407669
## iter 50 value 208.772030
## iter 60 value 208.683838
## iter 60 value 208.683837
## iter 60 value 208.683837
## final value 208.683837
## converged
## # weights: 73
## initial value 579.569202
## iter 10 value 241.235821
## iter 20 value 201.161203
## iter 30 value 160.408181
## iter 40 value 150.538191
## iter 50 value 145.079949
## iter 60 value 143.857389
## iter 70 value 142.063201
## iter 80 value 132.961482
## iter 90 value 127.572778
## iter 100 value 125.252312
## final value 125.252312
## stopped after 100 iterations
## # weights: 121
## initial value 560.419386
## iter 10 value 183.624095
## iter 20 value 140.774385
## iter 30 value 130.152412
## iter 40 value 122.745435
## iter 50 value 118.598039
## iter 60 value 115.153661
## iter 70 value 109.489112
## iter 80 value 107.441487
## iter 90 value 102.719389
## iter 100 value 91.863748
## final value 91.863748
## stopped after 100 iterations
## # weights: 25
## initial value 488.627550
## iter 10 value 312.999827
## iter 20 value 272.858216
## iter 30 value 265.197504
## iter 40 value 262.641016
## iter 50 value 259.691543
## iter 60 value 252.911499
## iter 70 value 252.688698
## iter 80 value 252.578613
## iter 90 value 248.992990
## iter 100 value 248.958950
## final value 248.958950
## stopped after 100 iterations
## # weights: 73
## initial value 712.924277
## iter 10 value 256.041194
## iter 20 value 178.773677
## iter 30 value 136.959333
## iter 40 value 114.991123
## iter 50 value 110.118785
## iter 60 value 103.324028
## iter 70 value 100.700438
## iter 80 value 100.123497
## iter 90 value 98.877298
## iter 100 value 97.810751
## final value 97.810751
## stopped after 100 iterations
## # weights: 121
## initial value 516.686136
## iter 10 value 195.120076
## iter 20 value 95.899424
## iter 30 value 58.357049
## iter 40 value 42.613375
## iter 50 value 40.748384
## iter 60 value 40.057328
## iter 70 value 39.877527
## iter 80 value 39.658279
## iter 90 value 39.542782
## iter 100 value 39.507586
## final value 39.507586
## stopped after 100 iterations
## # weights: 121
## initial value 594.845601
## iter 10 value 201.099983
## iter 20 value 145.716833
## iter 30 value 122.488082
## iter 40 value 108.993378
## iter 50 value 100.363507
## iter 60 value 92.713815
## iter 70 value 89.727722
## iter 80 value 88.625205
## iter 90 value 87.353123
## iter 100 value 86.757997
## final value 86.757997
## stopped after 100 iterations
resultado_entrenamiento5 <- predict(modelo5, entrenamiento)
resultado_prueba5 <- predict(modelo5, prueba)
# Matriz de Confusión del Resultado del Entrenamiento 5
mcre5 <- confusionMatrix(resultado_entrenamiento5, entrenamiento$target)
# Matriz de Confusión del Resultado de la Prueba 5
mcrp5 <- confusionMatrix(resultado_prueba5, prueba$target)
modelo6 <- train(target ~ ., data = entrenamiento,
method = "rf", #Cambiar
preProcess=c("scale", "center"),
trControl = trainControl(method = "cv", number = 10), #validación cruzada de 10
tuneGrid = expand.grid(mtry = c(2,4,6))#Cambiar
)
resultado_entrenamiento6 <- predict(modelo6, entrenamiento)
resultado_prueba6 <- predict(modelo6, prueba)
# Matriz de Confusión del Resultado del Entrenamiento 6
mcre6 <- confusionMatrix(resultado_entrenamiento6, entrenamiento$target)
# Matriz de Confusión del Resultado de la Prueba 6
mcrp6 <- confusionMatrix(resultado_prueba6, prueba$target)
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 rf
## Precisión de Entrenamiento 0.8952497 1 0.8952497 0.8745432 0.9866017 1
## Precisión de Prueba 0.8921569 1 0.8921569 0.8431373 1.0000000 1
El modelo con el método de bosques aleatorios (rf) y máquina de vectores de soporte radial svmRadial presentan un sobre ajuste, ya que tienen una alta precisión en entrenamiento y alta en prueba.
Acorde al resumen de resultados, el modelo mejor evaluado es el de svmLinear - máquina de vectores de soporte lineal . Aunque igual el modelo svmPoly - máquina de vectores de soporte polinómico obtuvo los mismos resultados.