Teoría

El paquete CARET (Clasification And Regression Training) es un paquete integral con una amplia variedad de algoritmos paara el aprendizaje automático.

Instalar paquetes y llamar librerías

#install.packages("caret") # Algoritmos de aprendizaje automatico
library(caret)
## Cargando paquete requerido: ggplot2
## Cargando paquete requerido: lattice
#install.packages("ggplot2") # Gáficas
library(ggplot2)
#install.packages("lattice") # Crear gráficos
library(lattice)
#install.packages("datasets") # Usar bases de datos precargadas
library(datasets)
#install.packages("DataExplorer") # Análisis Descriptivo
library(DataExplorer)
#install.packages("kernlab") 
library(kernlab)
## 
## Adjuntando el paquete: 'kernlab'
## The following object is masked from 'package:ggplot2':
## 
##     alpha
#install.packages("randomForest") 
library(randomForest)
## randomForest 4.7-1.2
## Type rfNews() to see new features/changes/bug fixes.
## 
## Adjuntando el paquete: 'randomForest'
## The following object is masked from 'package:ggplot2':
## 
##     margin
#install.packages("readxl")
library(readxl)

Cargar la base de datos

df <- read_excel("C:/Users/dulce/OneDrive/Escritorio/IA Empresarial/heart.xlsx")

Entender la base de datos

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)
## tibble [1,025 × 14] (S3: tbl_df/tbl/data.frame)
##  $ age     : num [1:1025] 52 53 70 61 62 58 58 55 46 54 ...
##  $ sex     : num [1:1025] 1 1 1 1 0 0 1 1 1 1 ...
##  $ cp      : num [1:1025] 0 0 0 0 0 0 0 0 0 0 ...
##  $ trestbps: num [1:1025] 125 140 145 148 138 100 114 160 120 122 ...
##  $ chol    : num [1:1025] 212 203 174 203 294 248 318 289 249 286 ...
##  $ fbs     : num [1:1025] 0 1 0 0 1 0 0 0 0 0 ...
##  $ restecg : num [1:1025] 1 0 1 1 1 0 2 0 0 0 ...
##  $ thalach : num [1:1025] 168 155 125 161 106 122 140 145 144 116 ...
##  $ exang   : num [1:1025] 0 1 1 0 0 0 0 1 0 1 ...
##  $ oldpeak : num [1:1025] 1 3.1 2.6 0 1.9 1 4.4 0.8 0.8 3.2 ...
##  $ slope   : num [1:1025] 2 0 0 2 1 1 0 1 2 1 ...
##  $ ca      : num [1:1025] 2 0 0 1 3 0 3 1 0 2 ...
##  $ thal    : num [1:1025] 3 3 3 3 2 2 1 3 3 2 ...
##  $ target  : num [1:1025] 0 0 0 0 0 1 0 0 0 0 ...
# create report(df)
plot_missing(df)

plot_histogram(df)

plot_correlation(df)

df$target <- as.factor(df$target)

NOTA: En modelos de clasificación, la variable que queremos predecir debe de tener formato de FACTOR

Partir la base

set.seed(123)
renglones_entrenamiento <- createDataPartition(df$target, p=0.8, list=FALSE)
entrenamiento <- df[renglones_entrenamiento, ]
prueba <- df[-renglones_entrenamiento, ]

Distintos tipos de Métodos para Modelar

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 (svRadial), Polinómico (svmPoly), etc.
  • Árbol de Decisión: rpart
  • Redes Neuronales: nnet
  • Random Forest o Bosques Aleatorios: rf

Modelo 1. SVM Lineal

modelo1 <- train(target~., data=entrenamiento,
                 method="svmLinear", #se cambia metodo para cambiar modelo
                 preProcess=c("scale", "center"),
                 trControl= trainControl(method = "CV", number = 10),
                 tuneGride = data.frame(c=1) #se pueden cambiar parametros
                 )
resultado_entrenamiento1 <- predict(modelo1,entrenamiento)
resultado_prueba1 <- predict(modelo1, prueba)

# Matriz de Confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificaciión

# Matriz de Confusión del Resultado del Entrenamiento
mcre1 <- confusionMatrix(resultado_entrenamiento1,entrenamiento$target)
mcre1
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0 301  37
##          1  99 384
##                                           
##                Accuracy : 0.8343          
##                  95% CI : (0.8071, 0.8592)
##     No Information Rate : 0.5128          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.6672          
##                                           
##  Mcnemar's Test P-Value : 1.689e-07       
##                                           
##             Sensitivity : 0.7525          
##             Specificity : 0.9121          
##          Pos Pred Value : 0.8905          
##          Neg Pred Value : 0.7950          
##              Prevalence : 0.4872          
##          Detection Rate : 0.3666          
##    Detection Prevalence : 0.4117          
##       Balanced Accuracy : 0.8323          
##                                           
##        'Positive' Class : 0               
## 
# Matriz de Confusión del Resultado de la Prueba
mcrp1 <- confusionMatrix(resultado_prueba1, prueba$target)
mcrp1
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction  0  1
##          0 78 10
##          1 21 95
##                                           
##                Accuracy : 0.848           
##                  95% CI : (0.7913, 0.8944)
##     No Information Rate : 0.5147          
##     P-Value [Acc > NIR] : < 2e-16         
##                                           
##                   Kappa : 0.6948          
##                                           
##  Mcnemar's Test P-Value : 0.07249         
##                                           
##             Sensitivity : 0.7879          
##             Specificity : 0.9048          
##          Pos Pred Value : 0.8864          
##          Neg Pred Value : 0.8190          
##              Prevalence : 0.4853          
##          Detection Rate : 0.3824          
##    Detection Prevalence : 0.4314          
##       Balanced Accuracy : 0.8463          
##                                           
##        'Positive' Class : 0               
## 

Modelo 2. SVM Radial

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
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificaciión

# Matriz de Confusión del Resultado del Entrenamiento
mcre2 <- confusionMatrix(resultado_entrenamiento2, entrenamiento$target)
mcre2
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0 400   0
##          1   0 421
##                                      
##                Accuracy : 1          
##                  95% CI : (0.9955, 1)
##     No Information Rate : 0.5128     
##     P-Value [Acc > NIR] : < 2.2e-16  
##                                      
##                   Kappa : 1          
##                                      
##  Mcnemar's Test P-Value : NA         
##                                      
##             Sensitivity : 1.0000     
##             Specificity : 1.0000     
##          Pos Pred Value : 1.0000     
##          Neg Pred Value : 1.0000     
##              Prevalence : 0.4872     
##          Detection Rate : 0.4872     
##    Detection Prevalence : 0.4872     
##       Balanced Accuracy : 1.0000     
##                                      
##        'Positive' Class : 0          
## 
# Matriz de Confusión del Resultado de la Prueba
mcrp2 <- confusionMatrix(resultado_prueba2, prueba$target)
mcrp2
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0  99   0
##          1   0 105
##                                      
##                Accuracy : 1          
##                  95% CI : (0.9821, 1)
##     No Information Rate : 0.5147     
##     P-Value [Acc > NIR] : < 2.2e-16  
##                                      
##                   Kappa : 1          
##                                      
##  Mcnemar's Test P-Value : NA         
##                                      
##             Sensitivity : 1.0000     
##             Specificity : 1.0000     
##          Pos Pred Value : 1.0000     
##          Neg Pred Value : 1.0000     
##              Prevalence : 0.4853     
##          Detection Rate : 0.4853     
##    Detection Prevalence : 0.4853     
##       Balanced Accuracy : 1.0000     
##                                      
##        'Positive' Class : 0          
## 

Modelo 3. SVM Polinómico

modelo3 <- train( target ~ .,data = entrenamiento,
  method = "svmPoly",
  preProcess = c("scale", "center"),
  trControl = trainControl(method = "cv", number = 10),
  tuneGride = data.frame(degree=1, scale=1, C = 1) #Cambiar
)


resultado_entrenamiento3 <- predict(modelo3,entrenamiento)
resultado_prueba3 <- predict(modelo3, prueba)

# Matriz de Confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificaciión

# Matriz de Confusión del Resultado del Entrenamiento
mcre3 <- confusionMatrix(resultado_entrenamiento2, entrenamiento$target)
mcre3
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0 400   0
##          1   0 421
##                                      
##                Accuracy : 1          
##                  95% CI : (0.9955, 1)
##     No Information Rate : 0.5128     
##     P-Value [Acc > NIR] : < 2.2e-16  
##                                      
##                   Kappa : 1          
##                                      
##  Mcnemar's Test P-Value : NA         
##                                      
##             Sensitivity : 1.0000     
##             Specificity : 1.0000     
##          Pos Pred Value : 1.0000     
##          Neg Pred Value : 1.0000     
##              Prevalence : 0.4872     
##          Detection Rate : 0.4872     
##    Detection Prevalence : 0.4872     
##       Balanced Accuracy : 1.0000     
##                                      
##        'Positive' Class : 0          
## 
# Matriz de Confusión del Resultado de la Prueba
mcrp3 <- confusionMatrix(resultado_prueba2, prueba$target)
mcrp3
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0  99   0
##          1   0 105
##                                      
##                Accuracy : 1          
##                  95% CI : (0.9821, 1)
##     No Information Rate : 0.5147     
##     P-Value [Acc > NIR] : < 2.2e-16  
##                                      
##                   Kappa : 1          
##                                      
##  Mcnemar's Test P-Value : NA         
##                                      
##             Sensitivity : 1.0000     
##             Specificity : 1.0000     
##          Pos Pred Value : 1.0000     
##          Neg Pred Value : 1.0000     
##              Prevalence : 0.4853     
##          Detection Rate : 0.4853     
##    Detection Prevalence : 0.4853     
##       Balanced Accuracy : 1.0000     
##                                      
##        'Positive' Class : 0          
## 

Modelo 4. Árbol de Decisión

modelo4 <- train(target~., data=entrenamiento,
                 method="rpart", #se cambia metodo para cambiar modelo
                 preProcess=c("scale", "center"),
                 trControl= trainControl(method = "CV", number = 10),
                 tuneLength = 10 #se pueden cambiar parametros
                 )
resultado_entrenamiento4 <- predict(modelo4,entrenamiento)
resultado_prueba4 <- predict(modelo4, prueba)

# Matriz de Confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificaciión

# Matriz de Confusión del Resultado del Entrenamiento
mcre4 <- confusionMatrix(resultado_entrenamiento4, entrenamiento$target)
mcre4
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0 361  23
##          1  39 398
##                                           
##                Accuracy : 0.9245          
##                  95% CI : (0.9042, 0.9416)
##     No Information Rate : 0.5128          
##     P-Value [Acc > NIR] : < 2e-16         
##                                           
##                   Kappa : 0.8487          
##                                           
##  Mcnemar's Test P-Value : 0.05678         
##                                           
##             Sensitivity : 0.9025          
##             Specificity : 0.9454          
##          Pos Pred Value : 0.9401          
##          Neg Pred Value : 0.9108          
##              Prevalence : 0.4872          
##          Detection Rate : 0.4397          
##    Detection Prevalence : 0.4677          
##       Balanced Accuracy : 0.9239          
##                                           
##        'Positive' Class : 0               
## 
# Matriz de Confusión del Resultado de la Prueba
mcrp4 <- confusionMatrix(resultado_prueba4, prueba$target)
mcrp4
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction  0  1
##          0 82  7
##          1 17 98
##                                         
##                Accuracy : 0.8824        
##                  95% CI : (0.83, 0.9231)
##     No Information Rate : 0.5147        
##     P-Value [Acc > NIR] : < 2e-16       
##                                         
##                   Kappa : 0.7638        
##                                         
##  Mcnemar's Test P-Value : 0.06619       
##                                         
##             Sensitivity : 0.8283        
##             Specificity : 0.9333        
##          Pos Pred Value : 0.9213        
##          Neg Pred Value : 0.8522        
##              Prevalence : 0.4853        
##          Detection Rate : 0.4020        
##    Detection Prevalence : 0.4363        
##       Balanced Accuracy : 0.8808        
##                                         
##        'Positive' Class : 0             
## 

Modelo 5. Bosques Aleatorios

modelo5 <- train(target~., data=entrenamiento,
                 method="rf", #se cambia metodo para cambiar modelo
                 preProcess=c("scale", "center"),
                 trControl= trainControl(method = "CV", number = 10),
                 tuneGrid = expand.grid(mtry=c(2,4,6)) #se pueden cambiar parametros
                 )
resultado_entrenamiento5 <- predict(modelo5,entrenamiento)
resultado_prueba5 <- predict(modelo5, prueba)

# Matriz de Confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificaciión

# Matriz de Confusión del Resultado del Entrenamiento
mcre5 <- confusionMatrix(resultado_entrenamiento5,entrenamiento$target)
mcre5
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0 400   0
##          1   0 421
##                                      
##                Accuracy : 1          
##                  95% CI : (0.9955, 1)
##     No Information Rate : 0.5128     
##     P-Value [Acc > NIR] : < 2.2e-16  
##                                      
##                   Kappa : 1          
##                                      
##  Mcnemar's Test P-Value : NA         
##                                      
##             Sensitivity : 1.0000     
##             Specificity : 1.0000     
##          Pos Pred Value : 1.0000     
##          Neg Pred Value : 1.0000     
##              Prevalence : 0.4872     
##          Detection Rate : 0.4872     
##    Detection Prevalence : 0.4872     
##       Balanced Accuracy : 1.0000     
##                                      
##        'Positive' Class : 0          
## 
# Matriz de Confusión del Resultado de la Prueba
mcrp5 <- confusionMatrix(resultado_prueba5,prueba$target)
mcrp5
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0  99   0
##          1   0 105
##                                      
##                Accuracy : 1          
##                  95% CI : (0.9821, 1)
##     No Information Rate : 0.5147     
##     P-Value [Acc > NIR] : < 2.2e-16  
##                                      
##                   Kappa : 1          
##                                      
##  Mcnemar's Test P-Value : NA         
##                                      
##             Sensitivity : 1.0000     
##             Specificity : 1.0000     
##          Pos Pred Value : 1.0000     
##          Neg Pred Value : 1.0000     
##              Prevalence : 0.4853     
##          Detection Rate : 0.4853     
##    Detection Prevalence : 0.4853     
##       Balanced Accuracy : 1.0000     
##                                      
##        'Positive' Class : 0          
## 

Modelo 6. Redes Neuronales

modelo6 <- train(target~., data=entrenamiento,
                 method="nnet", #se cambia metodo para cambiar modelo
                 preProcess=c("scale", "center"),
                 trControl= trainControl(method = "CV", number = 10)
                  #se pueden cambiar parametros
                 )
## # weights:  16
## initial  value 479.323995 
## iter  10 value 281.094620
## iter  20 value 266.097422
## iter  30 value 263.164024
## iter  40 value 262.869027
## iter  50 value 262.691724
## iter  60 value 262.430851
## iter  70 value 262.360300
## iter  80 value 262.356188
## iter  90 value 262.341163
## iter 100 value 262.310302
## final  value 262.310302 
## stopped after 100 iterations
## # weights:  46
## initial  value 576.606727 
## iter  10 value 245.601378
## iter  20 value 207.598271
## iter  30 value 176.962840
## iter  40 value 169.341552
## iter  50 value 160.435924
## iter  60 value 159.243849
## iter  70 value 159.233665
## iter  80 value 159.223644
## iter  90 value 159.158245
## iter 100 value 159.105082
## final  value 159.105082 
## stopped after 100 iterations
## # weights:  76
## initial  value 514.573372 
## iter  10 value 221.494580
## iter  20 value 158.350078
## iter  30 value 123.980193
## iter  40 value 106.517787
## iter  50 value 92.102000
## iter  60 value 83.023293
## iter  70 value 80.502763
## iter  80 value 80.354804
## iter  90 value 80.348850
## iter 100 value 80.347398
## final  value 80.347398 
## stopped after 100 iterations
## # weights:  16
## initial  value 519.240949 
## iter  10 value 343.013541
## iter  20 value 301.460505
## iter  30 value 269.828379
## iter  40 value 269.597902
## iter  50 value 269.461076
## final  value 269.424526 
## converged
## # weights:  46
## initial  value 563.523812 
## iter  10 value 316.292946
## iter  20 value 237.337085
## iter  30 value 207.108728
## iter  40 value 198.785210
## iter  50 value 196.698272
## iter  60 value 195.725048
## iter  70 value 195.455886
## iter  80 value 195.455148
## final  value 195.455143 
## converged
## # weights:  76
## initial  value 561.426541 
## iter  10 value 268.577672
## iter  20 value 204.257074
## iter  30 value 166.620173
## iter  40 value 156.940203
## iter  50 value 152.499353
## iter  60 value 146.384744
## iter  70 value 144.012989
## iter  80 value 141.543079
## iter  90 value 132.477215
## iter 100 value 130.377243
## final  value 130.377243 
## stopped after 100 iterations
## # weights:  16
## initial  value 532.605918 
## iter  10 value 319.764807
## iter  20 value 267.665237
## iter  30 value 264.292536
## iter  40 value 263.291254
## iter  50 value 258.992091
## iter  60 value 250.146665
## iter  70 value 249.836945
## iter  80 value 249.665013
## iter  90 value 249.618013
## iter 100 value 249.617296
## final  value 249.617296 
## stopped after 100 iterations
## # weights:  46
## initial  value 514.607875 
## iter  10 value 269.253157
## iter  20 value 203.495964
## iter  30 value 169.037334
## iter  40 value 154.058898
## iter  50 value 149.287408
## iter  60 value 145.761651
## iter  70 value 144.624718
## iter  80 value 143.863877
## iter  90 value 143.255866
## iter 100 value 143.043620
## final  value 143.043620 
## stopped after 100 iterations
## # weights:  76
## initial  value 630.693860 
## iter  10 value 224.369961
## iter  20 value 131.654723
## iter  30 value 113.823429
## iter  40 value 106.316220
## iter  50 value 102.423388
## iter  60 value 99.930122
## iter  70 value 99.293405
## iter  80 value 98.508003
## iter  90 value 97.894697
## iter 100 value 97.422338
## final  value 97.422338 
## stopped after 100 iterations
## # weights:  16
## initial  value 531.883367 
## iter  10 value 374.578692
## iter  20 value 295.542048
## iter  30 value 262.596408
## iter  40 value 261.859582
## iter  50 value 260.576573
## iter  60 value 259.059402
## iter  70 value 258.701344
## iter  80 value 258.666543
## iter  90 value 258.560648
## iter 100 value 258.517423
## final  value 258.517423 
## stopped after 100 iterations
## # weights:  46
## initial  value 481.312877 
## iter  10 value 238.116260
## iter  20 value 196.813857
## iter  30 value 172.214256
## iter  40 value 157.575733
## iter  50 value 154.947409
## iter  60 value 154.927746
## final  value 154.927698 
## converged
## # weights:  76
## initial  value 520.415569 
## iter  10 value 219.490627
## iter  20 value 158.050979
## iter  30 value 117.315828
## iter  40 value 102.724198
## iter  50 value 98.119898
## iter  60 value 96.983485
## iter  70 value 96.823212
## iter  80 value 96.819185
## iter  90 value 96.816955
## final  value 96.816837 
## converged
## # weights:  16
## initial  value 527.147093 
## iter  10 value 278.801823
## iter  20 value 265.758838
## iter  30 value 262.626293
## iter  40 value 262.612655
## iter  40 value 262.612653
## iter  40 value 262.612653
## final  value 262.612653 
## converged
## # weights:  46
## initial  value 541.963470 
## iter  10 value 290.865796
## iter  20 value 254.512116
## iter  30 value 243.383522
## iter  40 value 222.832206
## iter  50 value 203.969757
## iter  60 value 191.367815
## iter  70 value 182.044271
## iter  80 value 179.826872
## iter  90 value 179.340183
## iter 100 value 179.286464
## final  value 179.286464 
## stopped after 100 iterations
## # weights:  76
## initial  value 705.394127 
## iter  10 value 236.709587
## iter  20 value 193.346257
## iter  30 value 169.773658
## iter  40 value 156.568339
## iter  50 value 145.206150
## iter  60 value 138.182905
## iter  70 value 134.243962
## iter  80 value 131.007489
## iter  90 value 127.761127
## iter 100 value 124.929389
## final  value 124.929389 
## stopped after 100 iterations
## # weights:  16
## initial  value 518.776586 
## iter  10 value 277.220066
## iter  20 value 263.552638
## iter  30 value 259.604008
## iter  40 value 258.765646
## iter  50 value 258.702162
## iter  60 value 258.567297
## iter  70 value 258.548887
## iter  80 value 258.547661
## iter  90 value 258.547470
## iter  90 value 258.547469
## iter  90 value 258.547469
## final  value 258.547469 
## converged
## # weights:  46
## initial  value 530.289763 
## iter  10 value 274.799504
## iter  20 value 237.577864
## iter  30 value 201.273543
## iter  40 value 173.204805
## iter  50 value 158.526485
## iter  60 value 156.785567
## iter  70 value 156.596735
## iter  80 value 156.370472
## iter  90 value 155.992033
## iter 100 value 155.315053
## final  value 155.315053 
## stopped after 100 iterations
## # weights:  76
## initial  value 534.038038 
## iter  10 value 222.564685
## iter  20 value 147.489557
## iter  30 value 102.774571
## iter  40 value 93.713045
## iter  50 value 91.763100
## iter  60 value 91.236508
## iter  70 value 90.973289
## iter  80 value 90.942756
## iter  90 value 90.926177
## iter 100 value 90.913772
## final  value 90.913772 
## stopped after 100 iterations
## # weights:  16
## initial  value 529.838949 
## iter  10 value 287.472309
## iter  20 value 261.577357
## iter  30 value 247.493272
## iter  40 value 239.756994
## iter  50 value 238.787366
## iter  60 value 238.320164
## iter  70 value 236.725613
## iter  80 value 236.120563
## iter  90 value 235.813525
## iter 100 value 235.717103
## final  value 235.717103 
## stopped after 100 iterations
## # weights:  46
## initial  value 529.263063 
## iter  10 value 239.248412
## iter  20 value 202.512264
## iter  30 value 183.138696
## iter  40 value 165.175903
## iter  50 value 144.860547
## iter  60 value 133.229658
## iter  70 value 130.727048
## iter  80 value 130.662585
## iter  90 value 130.658542
## final  value 130.658516 
## converged
## # weights:  76
## initial  value 561.852776 
## iter  10 value 243.019494
## iter  20 value 169.184088
## iter  30 value 129.871524
## iter  40 value 122.058893
## iter  50 value 118.327378
## iter  60 value 115.510727
## iter  70 value 114.226455
## iter  80 value 113.791439
## iter  90 value 113.745458
## iter 100 value 113.727913
## final  value 113.727913 
## stopped after 100 iterations
## # weights:  16
## initial  value 562.080095 
## iter  10 value 287.398809
## iter  20 value 268.899882
## iter  30 value 267.921805
## final  value 267.905113 
## converged
## # weights:  46
## initial  value 577.189429 
## iter  10 value 225.363533
## iter  20 value 200.040477
## iter  30 value 189.424196
## iter  40 value 176.333329
## iter  50 value 169.755557
## iter  60 value 167.422543
## iter  70 value 166.964593
## iter  80 value 166.549095
## iter  90 value 165.841142
## iter 100 value 165.717775
## final  value 165.717775 
## stopped after 100 iterations
## # weights:  76
## initial  value 537.237848 
## iter  10 value 242.347336
## iter  20 value 194.874893
## iter  30 value 160.795978
## iter  40 value 142.568748
## iter  50 value 132.823309
## iter  60 value 129.882449
## iter  70 value 128.479945
## iter  80 value 127.906554
## iter  90 value 127.871063
## iter 100 value 127.869349
## final  value 127.869349 
## stopped after 100 iterations
## # weights:  16
## initial  value 566.091077 
## iter  10 value 315.542837
## iter  20 value 281.779519
## iter  30 value 274.842688
## iter  40 value 271.801253
## iter  50 value 256.296129
## iter  60 value 254.050256
## iter  70 value 254.042144
## iter  80 value 254.034415
## final  value 254.032443 
## converged
## # weights:  46
## initial  value 594.937549 
## iter  10 value 299.934192
## iter  20 value 215.325479
## iter  30 value 193.954647
## iter  40 value 177.299312
## iter  50 value 164.179887
## iter  60 value 162.097352
## iter  70 value 159.095876
## iter  80 value 156.521976
## iter  90 value 155.348777
## iter 100 value 153.105664
## final  value 153.105664 
## stopped after 100 iterations
## # weights:  76
## initial  value 496.489178 
## iter  10 value 204.204626
## iter  20 value 134.031405
## iter  30 value 118.007212
## iter  40 value 112.258582
## iter  50 value 106.658386
## iter  60 value 106.346645
## iter  70 value 106.132061
## iter  80 value 105.895077
## iter  90 value 105.750048
## iter 100 value 105.454938
## final  value 105.454938 
## stopped after 100 iterations
## # weights:  16
## initial  value 514.132003 
## iter  10 value 315.511971
## iter  20 value 260.808178
## iter  30 value 252.781711
## iter  40 value 251.359841
## iter  50 value 244.662458
## iter  60 value 244.266300
## final  value 244.265737 
## converged
## # weights:  46
## initial  value 535.229407 
## iter  10 value 271.557251
## iter  20 value 200.959510
## iter  30 value 168.204356
## iter  40 value 158.529623
## iter  50 value 151.026184
## iter  60 value 146.038276
## iter  70 value 144.728827
## iter  80 value 144.556814
## iter  90 value 144.490421
## iter 100 value 144.466191
## final  value 144.466191 
## stopped after 100 iterations
## # weights:  76
## initial  value 580.681103 
## iter  10 value 216.449866
## iter  20 value 144.019661
## iter  30 value 95.847380
## iter  40 value 76.319858
## iter  50 value 67.800412
## iter  60 value 67.494853
## iter  70 value 67.484987
## iter  80 value 67.483560
## iter  90 value 67.482936
## iter 100 value 67.482684
## final  value 67.482684 
## stopped after 100 iterations
## # weights:  16
## initial  value 592.896015 
## iter  10 value 301.253449
## iter  20 value 276.439575
## iter  30 value 269.913844
## iter  40 value 268.665755
## iter  50 value 268.584324
## final  value 268.570269 
## converged
## # weights:  46
## initial  value 526.727258 
## iter  10 value 266.478529
## iter  20 value 229.985375
## iter  30 value 213.070432
## iter  40 value 206.957167
## iter  50 value 198.429177
## iter  60 value 183.557217
## iter  70 value 175.011389
## iter  80 value 173.071808
## iter  90 value 172.817305
## iter 100 value 172.809721
## final  value 172.809721 
## stopped after 100 iterations
## # weights:  76
## initial  value 563.234488 
## iter  10 value 241.146489
## iter  20 value 194.822147
## iter  30 value 166.158168
## iter  40 value 156.278668
## iter  50 value 145.410342
## iter  60 value 130.600823
## iter  70 value 123.247016
## iter  80 value 120.133034
## iter  90 value 117.533894
## iter 100 value 111.992229
## final  value 111.992229 
## stopped after 100 iterations
## # weights:  16
## initial  value 532.857433 
## iter  10 value 285.262647
## iter  20 value 265.502978
## iter  30 value 256.637823
## iter  40 value 255.153012
## iter  50 value 253.143235
## iter  60 value 252.602000
## iter  70 value 245.716903
## iter  80 value 244.881637
## iter  90 value 244.868268
## final  value 244.867919 
## converged
## # weights:  46
## initial  value 528.478166 
## iter  10 value 255.888368
## iter  20 value 212.069594
## iter  30 value 184.804858
## iter  40 value 176.898926
## iter  50 value 168.163435
## iter  60 value 164.342288
## iter  70 value 164.202701
## iter  80 value 164.103704
## iter  90 value 163.962987
## iter 100 value 163.680429
## final  value 163.680429 
## stopped after 100 iterations
## # weights:  76
## initial  value 627.800777 
## iter  10 value 345.533864
## iter  20 value 258.272383
## iter  30 value 170.896768
## iter  40 value 104.486395
## iter  50 value 74.104175
## iter  60 value 63.633314
## iter  70 value 58.523124
## iter  80 value 56.537365
## iter  90 value 51.265459
## iter 100 value 47.848623
## final  value 47.848623 
## stopped after 100 iterations
## # weights:  16
## initial  value 537.208464 
## iter  10 value 312.961584
## iter  20 value 276.829942
## iter  30 value 272.497716
## iter  40 value 268.435549
## iter  50 value 258.001721
## iter  60 value 257.869974
## final  value 257.869847 
## converged
## # weights:  46
## initial  value 511.618448 
## iter  10 value 245.352316
## iter  20 value 212.714573
## iter  30 value 184.610891
## iter  40 value 161.676612
## iter  50 value 148.457938
## iter  60 value 143.668949
## iter  70 value 143.462728
## iter  80 value 143.442018
## iter  90 value 143.227651
## iter 100 value 143.226006
## final  value 143.226006 
## stopped after 100 iterations
## # weights:  76
## initial  value 536.158271 
## iter  10 value 218.323948
## iter  20 value 159.775741
## iter  30 value 134.025294
## iter  40 value 122.517043
## iter  50 value 112.661024
## iter  60 value 109.253109
## iter  70 value 108.553817
## iter  80 value 108.544012
## iter  90 value 108.543611
## final  value 108.543602 
## converged
## # weights:  16
## initial  value 512.791205 
## iter  10 value 288.253355
## iter  20 value 273.295951
## iter  30 value 270.197403
## iter  40 value 269.870283
## iter  50 value 269.762331
## iter  60 value 268.443632
## iter  70 value 267.646836
## final  value 267.642546 
## converged
## # weights:  46
## initial  value 490.200816 
## iter  10 value 263.282365
## iter  20 value 220.354707
## iter  30 value 196.758552
## iter  40 value 191.398868
## iter  50 value 190.520169
## iter  60 value 190.345012
## iter  70 value 190.313492
## final  value 190.313463 
## converged
## # weights:  76
## initial  value 518.533720 
## iter  10 value 238.635355
## iter  20 value 189.014455
## iter  30 value 153.670317
## iter  40 value 135.980670
## iter  50 value 128.894757
## iter  60 value 125.497160
## iter  70 value 124.197872
## iter  80 value 122.642718
## iter  90 value 122.098856
## iter 100 value 121.948875
## final  value 121.948875 
## stopped after 100 iterations
## # weights:  16
## initial  value 589.126589 
## iter  10 value 362.958252
## iter  20 value 270.152736
## iter  30 value 261.629098
## iter  40 value 261.481850
## iter  50 value 261.418891
## iter  60 value 261.295381
## iter  70 value 261.269401
## iter  70 value 261.269399
## final  value 261.269245 
## converged
## # weights:  46
## initial  value 561.035545 
## iter  10 value 247.480764
## iter  20 value 190.939766
## iter  30 value 165.278781
## iter  40 value 157.401520
## iter  50 value 146.580429
## iter  60 value 145.437498
## iter  70 value 145.091433
## iter  80 value 144.348494
## iter  90 value 143.986925
## iter 100 value 143.694710
## final  value 143.694710 
## stopped after 100 iterations
## # weights:  76
## initial  value 573.003064 
## iter  10 value 219.269925
## iter  20 value 136.899443
## iter  30 value 106.440135
## iter  40 value 92.836655
## iter  50 value 88.457277
## iter  60 value 85.071448
## iter  70 value 81.383835
## iter  80 value 79.662076
## iter  90 value 79.070265
## iter 100 value 78.888587
## final  value 78.888587 
## stopped after 100 iterations
## # weights:  16
## initial  value 505.808968 
## iter  10 value 257.652950
## iter  20 value 247.215652
## iter  30 value 231.600340
## iter  40 value 231.148056
## iter  50 value 231.142935
## iter  60 value 231.138845
## final  value 231.137577 
## converged
## # weights:  46
## initial  value 630.632737 
## iter  10 value 264.986084
## iter  20 value 211.242727
## iter  30 value 188.571426
## iter  40 value 166.329370
## iter  50 value 157.777528
## iter  60 value 157.392684
## iter  70 value 157.389595
## final  value 157.389591 
## converged
## # weights:  76
## initial  value 515.399720 
## iter  10 value 204.772626
## iter  20 value 135.901691
## iter  30 value 92.631119
## iter  40 value 71.046045
## iter  50 value 64.287345
## iter  60 value 62.648911
## iter  70 value 62.008254
## iter  80 value 61.093677
## iter  90 value 60.430869
## iter 100 value 60.079144
## final  value 60.079144 
## stopped after 100 iterations
## # weights:  16
## initial  value 527.795133 
## iter  10 value 290.631413
## iter  20 value 266.438590
## iter  30 value 259.430456
## iter  40 value 259.406328
## final  value 259.406297 
## converged
## # weights:  46
## initial  value 545.042938 
## iter  10 value 245.253415
## iter  20 value 210.956199
## iter  30 value 203.224383
## iter  40 value 201.266565
## iter  50 value 198.084918
## iter  60 value 193.522732
## iter  70 value 187.363693
## iter  80 value 180.494100
## iter  90 value 175.768305
## iter 100 value 174.505369
## final  value 174.505369 
## stopped after 100 iterations
## # weights:  76
## initial  value 531.826145 
## iter  10 value 343.048712
## iter  20 value 228.581573
## iter  30 value 196.747767
## iter  40 value 185.313629
## iter  50 value 173.813093
## iter  60 value 164.137393
## iter  70 value 159.035802
## iter  80 value 154.873527
## iter  90 value 153.335641
## iter 100 value 152.779474
## final  value 152.779474 
## stopped after 100 iterations
## # weights:  16
## initial  value 544.654254 
## iter  10 value 267.652772
## iter  20 value 257.843158
## iter  30 value 255.185977
## iter  40 value 247.725631
## iter  50 value 243.693943
## iter  60 value 241.512469
## iter  70 value 238.338396
## iter  80 value 238.135970
## iter  90 value 238.089580
## final  value 237.914707 
## converged
## # weights:  46
## initial  value 522.483917 
## iter  10 value 276.764635
## iter  20 value 215.254964
## iter  30 value 189.781182
## iter  40 value 173.941259
## iter  50 value 152.401781
## iter  60 value 144.277755
## iter  70 value 143.841431
## iter  80 value 143.585440
## iter  90 value 143.519492
## iter 100 value 143.442614
## final  value 143.442614 
## stopped after 100 iterations
## # weights:  76
## initial  value 603.697432 
## iter  10 value 305.940201
## iter  20 value 164.707637
## iter  30 value 135.087575
## iter  40 value 110.688248
## iter  50 value 79.675824
## iter  60 value 63.319931
## iter  70 value 51.610374
## iter  80 value 44.286748
## iter  90 value 38.552639
## iter 100 value 36.092398
## final  value 36.092398 
## stopped after 100 iterations
## # weights:  16
## initial  value 521.723042 
## iter  10 value 338.018428
## iter  20 value 266.719536
## iter  30 value 259.722176
## iter  40 value 252.725203
## iter  50 value 252.366509
## iter  60 value 249.228038
## iter  70 value 248.332764
## iter  80 value 240.840111
## final  value 240.719301 
## converged
## # weights:  46
## initial  value 496.616858 
## iter  10 value 314.324653
## iter  20 value 227.535974
## iter  30 value 197.539380
## iter  40 value 175.062288
## iter  50 value 157.768868
## iter  60 value 149.207887
## iter  70 value 143.208025
## iter  80 value 143.081951
## final  value 143.081194 
## converged
## # weights:  76
## initial  value 554.331172 
## iter  10 value 241.189864
## iter  20 value 162.007178
## iter  30 value 112.807809
## iter  40 value 79.004963
## iter  50 value 63.835878
## iter  60 value 58.082303
## iter  70 value 56.610539
## iter  80 value 55.392274
## iter  90 value 55.241657
## iter 100 value 55.226076
## final  value 55.226076 
## stopped after 100 iterations
## # weights:  16
## initial  value 573.852513 
## iter  10 value 420.372549
## iter  20 value 296.195614
## iter  30 value 269.998578
## iter  40 value 269.927703
## iter  50 value 269.913774
## final  value 269.911491 
## converged
## # weights:  46
## initial  value 480.218901 
## iter  10 value 232.871998
## iter  20 value 206.833485
## iter  30 value 189.882646
## iter  40 value 186.547527
## iter  50 value 185.936429
## iter  60 value 184.749961
## iter  70 value 184.159300
## iter  80 value 184.156523
## final  value 184.156517 
## converged
## # weights:  76
## initial  value 545.096277 
## iter  10 value 252.242812
## iter  20 value 190.193180
## iter  30 value 167.817507
## iter  40 value 153.055099
## iter  50 value 148.158622
## iter  60 value 145.117124
## iter  70 value 143.168515
## iter  80 value 142.977220
## iter  90 value 142.811244
## iter 100 value 141.907019
## final  value 141.907019 
## stopped after 100 iterations
## # weights:  16
## initial  value 509.395473 
## iter  10 value 266.451483
## iter  20 value 256.483142
## iter  30 value 249.594329
## iter  40 value 249.405039
## iter  50 value 249.303159
## iter  60 value 249.297745
## iter  70 value 249.260624
## iter  80 value 249.256753
## iter  90 value 249.256006
## iter 100 value 249.244035
## final  value 249.244035 
## stopped after 100 iterations
## # weights:  46
## initial  value 516.412380 
## iter  10 value 255.217894
## iter  20 value 211.933261
## iter  30 value 193.652621
## iter  40 value 183.327089
## iter  50 value 171.240703
## iter  60 value 164.303422
## iter  70 value 163.774873
## iter  80 value 163.660806
## iter  90 value 163.432542
## iter 100 value 163.217015
## final  value 163.217015 
## stopped after 100 iterations
## # weights:  76
## initial  value 545.229421 
## iter  10 value 238.747021
## iter  20 value 157.987694
## iter  30 value 100.628384
## iter  40 value 86.892449
## iter  50 value 82.475188
## iter  60 value 81.030198
## iter  70 value 79.343621
## iter  80 value 78.900438
## iter  90 value 77.104322
## iter 100 value 76.882348
## final  value 76.882348 
## stopped after 100 iterations
## # weights:  16
## initial  value 511.479290 
## iter  10 value 324.974368
## iter  20 value 267.480321
## iter  30 value 262.674574
## iter  40 value 250.987445
## iter  50 value 249.527959
## iter  60 value 243.512545
## final  value 243.124045 
## converged
## # weights:  46
## initial  value 553.751897 
## iter  10 value 241.880973
## iter  20 value 208.142057
## iter  30 value 190.770969
## iter  40 value 174.243983
## iter  50 value 162.006115
## iter  60 value 161.790300
## final  value 161.789058 
## converged
## # weights:  76
## initial  value 549.419223 
## iter  10 value 208.009560
## iter  20 value 162.484257
## iter  30 value 119.443258
## iter  40 value 92.902334
## iter  50 value 80.387775
## iter  60 value 68.385355
## iter  70 value 65.560818
## iter  80 value 63.558919
## iter  90 value 62.317037
## iter 100 value 61.769609
## final  value 61.769609 
## stopped after 100 iterations
## # weights:  16
## initial  value 509.486166 
## iter  10 value 304.000637
## iter  20 value 282.909614
## iter  30 value 272.846314
## iter  40 value 271.081949
## iter  50 value 270.790226
## final  value 270.758212 
## converged
## # weights:  46
## initial  value 540.581776 
## iter  10 value 275.162107
## iter  20 value 236.327758
## iter  30 value 223.169347
## iter  40 value 216.765423
## iter  50 value 215.929940
## iter  60 value 215.833860
## iter  70 value 215.821109
## final  value 215.821080 
## converged
## # weights:  76
## initial  value 518.620888 
## iter  10 value 233.460411
## iter  20 value 169.291554
## iter  30 value 151.865637
## iter  40 value 132.295050
## iter  50 value 116.280345
## iter  60 value 107.244506
## iter  70 value 104.148443
## iter  80 value 103.159974
## iter  90 value 101.929647
## iter 100 value 100.290992
## final  value 100.290992 
## stopped after 100 iterations
## # weights:  16
## initial  value 510.830535 
## iter  10 value 267.705760
## iter  20 value 266.329867
## iter  30 value 265.383025
## iter  40 value 264.657327
## iter  50 value 264.411568
## iter  60 value 263.756599
## iter  70 value 263.636739
## iter  80 value 263.626470
## iter  90 value 263.591147
## iter 100 value 263.564573
## final  value 263.564573 
## stopped after 100 iterations
## # weights:  46
## initial  value 523.529754 
## iter  10 value 232.664687
## iter  20 value 197.317218
## iter  30 value 169.865639
## iter  40 value 161.650453
## iter  50 value 151.745712
## iter  60 value 145.804326
## iter  70 value 145.177672
## iter  80 value 145.054912
## iter  90 value 144.971424
## iter 100 value 144.485505
## final  value 144.485505 
## stopped after 100 iterations
## # weights:  76
## initial  value 648.167951 
## iter  10 value 228.183378
## iter  20 value 167.384377
## iter  30 value 141.298931
## iter  40 value 114.430134
## iter  50 value 100.664861
## iter  60 value 98.235539
## iter  70 value 97.952655
## iter  80 value 97.775710
## iter  90 value 97.664210
## iter 100 value 97.546565
## final  value 97.546565 
## stopped after 100 iterations
## # weights:  16
## initial  value 518.631344 
## iter  10 value 297.733583
## iter  20 value 260.956695
## iter  30 value 254.695938
## iter  40 value 251.286726
## iter  50 value 246.329184
## iter  60 value 244.871333
## final  value 244.869219 
## converged
## # weights:  46
## initial  value 543.434605 
## iter  10 value 251.773542
## iter  20 value 202.449008
## iter  30 value 187.161173
## iter  40 value 181.274720
## iter  50 value 175.099144
## iter  60 value 173.794870
## iter  70 value 173.778221
## final  value 173.778191 
## converged
## # weights:  76
## initial  value 543.461199 
## iter  10 value 235.244784
## iter  20 value 179.972798
## iter  30 value 123.832865
## iter  40 value 107.043590
## iter  50 value 99.547832
## iter  60 value 93.482729
## iter  70 value 88.319011
## iter  80 value 85.801047
## iter  90 value 85.347770
## iter 100 value 85.314066
## final  value 85.314066 
## stopped after 100 iterations
## # weights:  16
## initial  value 513.170807 
## iter  10 value 312.964923
## iter  20 value 266.704263
## iter  30 value 265.512215
## final  value 265.511803 
## converged
## # weights:  46
## initial  value 534.279847 
## iter  10 value 306.662731
## iter  20 value 267.643306
## iter  30 value 233.913316
## iter  40 value 229.932655
## iter  50 value 228.385067
## iter  60 value 228.013867
## iter  70 value 227.803003
## iter  80 value 227.391911
## iter  90 value 227.360693
## iter 100 value 227.356496
## final  value 227.356496 
## stopped after 100 iterations
## # weights:  76
## initial  value 558.186278 
## iter  10 value 233.229991
## iter  20 value 188.997413
## iter  30 value 170.180863
## iter  40 value 149.921224
## iter  50 value 129.834174
## iter  60 value 122.719798
## iter  70 value 119.568951
## iter  80 value 115.913620
## iter  90 value 114.913262
## iter 100 value 114.758297
## final  value 114.758297 
## stopped after 100 iterations
## # weights:  16
## initial  value 472.156491 
## iter  10 value 264.535757
## iter  20 value 257.975551
## iter  30 value 248.550883
## iter  40 value 248.323590
## iter  50 value 248.219685
## iter  60 value 248.186525
## iter  70 value 248.160270
## iter  80 value 248.143012
## iter  90 value 248.118058
## iter 100 value 248.084320
## final  value 248.084320 
## stopped after 100 iterations
## # weights:  46
## initial  value 531.016769 
## iter  10 value 264.347459
## iter  20 value 196.711316
## iter  30 value 172.568370
## iter  40 value 158.354419
## iter  50 value 152.872161
## iter  60 value 152.191889
## iter  70 value 149.646750
## iter  80 value 149.423263
## iter  90 value 149.246248
## iter 100 value 149.175043
## final  value 149.175043 
## stopped after 100 iterations
## # weights:  76
## initial  value 561.548118 
## iter  10 value 237.508345
## iter  20 value 155.875623
## iter  30 value 116.534178
## iter  40 value 102.780769
## iter  50 value 95.488081
## iter  60 value 86.509149
## iter  70 value 83.177609
## iter  80 value 79.786885
## iter  90 value 77.250115
## iter 100 value 73.812826
## final  value 73.812826 
## stopped after 100 iterations
## # weights:  16
## initial  value 532.977013 
## iter  10 value 270.983700
## iter  20 value 253.194966
## iter  30 value 249.215656
## iter  40 value 240.339295
## iter  50 value 237.833782
## iter  60 value 236.851897
## iter  70 value 236.614834
## iter  80 value 236.610099
## iter  90 value 236.609496
## final  value 236.609423 
## converged
## # weights:  46
## initial  value 555.309195 
## iter  10 value 248.751626
## iter  20 value 196.117498
## iter  30 value 171.944366
## iter  40 value 158.680935
## iter  50 value 154.443715
## iter  60 value 154.408120
## iter  70 value 154.399516
## iter  80 value 154.399376
## iter  80 value 154.399376
## iter  80 value 154.399376
## final  value 154.399376 
## converged
## # weights:  76
## initial  value 511.367232 
## iter  10 value 203.953530
## iter  20 value 133.752607
## iter  30 value 98.333401
## iter  40 value 91.918591
## iter  50 value 86.902632
## iter  60 value 83.998305
## iter  70 value 82.698892
## iter  80 value 82.647219
## iter  90 value 82.616309
## iter 100 value 82.545014
## final  value 82.545014 
## stopped after 100 iterations
## # weights:  16
## initial  value 521.256289 
## iter  10 value 306.708264
## iter  20 value 267.130443
## iter  30 value 263.111969
## iter  40 value 260.736099
## iter  50 value 260.637888
## final  value 260.631193 
## converged
## # weights:  46
## initial  value 549.379237 
## iter  10 value 251.166479
## iter  20 value 207.779892
## iter  30 value 181.959171
## iter  40 value 175.769951
## iter  50 value 172.516848
## iter  60 value 171.398946
## iter  70 value 171.142492
## iter  80 value 171.130628
## final  value 171.130576 
## converged
## # weights:  76
## initial  value 643.677356 
## iter  10 value 237.084284
## iter  20 value 180.173768
## iter  30 value 157.440679
## iter  40 value 145.052806
## iter  50 value 133.147812
## iter  60 value 122.795644
## iter  70 value 120.825028
## iter  80 value 120.300896
## iter  90 value 120.129467
## iter 100 value 120.095093
## final  value 120.095093 
## stopped after 100 iterations
## # weights:  16
## initial  value 529.671145 
## iter  10 value 308.422455
## iter  20 value 263.324123
## iter  30 value 254.820470
## iter  40 value 250.074065
## iter  50 value 247.071239
## iter  60 value 238.529961
## iter  70 value 238.354462
## iter  80 value 238.286467
## iter  90 value 238.279468
## iter 100 value 238.276363
## final  value 238.276363 
## stopped after 100 iterations
## # weights:  46
## initial  value 520.533673 
## iter  10 value 249.080315
## iter  20 value 198.974673
## iter  30 value 162.924143
## iter  40 value 154.136832
## iter  50 value 147.357539
## iter  60 value 146.540975
## iter  70 value 146.382485
## iter  80 value 146.308529
## iter  90 value 146.280443
## iter 100 value 146.270210
## final  value 146.270210 
## stopped after 100 iterations
## # weights:  76
## initial  value 545.507231 
## iter  10 value 241.416736
## iter  20 value 165.260247
## iter  30 value 134.268320
## iter  40 value 118.129674
## iter  50 value 107.845060
## iter  60 value 105.485286
## iter  70 value 104.660331
## iter  80 value 103.865263
## iter  90 value 103.135034
## iter 100 value 103.067318
## final  value 103.067318 
## stopped after 100 iterations
## # weights:  76
## initial  value 583.510367 
## iter  10 value 245.448391
## iter  20 value 146.635783
## iter  30 value 109.820768
## iter  40 value 100.792281
## iter  50 value 97.386416
## iter  60 value 95.372109
## iter  70 value 94.626991
## iter  80 value 93.976713
## iter  90 value 93.667606
## iter 100 value 93.270533
## final  value 93.270533 
## stopped after 100 iterations
resultado_entrenamiento6 <- predict(modelo6,entrenamiento)
resultado_prueba6 <- predict(modelo6, prueba)

# Matriz de Confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificaciión

#Matriz de confusión del resultado de entrenamiento
mcre6 <- confusionMatrix(resultado_entrenamiento6,entrenamiento$target)
mcre6
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0 387  10
##          1  13 411
##                                           
##                Accuracy : 0.972           
##                  95% CI : (0.9583, 0.9822)
##     No Information Rate : 0.5128          
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.9439          
##                                           
##  Mcnemar's Test P-Value : 0.6767          
##                                           
##             Sensitivity : 0.9675          
##             Specificity : 0.9762          
##          Pos Pred Value : 0.9748          
##          Neg Pred Value : 0.9693          
##              Prevalence : 0.4872          
##          Detection Rate : 0.4714          
##    Detection Prevalence : 0.4836          
##       Balanced Accuracy : 0.9719          
##                                           
##        'Positive' Class : 0               
## 
# Matriz de Confusión del Resultado de la Prueba
mcrp6 <- confusionMatrix(resultado_prueba6,prueba$target)
mcrp6
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0  98   5
##          1   1 100
##                                           
##                Accuracy : 0.9706          
##                  95% CI : (0.9371, 0.9891)
##     No Information Rate : 0.5147          
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.9412          
##                                           
##  Mcnemar's Test P-Value : 0.2207          
##                                           
##             Sensitivity : 0.9899          
##             Specificity : 0.9524          
##          Pos Pred Value : 0.9515          
##          Neg Pred Value : 0.9901          
##              Prevalence : 0.4853          
##          Detection Rate : 0.4804          
##    Detection Prevalence : 0.5049          
##       Balanced Accuracy : 0.9711          
##                                           
##        'Positive' Class : 0               
## 

Tabla de Resultados

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"]),
  "rf" = c(mcre5$overall["Accuracy"], mcrp5$overall["Accuracy"]),
  "nnet" = c(mcre6$overall["Accuracy"], mcrp5$overall["Accuracy"]))

rownames(resultados) <- c("Exactitud del Entrenamiento", "Exactitud de la Prueba")
resultados
##                             svmLinear svmRadial svmPoly     rpart rf      nnet
## Exactitud del Entrenamiento 0.8343484         1       1 0.9244823  1 0.9719854
## Exactitud de la Prueba      0.8480392         1       1 0.8823529  1 1.0000000

Conclusión

En conclusión, el modelo de Bosques aleatorios es el recomendado debido a que muestra una predicción muy buena tanto con los datos de entrenamiento como los de prueba.