Teoría

El paquete CARET (Classification and REgression Trainning) es un paquete integral con una amplia variedad de algoritmos para al aprendizaje automático.

Instalar paquetes y llamar librerías

#install.packages("caret") # Algoritmos de aprendizaje automático 
library(caret)
#install.packages("ggplot2") # Gráficas
library(ggplot2)
#install.packages("lattice") # Crear gráficos
library(lattice)
#install.packages("datasets") # Usar bases de datos precargados
library(datasets)
#install.packages("DataExplorer") # Análisis Descriptivo
library(DataExplorer)
#install.packages("kernlab")
library(kernlab)
#install.packages("randomForest")
library(randomForest)

Crear la base de datos

df <- data.frame(iris)

Entender la base de datos

summary(df)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 
str(df)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
#create_report(df)
plot_missing(df)

plot_histogram(df)

plot_correlation(df)

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

Partir la base de datos

# Normalmente 80-20 o 70-30
set.seed(123)
renglones_entrenamiento <- createDataPartition(df$Species, 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 suporte. Hay varios subtipos: Lineal(svmLinear), Radial(svmRadial), Polinómino(svmPoly), etc.
  • Árbol de Decisión: rpart
  • Redes Neuronales: nnet
  • Random Forest o Bosques Aleatorios: rf

Modelo 1. SVM Lineal

modelo1 <- train(Species~., data=entrenamiento,
                 method="svmLinear", #Cambiar
                 preProcess = c("scale","center"),
                 trControl = trainControl(method = "cv", number = 10),
                 tuneGride = data.frame(c=1) #Cambiar
                 )

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 clasificación

# Matriz de Confusión del Resultado del Entrenamiento
mcre1 <- confusionMatrix(resultado_entrenamiento1, entrenamiento$Species)
mcre1
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   setosa versicolor virginica
##   setosa         40          0         0
##   versicolor      0         39         0
##   virginica       0          1        40
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9917          
##                  95% CI : (0.9544, 0.9998)
##     No Information Rate : 0.3333          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.9875          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                 1.0000            0.9750           1.0000
## Specificity                 1.0000            1.0000           0.9875
## Pos Pred Value              1.0000            1.0000           0.9756
## Neg Pred Value              1.0000            0.9877           1.0000
## Prevalence                  0.3333            0.3333           0.3333
## Detection Rate              0.3333            0.3250           0.3333
## Detection Prevalence        0.3333            0.3250           0.3417
## Balanced Accuracy           1.0000            0.9875           0.9938
# Matriz de Confusión del Resultado de la Prueba 
mcrp1 <- confusionMatrix(resultado_prueba1, prueba$Species)
mcrp1
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   setosa versicolor virginica
##   setosa         10          0         0
##   versicolor      0         10         1
##   virginica       0          0         9
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9667          
##                  95% CI : (0.8278, 0.9992)
##     No Information Rate : 0.3333          
##     P-Value [Acc > NIR] : 2.963e-13       
##                                           
##                   Kappa : 0.95            
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                 1.0000            1.0000           0.9000
## Specificity                 1.0000            0.9500           1.0000
## Pos Pred Value              1.0000            0.9091           1.0000
## Neg Pred Value              1.0000            1.0000           0.9524
## Prevalence                  0.3333            0.3333           0.3333
## Detection Rate              0.3333            0.3333           0.3000
## Detection Prevalence        0.3333            0.3667           0.3000
## Balanced Accuracy           1.0000            0.9750           0.9500

Modelo 2. SVM Radial

modelo2 <- train(Species~., data=entrenamiento,
                 method="svmRadial", #Cambiar
                 preProcess = c("scale","center"),
                 trControl = trainControl(method = "cv", number = 10),
                 tuneGride = data.frame(sigma=1,c=1) #Cambiar
                 )

resultado_entrenamiento2 <- predict(modelo2, entrenamiento)
resultado_prueba2 <- predict(modelo2, prueba)

# Matriz de confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificación

# Matriz de Confusión del Resultado del Entrenamiento
mcre2 <- confusionMatrix(resultado_entrenamiento2, entrenamiento$Species)
mcre2
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   setosa versicolor virginica
##   setosa         40          0         0
##   versicolor      0         39         0
##   virginica       0          1        40
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9917          
##                  95% CI : (0.9544, 0.9998)
##     No Information Rate : 0.3333          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.9875          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                 1.0000            0.9750           1.0000
## Specificity                 1.0000            1.0000           0.9875
## Pos Pred Value              1.0000            1.0000           0.9756
## Neg Pred Value              1.0000            0.9877           1.0000
## Prevalence                  0.3333            0.3333           0.3333
## Detection Rate              0.3333            0.3250           0.3333
## Detection Prevalence        0.3333            0.3250           0.3417
## Balanced Accuracy           1.0000            0.9875           0.9938
# Matriz de Confusión del Resultado de la Prueba 
mcrp2 <- confusionMatrix(resultado_prueba2, prueba$Species)
mcrp2
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   setosa versicolor virginica
##   setosa         10          0         0
##   versicolor      0         10         2
##   virginica       0          0         8
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9333          
##                  95% CI : (0.7793, 0.9918)
##     No Information Rate : 0.3333          
##     P-Value [Acc > NIR] : 8.747e-12       
##                                           
##                   Kappa : 0.9             
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                 1.0000            1.0000           0.8000
## Specificity                 1.0000            0.9000           1.0000
## Pos Pred Value              1.0000            0.8333           1.0000
## Neg Pred Value              1.0000            1.0000           0.9091
## Prevalence                  0.3333            0.3333           0.3333
## Detection Rate              0.3333            0.3333           0.2667
## Detection Prevalence        0.3333            0.4000           0.2667
## Balanced Accuracy           1.0000            0.9500           0.9000

Modelo 3. SVM Polinómico

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

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

# Matriz de confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificación

# Matriz de Confusión del Resultado del Entrenamiento
mcre3 <- confusionMatrix(resultado_entrenamiento3, entrenamiento$Species)
mcre3
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   setosa versicolor virginica
##   setosa         40          0         0
##   versicolor      0         40         4
##   virginica       0          0        36
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9667          
##                  95% CI : (0.9169, 0.9908)
##     No Information Rate : 0.3333          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.95            
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                 1.0000            1.0000           0.9000
## Specificity                 1.0000            0.9500           1.0000
## Pos Pred Value              1.0000            0.9091           1.0000
## Neg Pred Value              1.0000            1.0000           0.9524
## Prevalence                  0.3333            0.3333           0.3333
## Detection Rate              0.3333            0.3333           0.3000
## Detection Prevalence        0.3333            0.3667           0.3000
## Balanced Accuracy           1.0000            0.9750           0.9500
# Matriz de Confusión del Resultado de la Prueba 
mcrp3 <- confusionMatrix(resultado_prueba3, prueba$Species)
mcrp3
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   setosa versicolor virginica
##   setosa         10          0         0
##   versicolor      0         10         2
##   virginica       0          0         8
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9333          
##                  95% CI : (0.7793, 0.9918)
##     No Information Rate : 0.3333          
##     P-Value [Acc > NIR] : 8.747e-12       
##                                           
##                   Kappa : 0.9             
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                 1.0000            1.0000           0.8000
## Specificity                 1.0000            0.9000           1.0000
## Pos Pred Value              1.0000            0.8333           1.0000
## Neg Pred Value              1.0000            1.0000           0.9091
## Prevalence                  0.3333            0.3333           0.3333
## Detection Rate              0.3333            0.3333           0.2667
## Detection Prevalence        0.3333            0.4000           0.2667
## Balanced Accuracy           1.0000            0.9500           0.9000

Modelo 4. Árbol de Decisión

modelo4 <- train(Species~., data=entrenamiento,
                 method="rpart", #Cambiar
                 preProcess = c("scale","center"),
                 trControl = trainControl(method = "cv", number = 10),
                 tuneLength = 10 #Cambiar
                 )

resultado_entrenamiento4 <- predict(modelo4, entrenamiento)
resultado_prueba4 <- predict(modelo4, prueba)

# Matriz de confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificación

# Matriz de Confusión del Resultado del Entrenamiento
mcre4 <- confusionMatrix(resultado_entrenamiento4, entrenamiento$Species)
mcre4
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   setosa versicolor virginica
##   setosa         40          0         0
##   versicolor      0         39         3
##   virginica       0          1        37
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9667          
##                  95% CI : (0.9169, 0.9908)
##     No Information Rate : 0.3333          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.95            
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                 1.0000            0.9750           0.9250
## Specificity                 1.0000            0.9625           0.9875
## Pos Pred Value              1.0000            0.9286           0.9737
## Neg Pred Value              1.0000            0.9872           0.9634
## Prevalence                  0.3333            0.3333           0.3333
## Detection Rate              0.3333            0.3250           0.3083
## Detection Prevalence        0.3333            0.3500           0.3167
## Balanced Accuracy           1.0000            0.9688           0.9563
# Matriz de Confusión del Resultado de la Prueba 
mcrp4 <- confusionMatrix(resultado_prueba4, prueba$Species)
mcrp4
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   setosa versicolor virginica
##   setosa         10          0         0
##   versicolor      0         10         2
##   virginica       0          0         8
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9333          
##                  95% CI : (0.7793, 0.9918)
##     No Information Rate : 0.3333          
##     P-Value [Acc > NIR] : 8.747e-12       
##                                           
##                   Kappa : 0.9             
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                 1.0000            1.0000           0.8000
## Specificity                 1.0000            0.9000           1.0000
## Pos Pred Value              1.0000            0.8333           1.0000
## Neg Pred Value              1.0000            1.0000           0.9091
## Prevalence                  0.3333            0.3333           0.3333
## Detection Rate              0.3333            0.3333           0.2667
## Detection Prevalence        0.3333            0.4000           0.2667
## Balanced Accuracy           1.0000            0.9500           0.9000

Modelo 5. Bosques Aleatorios

modelo5 <- train(Species~., data=entrenamiento,
                 method="rf", #Cambiar
                 preProcess = c("scale","center"),
                 trControl = trainControl(method = "cv", number = 10),
                 tuenGrid = expand.grid(mtry=c(2,4,6)) #Cambiar
                 )

resultado_entrenamiento5 <- predict(modelo5, entrenamiento)
resultado_prueba5 <- predict(modelo5, prueba)

# Matriz de confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificación

# Matriz de Confusión del Resultado del Entrenamiento
mcre5 <- confusionMatrix(resultado_entrenamiento5, entrenamiento$Species)
mcre5
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   setosa versicolor virginica
##   setosa         40          0         0
##   versicolor      0         40         0
##   virginica       0          0        40
## 
## Overall Statistics
##                                      
##                Accuracy : 1          
##                  95% CI : (0.9697, 1)
##     No Information Rate : 0.3333     
##     P-Value [Acc > NIR] : < 2.2e-16  
##                                      
##                   Kappa : 1          
##                                      
##  Mcnemar's Test P-Value : NA         
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                 1.0000            1.0000           1.0000
## Specificity                 1.0000            1.0000           1.0000
## Pos Pred Value              1.0000            1.0000           1.0000
## Neg Pred Value              1.0000            1.0000           1.0000
## Prevalence                  0.3333            0.3333           0.3333
## Detection Rate              0.3333            0.3333           0.3333
## Detection Prevalence        0.3333            0.3333           0.3333
## Balanced Accuracy           1.0000            1.0000           1.0000
# Matriz de Confusión del Resultado de la Prueba 
mcrp5 <- confusionMatrix(resultado_prueba5, prueba$Species)
mcrp5
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   setosa versicolor virginica
##   setosa         10          0         0
##   versicolor      0         10         2
##   virginica       0          0         8
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9333          
##                  95% CI : (0.7793, 0.9918)
##     No Information Rate : 0.3333          
##     P-Value [Acc > NIR] : 8.747e-12       
##                                           
##                   Kappa : 0.9             
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                 1.0000            1.0000           0.8000
## Specificity                 1.0000            0.9000           1.0000
## Pos Pred Value              1.0000            0.8333           1.0000
## Neg Pred Value              1.0000            1.0000           0.9091
## Prevalence                  0.3333            0.3333           0.3333
## Detection Rate              0.3333            0.3333           0.2667
## Detection Prevalence        0.3333            0.4000           0.2667
## Balanced Accuracy           1.0000            0.9500           0.9000

Modelo 6. Redes Neuronales

modelo6 <- train(Species~., data=entrenamiento,
                 method="nnet", #Cambiar
                 preProcess = c("scale","center"),
                 trControl = trainControl(method = "cv", number = 10)
                 )
## # weights:  11
## initial  value 121.479281 
## iter  10 value 53.450453
## iter  20 value 49.907198
## final  value 49.906520 
## converged
## # weights:  27
## initial  value 150.162177 
## iter  10 value 12.272319
## iter  20 value 0.635916
## iter  30 value 0.002021
## final  value 0.000076 
## converged
## # weights:  43
## initial  value 148.279023 
## iter  10 value 4.533150
## iter  20 value 0.503591
## iter  30 value 0.000374
## final  value 0.000074 
## converged
## # weights:  11
## initial  value 124.326964 
## iter  10 value 47.983292
## iter  20 value 43.936907
## final  value 43.936579 
## converged
## # weights:  27
## initial  value 130.514362 
## iter  10 value 30.276382
## iter  20 value 21.632233
## iter  30 value 20.037113
## iter  40 value 19.875577
## iter  50 value 19.845053
## iter  60 value 19.843091
## final  value 19.843084 
## converged
## # weights:  43
## initial  value 133.161812 
## iter  10 value 32.634556
## iter  20 value 20.839176
## iter  30 value 19.121106
## iter  40 value 18.783068
## iter  50 value 18.656955
## iter  60 value 18.615183
## iter  70 value 18.397942
## iter  80 value 18.307723
## final  value 18.307489 
## converged
## # weights:  11
## initial  value 121.735494 
## iter  10 value 51.042971
## iter  20 value 50.097825
## iter  30 value 50.072042
## iter  40 value 49.875581
## iter  50 value 45.727559
## iter  60 value 17.150500
## iter  70 value 5.416728
## iter  80 value 4.324952
## iter  90 value 4.173898
## iter 100 value 3.920196
## final  value 3.920196 
## stopped after 100 iterations
## # weights:  27
## initial  value 134.149644 
## iter  10 value 24.495796
## iter  20 value 6.690057
## iter  30 value 5.386809
## iter  40 value 5.331828
## iter  50 value 0.766059
## iter  60 value 0.692709
## iter  70 value 0.659993
## iter  80 value 0.575032
## iter  90 value 0.514554
## iter 100 value 0.507735
## final  value 0.507735 
## stopped after 100 iterations
## # weights:  43
## initial  value 154.030125 
## iter  10 value 12.401045
## iter  20 value 2.487019
## iter  30 value 0.540987
## iter  40 value 0.474536
## iter  50 value 0.408900
## iter  60 value 0.397111
## iter  70 value 0.373081
## iter  80 value 0.356579
## iter  90 value 0.345357
## iter 100 value 0.331839
## final  value 0.331839 
## stopped after 100 iterations
## # weights:  11
## initial  value 131.243270 
## iter  10 value 14.809508
## iter  20 value 1.061007
## iter  30 value 0.145675
## iter  40 value 0.104787
## iter  50 value 0.070078
## iter  60 value 0.065702
## iter  70 value 0.051699
## iter  80 value 0.049185
## iter  90 value 0.048328
## iter 100 value 0.041674
## final  value 0.041674 
## stopped after 100 iterations
## # weights:  27
## initial  value 129.116233 
## iter  10 value 23.774884
## iter  20 value 0.492883
## iter  30 value 0.000534
## final  value 0.000073 
## converged
## # weights:  43
## initial  value 119.029849 
## iter  10 value 2.612837
## iter  20 value 0.006584
## iter  30 value 0.000242
## final  value 0.000086 
## converged
## # weights:  11
## initial  value 112.582199 
## iter  10 value 55.453161
## iter  20 value 44.009779
## iter  30 value 43.539917
## final  value 43.539622 
## converged
## # weights:  27
## initial  value 129.529045 
## iter  10 value 32.024526
## iter  20 value 19.384404
## iter  30 value 19.202989
## iter  40 value 19.198455
## final  value 19.198447 
## converged
## # weights:  43
## initial  value 108.972312 
## iter  10 value 31.010243
## iter  20 value 19.496527
## iter  30 value 18.154485
## iter  40 value 17.809719
## iter  50 value 17.480763
## iter  60 value 17.440168
## iter  70 value 17.439749
## final  value 17.439746 
## converged
## # weights:  11
## initial  value 137.763002 
## iter  10 value 50.010845
## iter  20 value 49.986907
## iter  30 value 49.976298
## iter  40 value 49.964203
## iter  50 value 49.203975
## iter  60 value 24.104967
## iter  70 value 3.277192
## iter  80 value 2.052800
## iter  90 value 2.025059
## iter 100 value 1.999749
## final  value 1.999749 
## stopped after 100 iterations
## # weights:  27
## initial  value 119.753476 
## iter  10 value 3.223135
## iter  20 value 0.281046
## iter  30 value 0.262725
## iter  40 value 0.241225
## iter  50 value 0.217635
## iter  60 value 0.197174
## iter  70 value 0.192168
## iter  80 value 0.183058
## iter  90 value 0.170137
## iter 100 value 0.165508
## final  value 0.165508 
## stopped after 100 iterations
## # weights:  43
## initial  value 137.209708 
## iter  10 value 4.540361
## iter  20 value 0.188116
## iter  30 value 0.167629
## iter  40 value 0.160712
## iter  50 value 0.152925
## iter  60 value 0.145787
## iter  70 value 0.138713
## iter  80 value 0.136175
## iter  90 value 0.131828
## iter 100 value 0.128243
## final  value 0.128243 
## stopped after 100 iterations
## # weights:  11
## initial  value 117.054213 
## iter  10 value 30.680231
## iter  20 value 4.032632
## iter  30 value 2.825511
## iter  40 value 2.529068
## iter  50 value 2.471806
## iter  60 value 2.425056
## iter  70 value 2.288619
## iter  80 value 2.233082
## iter  90 value 2.123539
## iter 100 value 2.087243
## final  value 2.087243 
## stopped after 100 iterations
## # weights:  27
## initial  value 149.644268 
## iter  10 value 5.474700
## iter  20 value 4.607306
## iter  30 value 4.602719
## iter  40 value 4.600223
## iter  50 value 4.589493
## iter  60 value 3.033383
## iter  70 value 0.213480
## iter  80 value 0.054000
## iter  90 value 0.019348
## iter 100 value 0.012779
## final  value 0.012779 
## stopped after 100 iterations
## # weights:  43
## initial  value 112.386169 
## iter  10 value 12.055014
## iter  20 value 0.358987
## iter  30 value 0.000382
## final  value 0.000054 
## converged
## # weights:  11
## initial  value 130.424103 
## iter  10 value 66.852190
## iter  20 value 43.091788
## iter  30 value 42.999016
## final  value 42.998810 
## converged
## # weights:  27
## initial  value 126.864048 
## iter  10 value 24.051040
## iter  20 value 20.939026
## iter  30 value 20.836264
## final  value 20.834976 
## converged
## # weights:  43
## initial  value 130.949348 
## iter  10 value 28.208504
## iter  20 value 19.010427
## iter  30 value 18.598898
## iter  40 value 18.318582
## iter  50 value 18.161707
## iter  60 value 18.139104
## final  value 18.139058 
## converged
## # weights:  11
## initial  value 121.323124 
## iter  10 value 12.924895
## iter  20 value 5.252596
## iter  30 value 4.383154
## iter  40 value 4.098448
## iter  50 value 3.967205
## iter  60 value 3.899428
## iter  70 value 3.830823
## iter  80 value 3.821472
## iter  90 value 3.820756
## final  value 3.820738 
## converged
## # weights:  27
## initial  value 120.622578 
## iter  10 value 8.310181
## iter  20 value 0.987043
## iter  30 value 0.565148
## iter  40 value 0.494250
## iter  50 value 0.455880
## iter  60 value 0.434680
## iter  70 value 0.420169
## iter  80 value 0.401909
## iter  90 value 0.378788
## iter 100 value 0.374728
## final  value 0.374728 
## stopped after 100 iterations
## # weights:  43
## initial  value 130.723706 
## iter  10 value 4.420186
## iter  20 value 1.915553
## iter  30 value 0.764447
## iter  40 value 0.684566
## iter  50 value 0.561051
## iter  60 value 0.513133
## iter  70 value 0.441263
## iter  80 value 0.424096
## iter  90 value 0.387991
## iter 100 value 0.370354
## final  value 0.370354 
## stopped after 100 iterations
## # weights:  11
## initial  value 121.028047 
## iter  10 value 49.479862
## iter  20 value 46.177135
## iter  30 value 40.540509
## iter  40 value 10.408807
## iter  50 value 4.783788
## iter  60 value 3.294146
## iter  70 value 3.095910
## iter  80 value 2.912052
## iter  90 value 2.765088
## iter 100 value 2.620196
## final  value 2.620196 
## stopped after 100 iterations
## # weights:  27
## initial  value 131.769498 
## iter  10 value 9.264875
## iter  20 value 2.371256
## iter  30 value 0.333096
## iter  40 value 0.001440
## final  value 0.000091 
## converged
## # weights:  43
## initial  value 146.839082 
## iter  10 value 3.873121
## iter  20 value 0.107179
## iter  30 value 0.000195
## final  value 0.000076 
## converged
## # weights:  11
## initial  value 121.980444 
## iter  10 value 61.293876
## iter  20 value 52.381382
## iter  30 value 43.125735
## final  value 43.099744 
## converged
## # weights:  27
## initial  value 153.961556 
## iter  10 value 29.349334
## iter  20 value 19.711297
## iter  30 value 19.582523
## iter  40 value 19.580337
## iter  50 value 19.580279
## iter  50 value 19.580279
## iter  50 value 19.580279
## final  value 19.580279 
## converged
## # weights:  43
## initial  value 128.589763 
## iter  10 value 23.186140
## iter  20 value 18.311889
## iter  30 value 17.898050
## iter  40 value 17.801252
## iter  50 value 17.800988
## final  value 17.800987 
## converged
## # weights:  11
## initial  value 118.406065 
## iter  10 value 50.593711
## iter  20 value 49.965540
## iter  30 value 49.962181
## iter  40 value 49.822113
## iter  50 value 47.296091
## iter  60 value 24.528501
## iter  70 value 5.169297
## iter  80 value 4.036761
## iter  90 value 3.936225
## iter 100 value 3.767303
## final  value 3.767303 
## stopped after 100 iterations
## # weights:  27
## initial  value 124.108624 
## iter  10 value 6.223538
## iter  20 value 1.124703
## iter  30 value 0.571017
## iter  40 value 0.509635
## iter  50 value 0.458401
## iter  60 value 0.439947
## iter  70 value 0.425443
## iter  80 value 0.413000
## iter  90 value 0.394446
## iter 100 value 0.374202
## final  value 0.374202 
## stopped after 100 iterations
## # weights:  43
## initial  value 117.096975 
## iter  10 value 4.999742
## iter  20 value 1.167155
## iter  30 value 0.593440
## iter  40 value 0.571855
## iter  50 value 0.521492
## iter  60 value 0.471347
## iter  70 value 0.415447
## iter  80 value 0.405438
## iter  90 value 0.399166
## iter 100 value 0.387005
## final  value 0.387005 
## stopped after 100 iterations
## # weights:  11
## initial  value 125.431516 
## iter  10 value 49.347266
## iter  20 value 43.844456
## iter  30 value 19.801032
## iter  40 value 5.991168
## iter  50 value 3.732651
## iter  60 value 3.299211
## iter  70 value 2.994679
## iter  80 value 2.378984
## iter  90 value 2.226099
## iter 100 value 2.146529
## final  value 2.146529 
## stopped after 100 iterations
## # weights:  27
## initial  value 141.972413 
## iter  10 value 39.486499
## iter  20 value 10.338255
## iter  30 value 7.785560
## iter  40 value 2.895495
## iter  50 value 0.287671
## iter  60 value 0.038772
## iter  70 value 0.016741
## iter  80 value 0.004492
## iter  90 value 0.001125
## iter 100 value 0.000543
## final  value 0.000543 
## stopped after 100 iterations
## # weights:  43
## initial  value 141.978730 
## iter  10 value 13.892559
## iter  20 value 0.172568
## iter  30 value 0.005507
## final  value 0.000062 
## converged
## # weights:  11
## initial  value 143.227650 
## iter  10 value 50.815925
## iter  20 value 43.760163
## iter  30 value 43.709409
## final  value 43.709395 
## converged
## # weights:  27
## initial  value 122.105724 
## iter  10 value 27.148012
## iter  20 value 20.328803
## iter  30 value 19.708544
## iter  40 value 19.697663
## final  value 19.697661 
## converged
## # weights:  43
## initial  value 142.811757 
## iter  10 value 29.592823
## iter  20 value 19.206690
## iter  30 value 18.530038
## iter  40 value 18.423242
## iter  50 value 18.410673
## iter  60 value 18.408724
## iter  70 value 18.408668
## final  value 18.408662 
## converged
## # weights:  11
## initial  value 127.392443 
## iter  10 value 17.625490
## iter  20 value 3.771293
## iter  30 value 3.423315
## iter  40 value 3.297138
## iter  50 value 3.293962
## iter  60 value 3.289638
## iter  70 value 3.280836
## iter  80 value 3.280612
## iter  90 value 3.280330
## final  value 3.280206 
## converged
## # weights:  27
## initial  value 118.658840 
## iter  10 value 4.758127
## iter  20 value 0.417091
## iter  30 value 0.408543
## iter  40 value 0.388680
## iter  50 value 0.369458
## iter  60 value 0.362392
## iter  70 value 0.345066
## iter  80 value 0.336717
## iter  90 value 0.313423
## iter 100 value 0.304849
## final  value 0.304849 
## stopped after 100 iterations
## # weights:  43
## initial  value 123.493991 
## iter  10 value 3.785004
## iter  20 value 0.408358
## iter  30 value 0.347584
## iter  40 value 0.320774
## iter  50 value 0.267889
## iter  60 value 0.231334
## iter  70 value 0.222518
## iter  80 value 0.206368
## iter  90 value 0.198959
## iter 100 value 0.194445
## final  value 0.194445 
## stopped after 100 iterations
## # weights:  11
## initial  value 133.204506 
## iter  10 value 50.865697
## iter  20 value 24.456450
## iter  30 value 8.487088
## iter  40 value 3.988170
## iter  50 value 1.519749
## iter  60 value 1.212232
## iter  70 value 1.161712
## iter  80 value 1.146934
## iter  90 value 0.920692
## iter 100 value 0.822995
## final  value 0.822995 
## stopped after 100 iterations
## # weights:  27
## initial  value 124.126439 
## iter  10 value 8.015160
## iter  20 value 1.332784
## iter  30 value 0.000400
## final  value 0.000089 
## converged
## # weights:  43
## initial  value 124.452987 
## iter  10 value 5.201666
## iter  20 value 0.115385
## final  value 0.000067 
## converged
## # weights:  11
## initial  value 128.354564 
## iter  10 value 51.415195
## iter  20 value 44.176129
## iter  30 value 44.148405
## final  value 44.148140 
## converged
## # weights:  27
## initial  value 119.366275 
## iter  10 value 21.681267
## iter  20 value 19.617666
## iter  30 value 19.465080
## iter  40 value 19.444229
## final  value 19.444104 
## converged
## # weights:  43
## initial  value 118.678382 
## iter  10 value 20.806460
## iter  20 value 18.874585
## iter  30 value 18.816969
## iter  40 value 18.811556
## iter  50 value 18.811387
## final  value 18.811387 
## converged
## # weights:  11
## initial  value 132.121834 
## iter  10 value 50.152553
## iter  20 value 49.246120
## iter  30 value 44.421842
## iter  40 value 39.239477
## iter  50 value 29.195439
## iter  60 value 5.317869
## iter  70 value 4.127574
## iter  80 value 3.935638
## iter  90 value 3.801276
## iter 100 value 3.772311
## final  value 3.772311 
## stopped after 100 iterations
## # weights:  27
## initial  value 126.964921 
## iter  10 value 9.476206
## iter  20 value 0.743880
## iter  30 value 0.594497
## iter  40 value 0.539049
## iter  50 value 0.447059
## iter  60 value 0.429276
## iter  70 value 0.414371
## iter  80 value 0.404025
## iter  90 value 0.365250
## iter 100 value 0.347975
## final  value 0.347975 
## stopped after 100 iterations
## # weights:  43
## initial  value 126.788478 
## iter  10 value 3.829200
## iter  20 value 0.413327
## iter  30 value 0.380911
## iter  40 value 0.340560
## iter  50 value 0.323627
## iter  60 value 0.317587
## iter  70 value 0.313983
## iter  80 value 0.306017
## iter  90 value 0.298843
## iter 100 value 0.291345
## final  value 0.291345 
## stopped after 100 iterations
## # weights:  11
## initial  value 118.786738 
## iter  10 value 49.841959
## iter  20 value 44.732264
## iter  30 value 21.869847
## iter  40 value 7.024679
## iter  50 value 3.377067
## iter  60 value 2.614001
## iter  70 value 2.374742
## iter  80 value 2.328305
## iter  90 value 2.183052
## iter 100 value 1.995960
## final  value 1.995960 
## stopped after 100 iterations
## # weights:  27
## initial  value 120.489739 
## iter  10 value 10.949300
## iter  20 value 1.053019
## iter  30 value 0.097497
## iter  40 value 0.009433
## iter  50 value 0.002187
## iter  60 value 0.000671
## final  value 0.000060 
## converged
## # weights:  43
## initial  value 119.448380 
## iter  10 value 5.070240
## iter  20 value 0.232232
## iter  30 value 0.000362
## final  value 0.000062 
## converged
## # weights:  11
## initial  value 125.426638 
## iter  10 value 46.579521
## iter  20 value 43.328804
## iter  30 value 43.303472
## final  value 43.303191 
## converged
## # weights:  27
## initial  value 140.533282 
## iter  10 value 23.030031
## iter  20 value 19.586541
## iter  30 value 19.140962
## iter  40 value 19.069036
## iter  50 value 19.068222
## final  value 19.068135 
## converged
## # weights:  43
## initial  value 132.764766 
## iter  10 value 21.088755
## iter  20 value 17.883904
## iter  30 value 17.616425
## iter  40 value 17.537716
## iter  50 value 17.536521
## final  value 17.536217 
## converged
## # weights:  11
## initial  value 129.864220 
## iter  10 value 50.387818
## iter  20 value 50.003243
## iter  30 value 49.985263
## iter  40 value 49.971965
## iter  50 value 49.963354
## iter  60 value 49.864516
## iter  70 value 47.042847
## iter  80 value 26.937577
## iter  90 value 7.361127
## iter 100 value 3.275166
## final  value 3.275166 
## stopped after 100 iterations
## # weights:  27
## initial  value 122.413392 
## iter  10 value 3.280367
## iter  20 value 0.962050
## iter  30 value 0.498602
## iter  40 value 0.431469
## iter  50 value 0.372870
## iter  60 value 0.357209
## iter  70 value 0.349438
## iter  80 value 0.346374
## iter  90 value 0.335182
## iter 100 value 0.326153
## final  value 0.326153 
## stopped after 100 iterations
## # weights:  43
## initial  value 131.938972 
## iter  10 value 4.014107
## iter  20 value 0.472003
## iter  30 value 0.418575
## iter  40 value 0.396808
## iter  50 value 0.376177
## iter  60 value 0.366726
## iter  70 value 0.345131
## iter  80 value 0.336998
## iter  90 value 0.328513
## iter 100 value 0.306167
## final  value 0.306167 
## stopped after 100 iterations
## # weights:  11
## initial  value 119.881335 
## iter  10 value 48.248965
## iter  20 value 25.707338
## iter  30 value 6.115588
## iter  40 value 3.994234
## iter  50 value 3.623481
## iter  60 value 3.041275
## iter  70 value 2.888658
## iter  80 value 2.761364
## iter  90 value 2.738748
## iter 100 value 2.634360
## final  value 2.634360 
## stopped after 100 iterations
## # weights:  27
## initial  value 142.759022 
## iter  10 value 19.824527
## iter  20 value 1.187679
## iter  30 value 0.012708
## final  value 0.000076 
## converged
## # weights:  43
## initial  value 133.111916 
## iter  10 value 5.853373
## iter  20 value 0.958177
## iter  30 value 0.000892
## final  value 0.000078 
## converged
## # weights:  11
## initial  value 126.548016 
## iter  10 value 60.315731
## iter  20 value 51.485385
## iter  30 value 43.954005
## final  value 43.897188 
## converged
## # weights:  27
## initial  value 127.064911 
## iter  10 value 35.240243
## iter  20 value 22.402041
## iter  30 value 21.430369
## iter  40 value 20.352732
## iter  50 value 20.146517
## iter  60 value 20.143305
## final  value 20.143299 
## converged
## # weights:  43
## initial  value 116.645303 
## iter  10 value 22.934128
## iter  20 value 18.978812
## iter  30 value 18.533383
## iter  40 value 18.386825
## iter  50 value 18.356200
## iter  60 value 18.354984
## final  value 18.354984 
## converged
## # weights:  11
## initial  value 135.513211 
## iter  10 value 50.028984
## iter  20 value 49.965197
## iter  30 value 49.953643
## iter  40 value 49.109838
## iter  50 value 28.321675
## iter  60 value 7.094889
## iter  70 value 3.967483
## iter  80 value 3.930483
## iter  90 value 3.875659
## iter 100 value 3.864669
## final  value 3.864669 
## stopped after 100 iterations
## # weights:  27
## initial  value 142.809627 
## iter  10 value 4.841673
## iter  20 value 1.045981
## iter  30 value 0.641301
## iter  40 value 0.596884
## iter  50 value 0.560789
## iter  60 value 0.554687
## iter  70 value 0.544915
## iter  80 value 0.521535
## iter  90 value 0.509914
## iter 100 value 0.500859
## final  value 0.500859 
## stopped after 100 iterations
## # weights:  43
## initial  value 117.174219 
## iter  10 value 5.258879
## iter  20 value 0.980980
## iter  30 value 0.667338
## iter  40 value 0.609452
## iter  50 value 0.586610
## iter  60 value 0.564724
## iter  70 value 0.551428
## iter  80 value 0.522849
## iter  90 value 0.515792
## iter 100 value 0.508776
## final  value 0.508776 
## stopped after 100 iterations
## # weights:  11
## initial  value 128.436767 
## iter  10 value 30.909283
## iter  20 value 5.485062
## iter  30 value 1.415165
## iter  40 value 1.113543
## iter  50 value 1.032260
## iter  60 value 0.812368
## iter  70 value 0.719568
## iter  80 value 0.591234
## iter  90 value 0.503570
## iter 100 value 0.485743
## final  value 0.485743 
## stopped after 100 iterations
## # weights:  27
## initial  value 124.041425 
## iter  10 value 16.372063
## iter  20 value 1.296231
## iter  30 value 0.013963
## iter  40 value 0.000400
## final  value 0.000065 
## converged
## # weights:  43
## initial  value 142.556573 
## iter  10 value 6.305027
## iter  20 value 0.022702
## final  value 0.000095 
## converged
## # weights:  11
## initial  value 128.946178 
## iter  10 value 64.331589
## iter  20 value 58.278653
## iter  30 value 44.740198
## final  value 43.841378 
## converged
## # weights:  27
## initial  value 121.793053 
## iter  10 value 28.036313
## iter  20 value 21.203062
## iter  30 value 20.324519
## iter  40 value 20.323778
## iter  40 value 20.323778
## iter  40 value 20.323778
## final  value 20.323778 
## converged
## # weights:  43
## initial  value 121.002820 
## iter  10 value 29.639711
## iter  20 value 18.276970
## iter  30 value 17.679563
## iter  40 value 17.608024
## iter  50 value 17.600567
## final  value 17.600541 
## converged
## # weights:  11
## initial  value 135.886683 
## iter  10 value 52.407943
## iter  20 value 49.971430
## iter  30 value 49.967144
## iter  40 value 49.962622
## iter  50 value 49.943524
## iter  60 value 42.748488
## iter  70 value 16.926443
## iter  80 value 4.560136
## iter  90 value 3.207232
## iter 100 value 2.595344
## final  value 2.595344 
## stopped after 100 iterations
## # weights:  27
## initial  value 115.468693 
## iter  10 value 13.336875
## iter  20 value 0.486540
## iter  30 value 0.412937
## iter  40 value 0.313896
## iter  50 value 0.255443
## iter  60 value 0.193592
## iter  70 value 0.186985
## iter  80 value 0.175962
## iter  90 value 0.170772
## iter 100 value 0.164352
## final  value 0.164352 
## stopped after 100 iterations
## # weights:  43
## initial  value 137.452003 
## iter  10 value 5.397770
## iter  20 value 0.188688
## iter  30 value 0.168500
## iter  40 value 0.161522
## iter  50 value 0.157038
## iter  60 value 0.154105
## iter  70 value 0.150188
## iter  80 value 0.144188
## iter  90 value 0.140014
## iter 100 value 0.136416
## final  value 0.136416 
## stopped after 100 iterations
## # weights:  11
## initial  value 136.024494 
## iter  10 value 50.669784
## iter  20 value 49.909573
## iter  30 value 49.906638
## final  value 49.906632 
## converged
## # weights:  27
## initial  value 110.714772 
## iter  10 value 6.387096
## iter  20 value 1.862556
## iter  30 value 0.085447
## final  value 0.000090 
## converged
## # weights:  43
## initial  value 147.277630 
## iter  10 value 3.881693
## iter  20 value 0.086793
## iter  30 value 0.001743
## iter  40 value 0.000498
## final  value 0.000090 
## converged
## # weights:  11
## initial  value 121.449567 
## iter  10 value 60.521984
## iter  20 value 46.522243
## iter  30 value 43.422579
## final  value 43.422577 
## converged
## # weights:  27
## initial  value 128.568960 
## iter  10 value 26.286577
## iter  20 value 20.777713
## iter  30 value 20.568498
## final  value 20.568451 
## converged
## # weights:  43
## initial  value 127.362196 
## iter  10 value 24.640743
## iter  20 value 19.259020
## iter  30 value 18.518870
## iter  40 value 18.421764
## iter  50 value 18.396142
## iter  60 value 18.395468
## final  value 18.395464 
## converged
## # weights:  11
## initial  value 123.476755 
## iter  10 value 40.877866
## iter  20 value 8.822057
## iter  30 value 4.783950
## iter  40 value 4.134686
## iter  50 value 3.851969
## iter  60 value 3.581962
## iter  70 value 3.575307
## iter  80 value 3.570929
## iter  90 value 3.564414
## iter 100 value 3.557460
## final  value 3.557460 
## stopped after 100 iterations
## # weights:  27
## initial  value 143.079931 
## iter  10 value 39.521914
## iter  20 value 21.456893
## iter  30 value 9.023796
## iter  40 value 2.099469
## iter  50 value 0.824288
## iter  60 value 0.697961
## iter  70 value 0.611558
## iter  80 value 0.558900
## iter  90 value 0.505761
## iter 100 value 0.471618
## final  value 0.471618 
## stopped after 100 iterations
## # weights:  43
## initial  value 130.065549 
## iter  10 value 5.452054
## iter  20 value 1.774891
## iter  30 value 0.383319
## iter  40 value 0.334483
## iter  50 value 0.283787
## iter  60 value 0.262908
## iter  70 value 0.248293
## iter  80 value 0.240566
## iter  90 value 0.233568
## iter 100 value 0.229540
## final  value 0.229540 
## stopped after 100 iterations
## # weights:  11
## initial  value 134.586120 
## iter  10 value 50.686947
## iter  20 value 46.796898
## final  value 46.796573 
## converged
resultado_entrenamiento6 <- predict(modelo6, entrenamiento)
resultado_prueba6 <- predict(modelo6, prueba)

# Matriz de confusión
# Es una tabla de evaluación que desglosa el rendimiento del modelo de clasificación

# Matriz de Confusión del Resultado del Entrenamiento
mcre6 <- confusionMatrix(resultado_entrenamiento6, entrenamiento$Species)
mcre6
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   setosa versicolor virginica
##   setosa         40          0         0
##   versicolor      0         36         0
##   virginica       0          4        40
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9667          
##                  95% CI : (0.9169, 0.9908)
##     No Information Rate : 0.3333          
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.95            
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                 1.0000            0.9000           1.0000
## Specificity                 1.0000            1.0000           0.9500
## Pos Pred Value              1.0000            1.0000           0.9091
## Neg Pred Value              1.0000            0.9524           1.0000
## Prevalence                  0.3333            0.3333           0.3333
## Detection Rate              0.3333            0.3000           0.3333
## Detection Prevalence        0.3333            0.3000           0.3667
## Balanced Accuracy           1.0000            0.9500           0.9750
# Matriz de Confusión del Resultado de la Prueba 
mcrp6 <- confusionMatrix(resultado_prueba6, prueba$Species)
mcrp6
## Confusion Matrix and Statistics
## 
##             Reference
## Prediction   setosa versicolor virginica
##   setosa         10          0         0
##   versicolor      0          9         0
##   virginica       0          1        10
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9667          
##                  95% CI : (0.8278, 0.9992)
##     No Information Rate : 0.3333          
##     P-Value [Acc > NIR] : 2.963e-13       
##                                           
##                   Kappa : 0.95            
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                 1.0000            0.9000           1.0000
## Specificity                 1.0000            1.0000           0.9500
## Pos Pred Value              1.0000            1.0000           0.9091
## Neg Pred Value              1.0000            0.9524           1.0000
## Prevalence                  0.3333            0.3333           0.3333
## Detection Rate              0.3333            0.3000           0.3333
## Detection Prevalence        0.3333            0.3000           0.3667
## Balanced Accuracy           1.0000            0.9500           0.9750

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"], mcrp6$overall["Accuracy"])
)

rownames(resultados)<- c("Exactitud de Entrenamiento", "Exactitud de la Prueba")
resultados
##                            svmLinear svmRadial   svmPoly     rpart        rf
## Exactitud de Entrenamiento 0.9916667 0.9916667 0.9666667 0.9666667 1.0000000
## Exactitud de la Prueba     0.9666667 0.9333333 0.9333333 0.9333333 0.9333333
##                                 nnet
## Exactitud de Entrenamiento 0.9666667
## Exactitud de la Prueba     0.9666667

Conclusiones

En Conclusión, el modelo de Redes Neuronales es el recomendado para la clasificación de Lirios.

LS0tCnRpdGxlOiAiQ0FSRVQgLSBJcmlzIgphdXRob3I6ICJBbm5hIEx1aXNhIFJvY2hhIC0gQTAxNzQxNzc2IgpkYXRlOiAiMjAyNi0wOC0yNiIKb3V0cHV0OiAKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiBUUlVFIAogICAgdG9jX2Zsb2F0OiBUUlVFCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFCiAgICB0aGVtZTogc2FuZHN0b25lCi0tLQoKPGNlbnRlcj4KIVtdKGh0dHBzOi8vZW5jcnlwdGVkLXRibjAuZ3N0YXRpYy5jb20vaW1hZ2VzP3E9dGJuOkFOZDlHY1RoWTFhMHVOb0RKajhPMnRsczBjbUtJXzVQZHY4dGdOUV9DSkpVUEZ1SHZWZmlJMXVrWDJtdWlwTSZzPTEwKQo8L2NlbnRlcj4KCiMgPHNwYW4gc3R5bGU9ICJjb2xvcjpibHVlIj4gVGVvcsOtYSA8L3NwYW4+CkVsIHBhcXVldGUgKipDQVJFVCAoQ2xhc3NpZmljYXRpb24gYW5kIFJFZ3Jlc3Npb24gVHJhaW5uaW5nKSoqIGVzIHVuIHBhcXVldGUgIGludGVncmFsIGNvbiB1bmEgYW1wbGlhIHZhcmllZGFkIGRlIGFsZ29yaXRtb3MgcGFyYSBhbCBhcHJlbmRpemFqZSBhdXRvbcOhdGljby4gIAoKCiMgPHNwYW4gc3R5bGU9ICJjb2xvcjpibHVlIj4gSW5zdGFsYXIgcGFxdWV0ZXMgeSBsbGFtYXIgbGlicmVyw61hcyA8L3NwYW4+CgpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBwYWdlZC5wcmludD1GQUxTRX0KI2luc3RhbGwucGFja2FnZXMoImNhcmV0IikgIyBBbGdvcml0bW9zIGRlIGFwcmVuZGl6YWplIGF1dG9tw6F0aWNvIApsaWJyYXJ5KGNhcmV0KQojaW5zdGFsbC5wYWNrYWdlcygiZ2dwbG90MiIpICMgR3LDoWZpY2FzCmxpYnJhcnkoZ2dwbG90MikKI2luc3RhbGwucGFja2FnZXMoImxhdHRpY2UiKSAjIENyZWFyIGdyw6FmaWNvcwpsaWJyYXJ5KGxhdHRpY2UpCiNpbnN0YWxsLnBhY2thZ2VzKCJkYXRhc2V0cyIpICMgVXNhciBiYXNlcyBkZSBkYXRvcyBwcmVjYXJnYWRvcwpsaWJyYXJ5KGRhdGFzZXRzKQojaW5zdGFsbC5wYWNrYWdlcygiRGF0YUV4cGxvcmVyIikgIyBBbsOhbGlzaXMgRGVzY3JpcHRpdm8KbGlicmFyeShEYXRhRXhwbG9yZXIpCiNpbnN0YWxsLnBhY2thZ2VzKCJrZXJubGFiIikKbGlicmFyeShrZXJubGFiKQojaW5zdGFsbC5wYWNrYWdlcygicmFuZG9tRm9yZXN0IikKbGlicmFyeShyYW5kb21Gb3Jlc3QpCmBgYAoKIyA8c3BhbiBzdHlsZT0gImNvbG9yOmJsdWUiPiBDcmVhciBsYSBiYXNlIGRlIGRhdG9zIDwvc3Bhbj4KYGBge3J9CmRmIDwtIGRhdGEuZnJhbWUoaXJpcykKYGBgCgojIDxzcGFuIHN0eWxlPSAiY29sb3I6Ymx1ZSI+IEVudGVuZGVyIGxhIGJhc2UgZGUgZGF0b3MgPC9zcGFuPgpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBwYWdlZC5wcmludD1GQUxTRX0Kc3VtbWFyeShkZikKc3RyKGRmKQojY3JlYXRlX3JlcG9ydChkZikKcGxvdF9taXNzaW5nKGRmKQpwbG90X2hpc3RvZ3JhbShkZikKcGxvdF9jb3JyZWxhdGlvbihkZikKYGBgCioqTk9UQTogRW4gbW9kZWxvcyBkZSBjbGFzaWZpY2FjacOzbiwgbGEgdmFyaWFibGUgcXVlIHF1ZXJlbW9zIHByZWRlY2lyIGRlYmUgdGVuZXIgZm9ybWF0byBkZSBGQUNUT1IqKgoKIyA8c3BhbiBzdHlsZT0gImNvbG9yOmJsdWUiPiBQYXJ0aXIgbGEgYmFzZSBkZSBkYXRvcyA8L3NwYW4+CmBgYHtyfQojIE5vcm1hbG1lbnRlIDgwLTIwIG8gNzAtMzAKc2V0LnNlZWQoMTIzKQpyZW5nbG9uZXNfZW50cmVuYW1pZW50byA8LSBjcmVhdGVEYXRhUGFydGl0aW9uKGRmJFNwZWNpZXMsIHA9MC44LCBsaXN0ID0gRkFMU0UpCmVudHJlbmFtaWVudG8gPC0gZGZbcmVuZ2xvbmVzX2VudHJlbmFtaWVudG8sIF0KcHJ1ZWJhIDwtIGRmWy1yZW5nbG9uZXNfZW50cmVuYW1pZW50bywgXQpgYGAKCiMgPHNwYW4gc3R5bGU9ICJjb2xvcjpibHVlIj4gRGlzdGludG9zIHRpcG9zIGRlIE3DqXRvZG9zIHBhcmEgTW9kZWxhciA8L3NwYW4+CkxvcyBtw6l0b2RvcyBtw6FzIHV0aWxpemFkb3MgcGFyYSBtb2RlbGFyIGFwcmVuZGl6YWplIGF1dG9tw6F0aWNvIHNvbjogICAKCiogKipTVk0qKjogKlN1cHBvcnQgVmVjdG9yIE1hY2hpbmUqIG8gTcOhcXVpbmEgZGUgVmVjdG9yZXMgZGUgc3Vwb3J0ZS4gSGF5IHZhcmlvcyBzdWJ0aXBvczogTGluZWFsKHN2bUxpbmVhciksIFJhZGlhbChzdm1SYWRpYWwpLCBQb2xpbsOzbWlubyhzdm1Qb2x5KSwgZXRjLiAgIAoqICoqw4FyYm9sIGRlIERlY2lzacOzbioqOiBycGFydAoqICoqUmVkZXMgTmV1cm9uYWxlcyoqOiBubmV0CiogKipSYW5kb20gRm9yZXN0KiogbyBCb3NxdWVzIEFsZWF0b3Jpb3M6IHJmCgojIDxzcGFuIHN0eWxlPSAiY29sb3I6Ymx1ZSI+IE1vZGVsbyAxLiBTVk0gTGluZWFsIDwvc3Bhbj4KYGBge3J9Cm1vZGVsbzEgPC0gdHJhaW4oU3BlY2llc34uLCBkYXRhPWVudHJlbmFtaWVudG8sCiAgICAgICAgICAgICAgICAgbWV0aG9kPSJzdm1MaW5lYXIiLCAjQ2FtYmlhcgogICAgICAgICAgICAgICAgIHByZVByb2Nlc3MgPSBjKCJzY2FsZSIsImNlbnRlciIpLAogICAgICAgICAgICAgICAgIHRyQ29udHJvbCA9IHRyYWluQ29udHJvbChtZXRob2QgPSAiY3YiLCBudW1iZXIgPSAxMCksCiAgICAgICAgICAgICAgICAgdHVuZUdyaWRlID0gZGF0YS5mcmFtZShjPTEpICNDYW1iaWFyCiAgICAgICAgICAgICAgICAgKQoKcmVzdWx0YWRvX2VudHJlbmFtaWVudG8xIDwtIHByZWRpY3QobW9kZWxvMSwgZW50cmVuYW1pZW50bykKcmVzdWx0YWRvX3BydWViYTEgPC0gcHJlZGljdChtb2RlbG8xLCBwcnVlYmEpCgojIE1hdHJpeiBkZSBjb25mdXNpw7NuCiMgRXMgdW5hIHRhYmxhIGRlIGV2YWx1YWNpw7NuIHF1ZSBkZXNnbG9zYSBlbCByZW5kaW1pZW50byBkZWwgbW9kZWxvIGRlIGNsYXNpZmljYWNpw7NuCgojIE1hdHJpeiBkZSBDb25mdXNpw7NuIGRlbCBSZXN1bHRhZG8gZGVsIEVudHJlbmFtaWVudG8KbWNyZTEgPC0gY29uZnVzaW9uTWF0cml4KHJlc3VsdGFkb19lbnRyZW5hbWllbnRvMSwgZW50cmVuYW1pZW50byRTcGVjaWVzKQptY3JlMQoKIyBNYXRyaXogZGUgQ29uZnVzacOzbiBkZWwgUmVzdWx0YWRvIGRlIGxhIFBydWViYSAKbWNycDEgPC0gY29uZnVzaW9uTWF0cml4KHJlc3VsdGFkb19wcnVlYmExLCBwcnVlYmEkU3BlY2llcykKbWNycDEKCmBgYAojIDxzcGFuIHN0eWxlPSAiY29sb3I6Ymx1ZSI+IE1vZGVsbyAyLiBTVk0gUmFkaWFsIDwvc3Bhbj4KYGBge3J9Cm1vZGVsbzIgPC0gdHJhaW4oU3BlY2llc34uLCBkYXRhPWVudHJlbmFtaWVudG8sCiAgICAgICAgICAgICAgICAgbWV0aG9kPSJzdm1SYWRpYWwiLCAjQ2FtYmlhcgogICAgICAgICAgICAgICAgIHByZVByb2Nlc3MgPSBjKCJzY2FsZSIsImNlbnRlciIpLAogICAgICAgICAgICAgICAgIHRyQ29udHJvbCA9IHRyYWluQ29udHJvbChtZXRob2QgPSAiY3YiLCBudW1iZXIgPSAxMCksCiAgICAgICAgICAgICAgICAgdHVuZUdyaWRlID0gZGF0YS5mcmFtZShzaWdtYT0xLGM9MSkgI0NhbWJpYXIKICAgICAgICAgICAgICAgICApCgpyZXN1bHRhZG9fZW50cmVuYW1pZW50bzIgPC0gcHJlZGljdChtb2RlbG8yLCBlbnRyZW5hbWllbnRvKQpyZXN1bHRhZG9fcHJ1ZWJhMiA8LSBwcmVkaWN0KG1vZGVsbzIsIHBydWViYSkKCiMgTWF0cml6IGRlIGNvbmZ1c2nDs24KIyBFcyB1bmEgdGFibGEgZGUgZXZhbHVhY2nDs24gcXVlIGRlc2dsb3NhIGVsIHJlbmRpbWllbnRvIGRlbCBtb2RlbG8gZGUgY2xhc2lmaWNhY2nDs24KCiMgTWF0cml6IGRlIENvbmZ1c2nDs24gZGVsIFJlc3VsdGFkbyBkZWwgRW50cmVuYW1pZW50bwptY3JlMiA8LSBjb25mdXNpb25NYXRyaXgocmVzdWx0YWRvX2VudHJlbmFtaWVudG8yLCBlbnRyZW5hbWllbnRvJFNwZWNpZXMpCm1jcmUyCgojIE1hdHJpeiBkZSBDb25mdXNpw7NuIGRlbCBSZXN1bHRhZG8gZGUgbGEgUHJ1ZWJhIAptY3JwMiA8LSBjb25mdXNpb25NYXRyaXgocmVzdWx0YWRvX3BydWViYTIsIHBydWViYSRTcGVjaWVzKQptY3JwMgoKYGBgCiMgPHNwYW4gc3R5bGU9ICJjb2xvcjpibHVlIj4gTW9kZWxvIDMuIFNWTSBQb2xpbsOzbWljbyA8L3NwYW4+CmBgYHtyfQptb2RlbG8zIDwtIHRyYWluKFNwZWNpZXN+LiwgZGF0YT1lbnRyZW5hbWllbnRvLAogICAgICAgICAgICAgICAgIG1ldGhvZD0ic3ZtUG9seSIsICNDYW1iaWFyCiAgICAgICAgICAgICAgICAgcHJlUHJvY2VzcyA9IGMoInNjYWxlIiwiY2VudGVyIiksCiAgICAgICAgICAgICAgICAgdHJDb250cm9sID0gdHJhaW5Db250cm9sKG1ldGhvZCA9ICJjdiIsIG51bWJlciA9IDEwKSwKICAgICAgICAgICAgICAgICB0dW5lR3JpZGUgPSBkYXRhLmZyYW1lKGRlZ3JlZT0xLCBzY2FsZT0xLCBjPTEpICNDYW1iaWFyCiAgICAgICAgICAgICAgICAgKQoKcmVzdWx0YWRvX2VudHJlbmFtaWVudG8zIDwtIHByZWRpY3QobW9kZWxvMywgZW50cmVuYW1pZW50bykKcmVzdWx0YWRvX3BydWViYTMgPC0gcHJlZGljdChtb2RlbG8zLCBwcnVlYmEpCgojIE1hdHJpeiBkZSBjb25mdXNpw7NuCiMgRXMgdW5hIHRhYmxhIGRlIGV2YWx1YWNpw7NuIHF1ZSBkZXNnbG9zYSBlbCByZW5kaW1pZW50byBkZWwgbW9kZWxvIGRlIGNsYXNpZmljYWNpw7NuCgojIE1hdHJpeiBkZSBDb25mdXNpw7NuIGRlbCBSZXN1bHRhZG8gZGVsIEVudHJlbmFtaWVudG8KbWNyZTMgPC0gY29uZnVzaW9uTWF0cml4KHJlc3VsdGFkb19lbnRyZW5hbWllbnRvMywgZW50cmVuYW1pZW50byRTcGVjaWVzKQptY3JlMwoKIyBNYXRyaXogZGUgQ29uZnVzacOzbiBkZWwgUmVzdWx0YWRvIGRlIGxhIFBydWViYSAKbWNycDMgPC0gY29uZnVzaW9uTWF0cml4KHJlc3VsdGFkb19wcnVlYmEzLCBwcnVlYmEkU3BlY2llcykKbWNycDMKCmBgYAojIDxzcGFuIHN0eWxlPSAiY29sb3I6Ymx1ZSI+IE1vZGVsbyA0LiDDgXJib2wgZGUgRGVjaXNpw7NuIDwvc3Bhbj4KYGBge3J9Cm1vZGVsbzQgPC0gdHJhaW4oU3BlY2llc34uLCBkYXRhPWVudHJlbmFtaWVudG8sCiAgICAgICAgICAgICAgICAgbWV0aG9kPSJycGFydCIsICNDYW1iaWFyCiAgICAgICAgICAgICAgICAgcHJlUHJvY2VzcyA9IGMoInNjYWxlIiwiY2VudGVyIiksCiAgICAgICAgICAgICAgICAgdHJDb250cm9sID0gdHJhaW5Db250cm9sKG1ldGhvZCA9ICJjdiIsIG51bWJlciA9IDEwKSwKICAgICAgICAgICAgICAgICB0dW5lTGVuZ3RoID0gMTAgI0NhbWJpYXIKICAgICAgICAgICAgICAgICApCgpyZXN1bHRhZG9fZW50cmVuYW1pZW50bzQgPC0gcHJlZGljdChtb2RlbG80LCBlbnRyZW5hbWllbnRvKQpyZXN1bHRhZG9fcHJ1ZWJhNCA8LSBwcmVkaWN0KG1vZGVsbzQsIHBydWViYSkKCiMgTWF0cml6IGRlIGNvbmZ1c2nDs24KIyBFcyB1bmEgdGFibGEgZGUgZXZhbHVhY2nDs24gcXVlIGRlc2dsb3NhIGVsIHJlbmRpbWllbnRvIGRlbCBtb2RlbG8gZGUgY2xhc2lmaWNhY2nDs24KCiMgTWF0cml6IGRlIENvbmZ1c2nDs24gZGVsIFJlc3VsdGFkbyBkZWwgRW50cmVuYW1pZW50bwptY3JlNCA8LSBjb25mdXNpb25NYXRyaXgocmVzdWx0YWRvX2VudHJlbmFtaWVudG80LCBlbnRyZW5hbWllbnRvJFNwZWNpZXMpCm1jcmU0CgojIE1hdHJpeiBkZSBDb25mdXNpw7NuIGRlbCBSZXN1bHRhZG8gZGUgbGEgUHJ1ZWJhIAptY3JwNCA8LSBjb25mdXNpb25NYXRyaXgocmVzdWx0YWRvX3BydWViYTQsIHBydWViYSRTcGVjaWVzKQptY3JwNApgYGAKIyA8c3BhbiBzdHlsZT0gImNvbG9yOmJsdWUiPiBNb2RlbG8gNS4gQm9zcXVlcyBBbGVhdG9yaW9zIDwvc3Bhbj4KYGBge3J9Cm1vZGVsbzUgPC0gdHJhaW4oU3BlY2llc34uLCBkYXRhPWVudHJlbmFtaWVudG8sCiAgICAgICAgICAgICAgICAgbWV0aG9kPSJyZiIsICNDYW1iaWFyCiAgICAgICAgICAgICAgICAgcHJlUHJvY2VzcyA9IGMoInNjYWxlIiwiY2VudGVyIiksCiAgICAgICAgICAgICAgICAgdHJDb250cm9sID0gdHJhaW5Db250cm9sKG1ldGhvZCA9ICJjdiIsIG51bWJlciA9IDEwKSwKICAgICAgICAgICAgICAgICB0dWVuR3JpZCA9IGV4cGFuZC5ncmlkKG10cnk9YygyLDQsNikpICNDYW1iaWFyCiAgICAgICAgICAgICAgICAgKQoKcmVzdWx0YWRvX2VudHJlbmFtaWVudG81IDwtIHByZWRpY3QobW9kZWxvNSwgZW50cmVuYW1pZW50bykKcmVzdWx0YWRvX3BydWViYTUgPC0gcHJlZGljdChtb2RlbG81LCBwcnVlYmEpCgojIE1hdHJpeiBkZSBjb25mdXNpw7NuCiMgRXMgdW5hIHRhYmxhIGRlIGV2YWx1YWNpw7NuIHF1ZSBkZXNnbG9zYSBlbCByZW5kaW1pZW50byBkZWwgbW9kZWxvIGRlIGNsYXNpZmljYWNpw7NuCgojIE1hdHJpeiBkZSBDb25mdXNpw7NuIGRlbCBSZXN1bHRhZG8gZGVsIEVudHJlbmFtaWVudG8KbWNyZTUgPC0gY29uZnVzaW9uTWF0cml4KHJlc3VsdGFkb19lbnRyZW5hbWllbnRvNSwgZW50cmVuYW1pZW50byRTcGVjaWVzKQptY3JlNQoKIyBNYXRyaXogZGUgQ29uZnVzacOzbiBkZWwgUmVzdWx0YWRvIGRlIGxhIFBydWViYSAKbWNycDUgPC0gY29uZnVzaW9uTWF0cml4KHJlc3VsdGFkb19wcnVlYmE1LCBwcnVlYmEkU3BlY2llcykKbWNycDUKYGBgCiMgPHNwYW4gc3R5bGU9ICJjb2xvcjpibHVlIj4gTW9kZWxvIDYuIFJlZGVzIE5ldXJvbmFsZXMgPC9zcGFuPgpgYGB7cn0KbW9kZWxvNiA8LSB0cmFpbihTcGVjaWVzfi4sIGRhdGE9ZW50cmVuYW1pZW50bywKICAgICAgICAgICAgICAgICBtZXRob2Q9Im5uZXQiLCAjQ2FtYmlhcgogICAgICAgICAgICAgICAgIHByZVByb2Nlc3MgPSBjKCJzY2FsZSIsImNlbnRlciIpLAogICAgICAgICAgICAgICAgIHRyQ29udHJvbCA9IHRyYWluQ29udHJvbChtZXRob2QgPSAiY3YiLCBudW1iZXIgPSAxMCkKICAgICAgICAgICAgICAgICApCgpyZXN1bHRhZG9fZW50cmVuYW1pZW50bzYgPC0gcHJlZGljdChtb2RlbG82LCBlbnRyZW5hbWllbnRvKQpyZXN1bHRhZG9fcHJ1ZWJhNiA8LSBwcmVkaWN0KG1vZGVsbzYsIHBydWViYSkKCiMgTWF0cml6IGRlIGNvbmZ1c2nDs24KIyBFcyB1bmEgdGFibGEgZGUgZXZhbHVhY2nDs24gcXVlIGRlc2dsb3NhIGVsIHJlbmRpbWllbnRvIGRlbCBtb2RlbG8gZGUgY2xhc2lmaWNhY2nDs24KCiMgTWF0cml6IGRlIENvbmZ1c2nDs24gZGVsIFJlc3VsdGFkbyBkZWwgRW50cmVuYW1pZW50bwptY3JlNiA8LSBjb25mdXNpb25NYXRyaXgocmVzdWx0YWRvX2VudHJlbmFtaWVudG82LCBlbnRyZW5hbWllbnRvJFNwZWNpZXMpCm1jcmU2CgojIE1hdHJpeiBkZSBDb25mdXNpw7NuIGRlbCBSZXN1bHRhZG8gZGUgbGEgUHJ1ZWJhIAptY3JwNiA8LSBjb25mdXNpb25NYXRyaXgocmVzdWx0YWRvX3BydWViYTYsIHBydWViYSRTcGVjaWVzKQptY3JwNgpgYGAKCiMgPHNwYW4gc3R5bGU9ICJjb2xvcjpibHVlIj4gVGFibGEgZGUgUmVzdWx0YWRvcyA8L3NwYW4+CmBgYHtyfQpyZXN1bHRhZG9zIDwtIGRhdGEuZnJhbWUoCiAgInN2bUxpbmVhciI9YyhtY3JlMSRvdmVyYWxsWyJBY2N1cmFjeSJdLCBtY3JwMSRvdmVyYWxsWyJBY2N1cmFjeSJdKSwKICAic3ZtUmFkaWFsIj1jKG1jcmUyJG92ZXJhbGxbIkFjY3VyYWN5Il0sIG1jcnAyJG92ZXJhbGxbIkFjY3VyYWN5Il0pLAogICJzdm1Qb2x5Ij1jKG1jcmUzJG92ZXJhbGxbIkFjY3VyYWN5Il0sIG1jcnAzJG92ZXJhbGxbIkFjY3VyYWN5Il0pLAogICJycGFydCI9YyhtY3JlNCRvdmVyYWxsWyJBY2N1cmFjeSJdLCBtY3JwNCRvdmVyYWxsWyJBY2N1cmFjeSJdKSwKICAicmYiPWMobWNyZTUkb3ZlcmFsbFsiQWNjdXJhY3kiXSwgbWNycDUkb3ZlcmFsbFsiQWNjdXJhY3kiXSksCiAgIm5uZXQiPWMobWNyZTYkb3ZlcmFsbFsiQWNjdXJhY3kiXSwgbWNycDYkb3ZlcmFsbFsiQWNjdXJhY3kiXSkKKQoKcm93bmFtZXMocmVzdWx0YWRvcyk8LSBjKCJFeGFjdGl0dWQgZGUgRW50cmVuYW1pZW50byIsICJFeGFjdGl0dWQgZGUgbGEgUHJ1ZWJhIikKcmVzdWx0YWRvcwpgYGAKIyA8c3BhbiBzdHlsZT0gImNvbG9yOmJsdWUiPiBDb25jbHVzaW9uZXMgPC9zcGFuPgpFbiBDb25jbHVzacOzbiwgZWwgbW9kZWxvIGRlICoqUmVkZXMgTmV1cm9uYWxlcyoqIGVzIGVsIHJlY29tZW5kYWRvIHBhcmEgbGEgY2xhc2lmaWNhY2nDs24gZGUgTGlyaW9zLgo=