El paquete CARET (Classification and Regression Training) es un paquete integral con una amplia variedad de algoritmos para el aprendizaje automático. Esta vez se usara para predecir información de enfermedades cardiacas
library(ggplot2)
#install.packages("lattice")
library(lattice)
library(caret)
library(datasets)
library(DataExplorer)
#install.packages("kernlab")
library(kernlab)
#install.packages("randomForest")
library(randomForest)
df <- read.csv("/Users/agustingomezperez/Desktop/Inteligencia Artificial/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)
set.seed(123)
df$target<-as.factor(df$target)
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: * 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: rf
modelo1 <- train(target ~., data=entrenamiento,
method = "svmLinear",
preProcess=c("scale","center"),
trControl= trainControl(method = "cv", number = 10),
tuneGrid=data.frame(C=1)
)
resultado_entrenamiento1 <- predict(modelo1, entrenamiento)
resultado_prueba1 <- predict(modelo1, prueba)
#Matriz de confusión: resultado del entrenamiento
mcre1 <- confusionMatrix(resultado_entrenamiento1, entrenamiento$target)
#Matriz de confusión: resultado de la prueba
mcrp1 <- confusionMatrix(resultado_prueba1, prueba$target)
modelo2 <- train(target ~., data=entrenamiento,
method = "svmRadial",
preProcess=c("scale","center"),
trControl= trainControl(method = "cv", number = 10),
tuneGrid=data.frame(sigma=1, C=1)
)
resultado_entrenamiento2 <- predict(modelo2, entrenamiento)
resultado_prueba2 <- predict(modelo2, prueba)
#Matriz de confusión: resultado del entrenamiento
mcre2 <- confusionMatrix(resultado_entrenamiento2, entrenamiento$target)
#Matriz de confusión: resultado de la prueba
mcrp2 <- confusionMatrix(resultado_prueba2, prueba$target)
modelo3 <- train(target ~., data=entrenamiento,
method = "svmPoly",
preProcess=c("scale","center"),
trControl= trainControl(method = "cv", number = 10),
tuneGrid=data.frame(degree=1, scale= 1, C=1)
)
resultado_entrenamiento3 <- predict(modelo3, entrenamiento)
resultado_prueba3 <- predict(modelo3, prueba)
#Matriz de confusión: resultado del entrenamiento
mcre3 <- confusionMatrix(resultado_entrenamiento3, entrenamiento$target)
#Matriz de confusión: resultado de la prueba
mcrp3 <- confusionMatrix(resultado_prueba3, prueba$target)
modelo4 <- train(target ~., data=entrenamiento,
method = "rpart",
preProcess=c("scale","center"),
trControl= trainControl(method = "cv", number = 10),
tuneLength = 10
)
resultado_entrenamiento4 <- predict(modelo4, entrenamiento)
resultado_prueba4 <- predict(modelo4, prueba)
#Matriz de confusión: resultado del entrenamiento
mcre4 <- confusionMatrix(resultado_entrenamiento4, entrenamiento$target)
#Matriz de confusión: resultado de la prueba
mcrp4 <- confusionMatrix(resultado_prueba4, prueba$target)
modelo5 <- train(target ~., data=entrenamiento,
method = "nnet",
preProcess=c("scale","center"),
trControl= trainControl(method = "cv", number = 10)
)
## # weights: 16
## initial value 535.297017
## iter 10 value 278.617685
## iter 20 value 270.443942
## iter 30 value 259.784344
## iter 40 value 253.963056
## iter 50 value 253.879023
## iter 60 value 253.860873
## final value 253.858136
## converged
## # weights: 46
## initial value 511.068394
## iter 10 value 244.697464
## iter 20 value 208.077202
## iter 30 value 184.486692
## iter 40 value 165.983978
## iter 50 value 155.294249
## iter 60 value 154.980028
## iter 60 value 154.980028
## iter 60 value 154.980028
## final value 154.980028
## converged
## # weights: 76
## initial value 570.645313
## iter 10 value 251.525869
## iter 20 value 179.802171
## iter 30 value 141.909339
## iter 40 value 123.166209
## iter 50 value 117.555438
## iter 60 value 111.065068
## iter 70 value 109.168064
## iter 80 value 108.280970
## iter 90 value 107.936941
## iter 100 value 107.634368
## final value 107.634368
## stopped after 100 iterations
## # weights: 16
## initial value 545.919886
## iter 10 value 302.148191
## iter 20 value 285.222964
## iter 30 value 282.138229
## iter 40 value 276.703763
## iter 50 value 272.590594
## iter 60 value 271.702143
## final value 271.700379
## converged
## # weights: 46
## initial value 523.838008
## iter 10 value 257.945042
## iter 20 value 243.363804
## iter 30 value 234.852174
## iter 40 value 210.716157
## iter 50 value 202.759614
## iter 60 value 200.469443
## iter 70 value 200.013381
## iter 80 value 199.558444
## iter 90 value 199.054811
## iter 100 value 198.725773
## final value 198.725773
## stopped after 100 iterations
## # weights: 76
## initial value 499.330190
## iter 10 value 243.185520
## iter 20 value 191.343213
## iter 30 value 160.121932
## iter 40 value 145.251552
## iter 50 value 138.106593
## iter 60 value 136.473415
## iter 70 value 135.610416
## iter 80 value 135.377331
## iter 90 value 135.210048
## iter 100 value 134.851446
## final value 134.851446
## stopped after 100 iterations
## # weights: 16
## initial value 535.882478
## iter 10 value 331.125041
## iter 20 value 289.566889
## iter 30 value 280.897794
## iter 40 value 274.544100
## iter 50 value 274.249920
## iter 60 value 274.226464
## final value 274.223707
## converged
## # weights: 46
## initial value 578.721040
## iter 10 value 277.697309
## iter 20 value 233.196122
## iter 30 value 200.578983
## iter 40 value 177.761306
## iter 50 value 162.612449
## iter 60 value 158.753881
## iter 70 value 155.177732
## iter 80 value 153.728874
## iter 90 value 153.510469
## iter 100 value 153.431901
## final value 153.431901
## stopped after 100 iterations
## # weights: 76
## initial value 543.585645
## iter 10 value 217.473391
## iter 20 value 134.403582
## iter 30 value 102.198891
## iter 40 value 77.242495
## iter 50 value 68.123567
## iter 60 value 66.354254
## iter 70 value 65.415009
## iter 80 value 64.418156
## iter 90 value 63.708151
## iter 100 value 63.309837
## final value 63.309837
## stopped after 100 iterations
## # weights: 16
## initial value 516.801720
## iter 10 value 347.044214
## iter 20 value 270.680164
## iter 30 value 258.359799
## iter 40 value 258.067335
## iter 50 value 254.788053
## iter 60 value 240.252700
## final value 240.164529
## converged
## # weights: 46
## initial value 600.518144
## iter 10 value 231.689366
## iter 20 value 182.813987
## iter 30 value 143.496960
## iter 40 value 131.333391
## iter 50 value 121.278988
## iter 60 value 117.392105
## iter 70 value 112.191690
## iter 80 value 105.845856
## iter 90 value 105.039159
## iter 100 value 104.968303
## final value 104.968303
## stopped after 100 iterations
## # weights: 76
## initial value 558.894928
## iter 10 value 239.386001
## iter 20 value 167.796671
## iter 30 value 113.479146
## iter 40 value 100.585111
## iter 50 value 95.862835
## iter 60 value 93.899369
## iter 70 value 91.945590
## iter 80 value 91.326173
## iter 90 value 88.668751
## iter 100 value 88.007157
## final value 88.007157
## stopped after 100 iterations
## # weights: 16
## initial value 534.765717
## iter 10 value 267.695723
## iter 20 value 263.349862
## final value 263.213664
## converged
## # weights: 46
## initial value 589.771492
## iter 10 value 255.440528
## iter 20 value 225.268918
## iter 30 value 209.850679
## iter 40 value 206.943100
## iter 50 value 199.595804
## iter 60 value 194.832498
## iter 70 value 194.171536
## iter 80 value 192.316646
## iter 90 value 190.878844
## iter 100 value 190.689874
## final value 190.689874
## stopped after 100 iterations
## # weights: 76
## initial value 730.737672
## iter 10 value 240.725393
## iter 20 value 207.401760
## iter 30 value 180.527154
## iter 40 value 155.702917
## iter 50 value 139.109378
## iter 60 value 131.574992
## iter 70 value 127.209405
## iter 80 value 125.089779
## iter 90 value 123.812350
## iter 100 value 121.053397
## final value 121.053397
## stopped after 100 iterations
## # weights: 16
## initial value 548.171765
## iter 10 value 334.202017
## iter 20 value 260.705406
## iter 30 value 259.256607
## iter 40 value 259.000821
## iter 50 value 258.900847
## iter 60 value 258.536916
## iter 70 value 258.483766
## iter 80 value 258.481672
## iter 90 value 258.478518
## iter 100 value 258.463570
## final value 258.463570
## stopped after 100 iterations
## # weights: 46
## initial value 545.766622
## iter 10 value 273.496401
## iter 20 value 207.089572
## iter 30 value 169.631909
## iter 40 value 150.587441
## iter 50 value 145.000121
## iter 60 value 119.983977
## iter 70 value 107.662621
## iter 80 value 105.340966
## iter 90 value 101.917607
## iter 100 value 99.915938
## final value 99.915938
## stopped after 100 iterations
## # weights: 76
## initial value 479.343335
## iter 10 value 199.650836
## iter 20 value 118.861592
## iter 30 value 95.296153
## iter 40 value 81.785373
## iter 50 value 69.897162
## iter 60 value 63.135100
## iter 70 value 60.006237
## iter 80 value 59.157854
## iter 90 value 58.907978
## iter 100 value 58.741889
## final value 58.741889
## stopped after 100 iterations
## # weights: 16
## initial value 517.856276
## iter 10 value 279.575277
## iter 20 value 256.117972
## iter 30 value 255.346855
## iter 40 value 255.063786
## iter 50 value 255.037894
## iter 60 value 254.853043
## iter 70 value 254.819481
## iter 80 value 254.815984
## iter 90 value 254.812725
## iter 100 value 254.806818
## final value 254.806818
## stopped after 100 iterations
## # weights: 46
## initial value 525.587585
## iter 10 value 308.666077
## iter 20 value 252.804801
## iter 30 value 244.241159
## iter 40 value 228.439069
## iter 50 value 215.940953
## iter 60 value 201.615232
## iter 70 value 196.440518
## iter 80 value 195.162147
## iter 90 value 194.744842
## iter 100 value 194.232895
## final value 194.232895
## stopped after 100 iterations
## # weights: 76
## initial value 499.230825
## iter 10 value 224.605606
## iter 20 value 166.529235
## iter 30 value 145.825673
## iter 40 value 127.681850
## iter 50 value 119.046907
## iter 60 value 116.599417
## iter 70 value 116.229167
## final value 116.229016
## converged
## # weights: 16
## initial value 519.913629
## iter 10 value 308.812051
## iter 20 value 264.549379
## iter 30 value 261.985273
## iter 40 value 261.970416
## final value 261.970259
## converged
## # weights: 46
## initial value 511.511309
## iter 10 value 310.224185
## iter 20 value 254.481780
## iter 30 value 225.896731
## iter 40 value 210.696997
## iter 50 value 206.483809
## iter 60 value 203.701096
## iter 70 value 198.046573
## iter 80 value 193.990646
## iter 90 value 192.395986
## iter 100 value 192.211057
## final value 192.211057
## stopped after 100 iterations
## # weights: 76
## initial value 497.763134
## iter 10 value 235.078482
## iter 20 value 175.898469
## iter 30 value 158.522791
## iter 40 value 151.459742
## iter 50 value 144.730688
## iter 60 value 142.182035
## iter 70 value 140.742696
## iter 80 value 140.133425
## iter 90 value 140.088638
## iter 100 value 140.085715
## final value 140.085715
## stopped after 100 iterations
## # weights: 16
## initial value 546.648130
## iter 10 value 260.856400
## iter 20 value 250.342334
## iter 30 value 235.386600
## iter 40 value 231.851808
## iter 50 value 230.781024
## iter 60 value 230.768416
## iter 70 value 230.735712
## iter 80 value 230.716693
## iter 90 value 230.711865
## iter 100 value 230.702128
## final value 230.702128
## stopped after 100 iterations
## # weights: 46
## initial value 513.236222
## iter 10 value 243.982202
## iter 20 value 167.014710
## iter 30 value 142.473911
## iter 40 value 122.506161
## iter 50 value 106.794635
## iter 60 value 104.899048
## iter 70 value 104.028478
## iter 80 value 103.650360
## iter 90 value 103.315760
## iter 100 value 102.932818
## final value 102.932818
## stopped after 100 iterations
## # weights: 76
## initial value 521.599786
## iter 10 value 201.719164
## iter 20 value 132.488585
## iter 30 value 86.421311
## iter 40 value 70.125387
## iter 50 value 58.356212
## iter 60 value 56.811551
## iter 70 value 56.517651
## iter 80 value 55.938533
## iter 90 value 55.617775
## iter 100 value 55.539757
## final value 55.539757
## stopped after 100 iterations
## # weights: 16
## initial value 495.963714
## iter 10 value 304.061990
## iter 20 value 277.949323
## iter 30 value 274.106604
## iter 40 value 265.580134
## iter 50 value 265.401805
## iter 60 value 265.347358
## iter 70 value 265.175004
## iter 80 value 265.041097
## iter 90 value 265.001447
## iter 100 value 264.984565
## final value 264.984565
## stopped after 100 iterations
## # weights: 46
## initial value 586.489771
## iter 10 value 258.110706
## iter 20 value 205.536274
## iter 30 value 180.472791
## iter 40 value 160.262089
## iter 50 value 155.914638
## iter 60 value 152.993171
## iter 70 value 144.885641
## iter 80 value 143.528105
## iter 90 value 143.512042
## final value 143.511552
## converged
## # weights: 76
## initial value 557.335690
## iter 10 value 223.156518
## iter 20 value 170.116484
## iter 30 value 115.613264
## iter 40 value 78.694420
## iter 50 value 75.671353
## iter 60 value 74.026918
## iter 70 value 72.393732
## iter 80 value 71.165545
## iter 90 value 70.568936
## iter 100 value 69.966933
## final value 69.966933
## stopped after 100 iterations
## # weights: 16
## initial value 545.623127
## iter 10 value 278.191336
## iter 20 value 267.941506
## iter 30 value 266.939123
## final value 266.938651
## converged
## # weights: 46
## initial value 506.383910
## iter 10 value 242.582459
## iter 20 value 231.357994
## iter 30 value 223.341632
## iter 40 value 221.801655
## iter 50 value 219.904286
## iter 60 value 219.258433
## iter 70 value 219.151189
## final value 219.150622
## converged
## # weights: 76
## initial value 574.224515
## iter 10 value 236.047960
## iter 20 value 197.225925
## iter 30 value 176.335265
## iter 40 value 164.154461
## iter 50 value 153.859015
## iter 60 value 146.015430
## iter 70 value 138.227105
## iter 80 value 132.706067
## iter 90 value 131.358658
## iter 100 value 130.911490
## final value 130.911490
## stopped after 100 iterations
## # weights: 16
## initial value 531.118010
## iter 10 value 297.703542
## iter 20 value 265.674960
## iter 30 value 260.312818
## iter 40 value 249.157314
## iter 50 value 248.745013
## iter 60 value 247.216212
## iter 70 value 247.113551
## iter 80 value 247.110623
## iter 90 value 247.109836
## iter 90 value 247.109835
## iter 90 value 247.109835
## final value 247.109835
## converged
## # weights: 46
## initial value 540.677376
## iter 10 value 227.830439
## iter 20 value 175.018447
## iter 30 value 153.631042
## iter 40 value 133.678274
## iter 50 value 127.247538
## iter 60 value 126.840457
## iter 70 value 126.449508
## iter 80 value 126.368132
## iter 90 value 126.290775
## iter 100 value 126.220568
## final value 126.220568
## stopped after 100 iterations
## # weights: 76
## initial value 498.577976
## iter 10 value 205.153502
## iter 20 value 118.929025
## iter 30 value 97.465208
## iter 40 value 83.968658
## iter 50 value 82.536636
## iter 60 value 82.119919
## iter 70 value 81.212460
## iter 80 value 80.295698
## iter 90 value 78.926511
## iter 100 value 78.554378
## final value 78.554378
## stopped after 100 iterations
## # weights: 16
## initial value 521.334444
## iter 10 value 314.329205
## iter 20 value 259.841805
## iter 30 value 248.866964
## iter 40 value 238.942240
## iter 50 value 238.790747
## iter 60 value 238.715792
## iter 70 value 238.702237
## iter 80 value 238.695726
## iter 90 value 238.688258
## iter 100 value 238.680972
## final value 238.680972
## stopped after 100 iterations
## # weights: 46
## initial value 532.892595
## iter 10 value 252.192898
## iter 20 value 216.601603
## iter 30 value 184.905406
## iter 40 value 166.641942
## iter 50 value 158.802370
## iter 60 value 156.136547
## iter 70 value 152.330957
## iter 80 value 146.081750
## iter 90 value 138.691211
## iter 100 value 132.347206
## final value 132.347206
## stopped after 100 iterations
## # weights: 76
## initial value 574.726235
## iter 10 value 254.939449
## iter 20 value 149.240633
## iter 30 value 107.037048
## iter 40 value 95.777524
## iter 50 value 90.450781
## iter 60 value 84.479288
## iter 70 value 82.263255
## iter 80 value 82.213182
## final value 82.212972
## converged
## # weights: 16
## initial value 522.286914
## iter 10 value 323.054969
## iter 20 value 267.089293
## iter 30 value 263.365929
## iter 40 value 262.896373
## iter 50 value 262.886036
## final value 262.885221
## converged
## # weights: 46
## initial value 483.621802
## iter 10 value 244.895477
## iter 20 value 216.086622
## iter 30 value 190.130496
## iter 40 value 177.150308
## iter 50 value 168.309464
## iter 60 value 167.290648
## iter 70 value 167.100702
## iter 80 value 167.098257
## final value 167.098253
## converged
## # weights: 76
## initial value 608.642851
## iter 10 value 226.029071
## iter 20 value 185.266013
## iter 30 value 167.181936
## iter 40 value 156.654901
## iter 50 value 138.510733
## iter 60 value 133.964309
## iter 70 value 128.510305
## iter 80 value 127.240682
## iter 90 value 127.136294
## iter 100 value 127.116672
## final value 127.116672
## stopped after 100 iterations
## # weights: 16
## initial value 553.567559
## iter 10 value 378.655700
## iter 20 value 264.646922
## iter 30 value 255.274706
## iter 40 value 254.499152
## iter 50 value 253.624597
## iter 60 value 253.189454
## iter 70 value 253.164916
## iter 80 value 253.163414
## final value 253.163401
## converged
## # weights: 46
## initial value 514.043006
## iter 10 value 238.452421
## iter 20 value 183.104531
## iter 30 value 154.268507
## iter 40 value 135.425679
## iter 50 value 127.746792
## iter 60 value 127.465304
## iter 70 value 127.316005
## iter 80 value 127.226988
## iter 90 value 127.144892
## iter 100 value 126.446408
## final value 126.446408
## stopped after 100 iterations
## # weights: 76
## initial value 573.759769
## iter 10 value 224.403385
## iter 20 value 145.081933
## iter 30 value 83.740149
## iter 40 value 75.584617
## iter 50 value 72.694024
## iter 60 value 71.125925
## iter 70 value 60.087838
## iter 80 value 54.300146
## iter 90 value 53.200026
## iter 100 value 52.302967
## final value 52.302967
## stopped after 100 iterations
## # weights: 16
## initial value 525.699823
## iter 10 value 301.416418
## iter 20 value 259.175447
## iter 30 value 255.324998
## iter 40 value 241.678316
## iter 50 value 240.887242
## iter 60 value 239.876717
## iter 70 value 238.395933
## iter 80 value 238.312939
## iter 90 value 238.250619
## iter 100 value 238.238112
## final value 238.238112
## stopped after 100 iterations
## # weights: 46
## initial value 524.448369
## iter 10 value 254.882932
## iter 20 value 193.293946
## iter 30 value 170.630171
## iter 40 value 156.943166
## iter 50 value 155.521405
## iter 60 value 155.475016
## iter 70 value 155.473330
## iter 70 value 155.473329
## iter 70 value 155.473329
## final value 155.473329
## converged
## # weights: 76
## initial value 494.503352
## iter 10 value 216.722692
## iter 20 value 144.087309
## iter 30 value 118.693125
## iter 40 value 107.183668
## iter 50 value 102.865083
## iter 60 value 101.686729
## iter 70 value 100.374856
## iter 80 value 100.242725
## iter 90 value 100.209397
## iter 100 value 100.118022
## final value 100.118022
## stopped after 100 iterations
## # weights: 16
## initial value 526.193498
## iter 10 value 335.553457
## iter 20 value 265.678500
## iter 30 value 260.794319
## iter 40 value 260.186419
## iter 50 value 260.054637
## final value 260.043781
## converged
## # weights: 46
## initial value 584.027537
## iter 10 value 235.458140
## iter 20 value 209.791206
## iter 30 value 187.880755
## iter 40 value 176.484231
## iter 50 value 173.053269
## iter 60 value 171.422241
## iter 70 value 170.738931
## iter 80 value 170.699974
## final value 170.699859
## converged
## # weights: 76
## initial value 543.432592
## iter 10 value 255.391304
## iter 20 value 197.990740
## iter 30 value 171.878173
## iter 40 value 159.532216
## iter 50 value 147.787260
## iter 60 value 141.218571
## iter 70 value 137.934477
## iter 80 value 136.376631
## iter 90 value 130.838716
## iter 100 value 127.516659
## final value 127.516659
## stopped after 100 iterations
## # weights: 16
## initial value 521.525181
## iter 10 value 279.550614
## iter 20 value 251.866146
## iter 30 value 248.113668
## iter 40 value 240.846962
## iter 50 value 239.274500
## iter 60 value 238.969561
## iter 70 value 238.942787
## iter 80 value 238.902174
## iter 90 value 238.901549
## iter 100 value 238.898606
## final value 238.898606
## stopped after 100 iterations
## # weights: 46
## initial value 536.412669
## iter 10 value 249.655420
## iter 20 value 199.235766
## iter 30 value 183.951768
## iter 40 value 172.048784
## iter 50 value 162.421138
## iter 60 value 161.282001
## iter 70 value 160.864155
## iter 80 value 160.632464
## iter 90 value 160.398330
## iter 100 value 160.270370
## final value 160.270370
## stopped after 100 iterations
## # weights: 76
## initial value 468.535154
## iter 10 value 228.304196
## iter 20 value 160.673124
## iter 30 value 115.388050
## iter 40 value 90.954701
## iter 50 value 87.386781
## iter 60 value 85.844564
## iter 70 value 85.197787
## iter 80 value 84.218681
## iter 90 value 83.265766
## iter 100 value 83.034959
## final value 83.034959
## stopped after 100 iterations
## # weights: 16
## initial value 525.404298
## iter 10 value 294.293039
## iter 20 value 273.701136
## iter 30 value 265.589385
## iter 40 value 259.182212
## iter 50 value 256.363405
## iter 60 value 244.223032
## iter 70 value 242.251621
## iter 80 value 242.243206
## iter 90 value 242.239733
## iter 100 value 242.234374
## final value 242.234374
## stopped after 100 iterations
## # weights: 46
## initial value 543.218373
## iter 10 value 276.415173
## iter 20 value 222.011207
## iter 30 value 205.124108
## iter 40 value 189.555483
## iter 50 value 182.488347
## iter 60 value 182.315776
## final value 182.315725
## converged
## # weights: 76
## initial value 526.175887
## iter 10 value 248.413851
## iter 20 value 182.189285
## iter 30 value 152.398564
## iter 40 value 139.131033
## iter 50 value 133.600740
## iter 60 value 127.386273
## iter 70 value 124.717956
## iter 80 value 124.643534
## final value 124.642590
## converged
## # weights: 16
## initial value 527.279184
## iter 10 value 318.654645
## iter 20 value 285.258128
## iter 30 value 279.834470
## final value 279.827767
## converged
## # weights: 46
## initial value 529.496940
## iter 10 value 350.607846
## iter 20 value 307.904121
## iter 30 value 273.613370
## iter 40 value 259.185046
## iter 50 value 232.510920
## iter 60 value 212.968287
## iter 70 value 209.809590
## iter 80 value 209.054486
## iter 90 value 208.595465
## iter 100 value 208.560753
## final value 208.560753
## stopped after 100 iterations
## # weights: 76
## initial value 517.505092
## iter 10 value 298.851753
## iter 20 value 239.060397
## iter 30 value 212.267659
## iter 40 value 196.718024
## iter 50 value 186.143216
## iter 60 value 182.068367
## iter 70 value 180.705582
## iter 80 value 176.946877
## iter 90 value 169.089179
## iter 100 value 167.407992
## final value 167.407992
## stopped after 100 iterations
## # weights: 16
## initial value 521.062434
## iter 10 value 290.225469
## iter 20 value 270.600962
## iter 30 value 264.324692
## iter 40 value 258.686953
## iter 50 value 257.260520
## iter 60 value 257.119658
## iter 70 value 256.616409
## iter 80 value 256.612844
## iter 90 value 256.612322
## final value 256.610255
## converged
## # weights: 46
## initial value 527.478949
## iter 10 value 242.518250
## iter 20 value 200.228448
## iter 30 value 158.574341
## iter 40 value 147.478674
## iter 50 value 142.074998
## iter 60 value 141.663553
## iter 70 value 141.374987
## iter 80 value 140.502965
## iter 90 value 140.000417
## iter 100 value 139.801878
## final value 139.801878
## stopped after 100 iterations
## # weights: 76
## initial value 525.114691
## iter 10 value 213.247894
## iter 20 value 150.157487
## iter 30 value 100.599547
## iter 40 value 86.931552
## iter 50 value 83.789155
## iter 60 value 78.973067
## iter 70 value 77.775956
## iter 80 value 76.560889
## iter 90 value 76.211082
## iter 100 value 75.935518
## final value 75.935518
## stopped after 100 iterations
## # weights: 16
## initial value 543.023592
## iter 10 value 393.414415
## iter 20 value 275.881949
## iter 30 value 264.089709
## iter 40 value 262.953030
## iter 50 value 262.254092
## iter 60 value 260.931619
## iter 70 value 260.778498
## iter 80 value 260.737136
## iter 90 value 260.616218
## iter 100 value 260.553940
## final value 260.553940
## stopped after 100 iterations
## # weights: 46
## initial value 544.124581
## iter 10 value 266.049761
## iter 20 value 225.313589
## iter 30 value 202.585094
## iter 40 value 189.233747
## iter 50 value 184.482987
## iter 60 value 180.858128
## iter 70 value 172.690680
## iter 80 value 165.928132
## iter 90 value 165.761538
## final value 165.761468
## converged
## # weights: 76
## initial value 526.631720
## iter 10 value 232.869313
## iter 20 value 179.109467
## iter 30 value 141.719941
## iter 40 value 93.248402
## iter 50 value 86.911240
## iter 60 value 81.731276
## iter 70 value 77.849851
## iter 80 value 77.350858
## iter 90 value 77.337273
## iter 100 value 77.333079
## final value 77.333079
## stopped after 100 iterations
## # weights: 16
## initial value 523.008632
## iter 10 value 299.109568
## iter 20 value 274.988109
## iter 30 value 270.773879
## iter 40 value 270.510001
## iter 50 value 270.505034
## final value 270.505029
## converged
## # weights: 46
## initial value 521.096309
## iter 10 value 278.644802
## iter 20 value 241.263346
## iter 30 value 210.864415
## iter 40 value 185.448925
## iter 50 value 176.742498
## iter 60 value 173.464797
## iter 70 value 171.981534
## iter 80 value 171.256006
## iter 90 value 169.802724
## iter 100 value 168.519829
## final value 168.519829
## stopped after 100 iterations
## # weights: 76
## initial value 509.406519
## iter 10 value 234.323738
## iter 20 value 177.993005
## iter 30 value 160.586487
## iter 40 value 151.898104
## iter 50 value 140.019543
## iter 60 value 135.638131
## iter 70 value 131.643960
## iter 80 value 130.088248
## iter 90 value 127.963298
## iter 100 value 126.551979
## final value 126.551979
## stopped after 100 iterations
## # weights: 16
## initial value 519.642450
## iter 10 value 267.092452
## iter 20 value 265.328766
## iter 30 value 263.709142
## iter 40 value 262.966237
## iter 50 value 261.188760
## iter 60 value 260.865008
## iter 70 value 260.762708
## iter 80 value 260.738907
## iter 90 value 260.654776
## iter 100 value 260.648104
## final value 260.648104
## stopped after 100 iterations
## # weights: 46
## initial value 535.230597
## iter 10 value 241.717850
## iter 20 value 206.438320
## iter 30 value 175.222508
## iter 40 value 162.818427
## iter 50 value 155.603575
## iter 60 value 150.482175
## iter 70 value 146.941216
## iter 80 value 142.219196
## iter 90 value 141.803148
## iter 100 value 141.724765
## final value 141.724765
## stopped after 100 iterations
## # weights: 76
## initial value 493.243511
## iter 10 value 221.712675
## iter 20 value 149.732595
## iter 30 value 109.685031
## iter 40 value 100.481537
## iter 50 value 94.821615
## iter 60 value 90.418492
## iter 70 value 89.618876
## iter 80 value 89.441347
## iter 90 value 89.378157
## iter 100 value 89.194764
## final value 89.194764
## stopped after 100 iterations
## # weights: 16
## initial value 520.570993
## iter 10 value 279.065802
## iter 20 value 253.473218
## iter 30 value 251.206353
## iter 40 value 247.890757
## iter 50 value 244.395905
## iter 60 value 236.097705
## final value 236.028541
## converged
## # weights: 46
## initial value 532.394420
## iter 10 value 244.148291
## iter 20 value 194.311533
## iter 30 value 169.929846
## iter 40 value 158.668957
## iter 50 value 148.694121
## iter 60 value 145.363158
## iter 70 value 144.435942
## iter 80 value 144.242842
## iter 90 value 144.181448
## iter 100 value 144.176622
## final value 144.176622
## stopped after 100 iterations
## # weights: 76
## initial value 524.639537
## iter 10 value 204.420022
## iter 20 value 110.354804
## iter 30 value 80.122860
## iter 40 value 74.359622
## iter 50 value 70.622855
## iter 60 value 69.533009
## iter 70 value 69.054107
## iter 80 value 68.707536
## iter 90 value 68.415783
## iter 100 value 68.194832
## final value 68.194832
## stopped after 100 iterations
## # weights: 16
## initial value 516.209080
## iter 10 value 296.508932
## iter 20 value 274.112386
## iter 30 value 265.988039
## iter 40 value 265.416376
## iter 50 value 265.382095
## final value 265.380352
## converged
## # weights: 46
## initial value 510.969369
## iter 10 value 243.739509
## iter 20 value 228.087743
## iter 30 value 218.492492
## iter 40 value 206.354832
## iter 50 value 205.186754
## iter 60 value 204.924432
## iter 70 value 203.142648
## iter 80 value 202.712703
## final value 202.712214
## converged
## # weights: 76
## initial value 519.499589
## iter 10 value 241.003591
## iter 20 value 194.462000
## iter 30 value 172.234548
## iter 40 value 159.478592
## iter 50 value 148.945729
## iter 60 value 143.766807
## iter 70 value 139.925462
## iter 80 value 137.353414
## iter 90 value 137.004565
## iter 100 value 136.943883
## final value 136.943883
## stopped after 100 iterations
## # weights: 16
## initial value 514.548568
## iter 10 value 310.411711
## iter 20 value 253.153864
## iter 30 value 249.734296
## iter 40 value 246.114425
## iter 50 value 241.035180
## iter 60 value 238.564238
## iter 70 value 238.556576
## iter 80 value 238.555479
## final value 238.555326
## converged
## # weights: 46
## initial value 542.691109
## iter 10 value 243.998729
## iter 20 value 183.863007
## iter 30 value 152.737553
## iter 40 value 146.819997
## iter 50 value 142.032027
## iter 60 value 135.020035
## iter 70 value 132.772007
## iter 80 value 131.893625
## iter 90 value 131.385555
## iter 100 value 131.129878
## final value 131.129878
## stopped after 100 iterations
## # weights: 76
## initial value 662.546280
## iter 10 value 260.107697
## iter 20 value 176.176634
## iter 30 value 132.637829
## iter 40 value 98.750476
## iter 50 value 74.080858
## iter 60 value 55.259914
## iter 70 value 42.536457
## iter 80 value 36.399212
## iter 90 value 33.807920
## iter 100 value 32.122858
## final value 32.122858
## stopped after 100 iterations
## # weights: 16
## initial value 522.178785
## iter 10 value 299.584795
## iter 20 value 262.480323
## iter 30 value 259.552984
## iter 40 value 255.116706
## iter 50 value 249.694372
## iter 60 value 248.758246
## final value 248.757032
## converged
## # weights: 46
## initial value 510.620408
## iter 10 value 211.520346
## iter 20 value 171.470149
## iter 30 value 144.266206
## iter 40 value 133.945260
## iter 50 value 131.963844
## iter 60 value 131.284010
## iter 70 value 130.928560
## iter 80 value 130.834648
## iter 90 value 130.803297
## iter 100 value 130.791755
## final value 130.791755
## stopped after 100 iterations
## # weights: 76
## initial value 531.976288
## iter 10 value 256.798553
## iter 20 value 189.276808
## iter 30 value 134.200214
## iter 40 value 108.796291
## iter 50 value 97.484073
## iter 60 value 93.826189
## iter 70 value 91.943806
## iter 80 value 90.704353
## iter 90 value 88.018357
## iter 100 value 87.332741
## final value 87.332741
## stopped after 100 iterations
## # weights: 16
## initial value 592.981804
## iter 10 value 354.869542
## iter 20 value 300.926172
## iter 30 value 283.728252
## iter 40 value 273.916757
## iter 50 value 273.419313
## final value 273.294363
## converged
## # weights: 46
## initial value 545.058894
## iter 10 value 253.919591
## iter 20 value 221.792709
## iter 30 value 193.620277
## iter 40 value 178.044212
## iter 50 value 171.442564
## iter 60 value 169.258933
## iter 70 value 169.000828
## iter 80 value 168.999838
## iter 80 value 168.999837
## iter 80 value 168.999837
## final value 168.999837
## converged
## # weights: 76
## initial value 532.138045
## iter 10 value 254.027921
## iter 20 value 180.634789
## iter 30 value 158.414030
## iter 40 value 142.223935
## iter 50 value 133.008859
## iter 60 value 129.094821
## iter 70 value 126.401010
## iter 80 value 125.062317
## iter 90 value 123.202527
## iter 100 value 122.212702
## final value 122.212702
## stopped after 100 iterations
## # weights: 16
## initial value 613.494891
## iter 10 value 365.724772
## iter 20 value 316.606185
## iter 30 value 303.832994
## iter 40 value 302.149209
## iter 50 value 290.976116
## iter 60 value 290.553477
## iter 70 value 290.549891
## iter 80 value 290.548452
## final value 290.547121
## converged
## # weights: 46
## initial value 571.894542
## iter 10 value 271.362693
## iter 20 value 202.922133
## iter 30 value 160.781913
## iter 40 value 142.965072
## iter 50 value 139.267298
## iter 60 value 129.850518
## iter 70 value 127.789593
## iter 80 value 127.416808
## iter 90 value 126.990709
## iter 100 value 126.441267
## final value 126.441267
## stopped after 100 iterations
## # weights: 76
## initial value 561.916147
## iter 10 value 236.300918
## iter 20 value 159.978908
## iter 30 value 149.421899
## iter 40 value 141.563004
## iter 50 value 133.946790
## iter 60 value 133.338913
## iter 70 value 133.113387
## iter 80 value 132.700820
## iter 90 value 132.234360
## iter 100 value 131.728947
## final value 131.728947
## stopped after 100 iterations
## # weights: 76
## initial value 629.084987
## iter 10 value 268.204321
## iter 20 value 202.379095
## iter 30 value 167.836302
## iter 40 value 153.554837
## iter 50 value 144.670091
## iter 60 value 135.894463
## iter 70 value 133.161628
## iter 80 value 132.541213
## iter 90 value 132.313112
## iter 100 value 132.172448
## final value 132.172448
## stopped after 100 iterations
resultado_entrenamiento5 <- predict(modelo5, entrenamiento)
resultado_prueba5 <- predict(modelo5, prueba)
#Matriz de confusión: resultado del entrenamiento
mcre5 <- confusionMatrix(resultado_entrenamiento5, entrenamiento$target)
#Matriz de confusión: resultado de la prueba
mcrp5 <- confusionMatrix(resultado_prueba5, prueba$target)
modelo6 <- train(target ~., data=entrenamiento,
method = "rf",
preProcess=c("scale","center"),
trControl= trainControl(method = "cv", number = 10),
tuneGrid = expand.grid(mtry = c(2,4,6))
)
resultado_entrenamiento6 <- predict(modelo6, entrenamiento)
resultado_prueba6 <- predict(modelo6, prueba)
#Matriz de confusión: resultado del entrenamiento
mcre6 <- confusionMatrix(resultado_entrenamiento6, entrenamiento$target)
#Matriz de confusión: resultado de la prueba
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.8343484 1 0.8343484 0.9159562 0.9671133 1
## Precisión de Prueba 0.8480392 1 0.8480392 0.8774510 0.9460784 1
De acuerdo a las pruebas de precisión el modelo de redes neuronales fue el mejor modelo si se toman en cuenta todas las variables ya que la precisión que otorga este modelo es de 97% la cual fue la más alta comparada a los demás modelos, en el caso de svmRadial que dio una precisión del 100% no se toma en cuenta ya que tener una precisión del 100% solo fue con los datos del modelo de entrenamiento por lo que no será representativo para la población.