El paquete CARET (Classification And Regression Training) es un paquete integral con una amplia variedad de algoritmos para el aprendizaje automático.
#install.packages("caret") #Algoritmos de aprendizaje automático
library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
#install.packages("ggplot2") #Grá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)
##
## Attaching package: '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.
##
## Attaching package: 'randomForest'
## The following object is masked from 'package:ggplot2':
##
## margin
df <- data.frame(iris)
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
# 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, ]
Los métodos más utilizados para modelar aprendizaje automático son:
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 de 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
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 de 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
modelo3 <- train(Species~., data=entrenamiento,
method="svmPoly", #Cambiar
preProcess = c("scale","center"),
trControl = trainControl(method="cv", number=10),
tuneGride = data.frame(degree=1,sigma=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 de 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
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 de 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
modelo5 <- train(Species~., data=entrenamiento,
method="rf", #Cambiar
preProcess = c("scale","center"),
trControl = trainControl(method="cv", number=10),
tuneGrid = expand.grid(mtry=c(2,4,6)) #Cambiar
)
## Warning in randomForest.default(x, y, mtry = param$mtry, ...): invalid mtry:
## reset to within valid range
## Warning in randomForest.default(x, y, mtry = param$mtry, ...): invalid mtry:
## reset to within valid range
## Warning in randomForest.default(x, y, mtry = param$mtry, ...): invalid mtry:
## reset to within valid range
## Warning in randomForest.default(x, y, mtry = param$mtry, ...): invalid mtry:
## reset to within valid range
## Warning in randomForest.default(x, y, mtry = param$mtry, ...): invalid mtry:
## reset to within valid range
## Warning in randomForest.default(x, y, mtry = param$mtry, ...): invalid mtry:
## reset to within valid range
## Warning in randomForest.default(x, y, mtry = param$mtry, ...): invalid mtry:
## reset to within valid range
## Warning in randomForest.default(x, y, mtry = param$mtry, ...): invalid mtry:
## reset to within valid range
## Warning in randomForest.default(x, y, mtry = param$mtry, ...): invalid mtry:
## reset to within valid range
## Warning in randomForest.default(x, y, mtry = param$mtry, ...): invalid mtry:
## reset to within valid range
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 de 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
modelo6 <- train(Species~., data=entrenamiento,
method="nnet", #Cambiar
preProcess = c("scale","center"),
trControl = trainControl(method="cv", number=10)
#Cambiar
)
## # weights: 11
## initial value 126.154662
## iter 10 value 50.048602
## iter 20 value 47.429060
## iter 30 value 45.787177
## iter 40 value 45.434304
## iter 50 value 45.374838
## iter 60 value 45.089135
## iter 70 value 11.196504
## iter 80 value 3.619535
## iter 90 value 2.932576
## iter 100 value 2.714616
## final value 2.714616
## stopped after 100 iterations
## # weights: 27
## initial value 161.788034
## iter 10 value 14.561975
## iter 20 value 0.605038
## iter 30 value 0.001845
## final value 0.000074
## converged
## # weights: 43
## initial value 140.296214
## iter 10 value 6.271680
## iter 20 value 0.163333
## iter 30 value 0.000897
## final value 0.000082
## converged
## # weights: 11
## initial value 132.480864
## iter 10 value 57.583482
## iter 20 value 44.052178
## final value 44.046903
## converged
## # weights: 27
## initial value 139.420119
## iter 10 value 28.818974
## iter 20 value 19.992893
## iter 30 value 19.711155
## iter 40 value 19.709264
## iter 50 value 19.709184
## iter 50 value 19.709184
## iter 50 value 19.709184
## final value 19.709184
## converged
## # weights: 43
## initial value 154.274936
## iter 10 value 26.264066
## iter 20 value 20.644698
## iter 30 value 19.420108
## iter 40 value 18.491002
## iter 50 value 18.440854
## iter 60 value 18.436006
## iter 70 value 18.435571
## final value 18.435529
## converged
## # weights: 11
## initial value 129.828524
## iter 10 value 29.200122
## iter 20 value 5.281451
## iter 30 value 3.610622
## iter 40 value 3.114191
## iter 50 value 3.066582
## iter 60 value 3.021939
## iter 70 value 2.977396
## iter 80 value 2.976503
## iter 90 value 2.974709
## final value 2.973602
## converged
## # weights: 27
## initial value 126.664388
## iter 10 value 4.712569
## iter 20 value 0.305208
## iter 30 value 0.287394
## iter 40 value 0.267558
## iter 50 value 0.258061
## iter 60 value 0.248416
## iter 70 value 0.244327
## iter 80 value 0.237650
## iter 90 value 0.228249
## iter 100 value 0.218144
## final value 0.218144
## stopped after 100 iterations
## # weights: 43
## initial value 142.225765
## iter 10 value 4.313550
## iter 20 value 0.371929
## iter 30 value 0.333248
## iter 40 value 0.307199
## iter 50 value 0.290590
## iter 60 value 0.221249
## iter 70 value 0.205156
## iter 80 value 0.198463
## iter 90 value 0.190623
## iter 100 value 0.185782
## final value 0.185782
## stopped after 100 iterations
## # weights: 11
## initial value 123.905912
## iter 10 value 57.195277
## iter 20 value 49.180745
## iter 30 value 43.003305
## iter 40 value 13.638435
## iter 50 value 4.105965
## iter 60 value 3.536221
## iter 70 value 3.123126
## iter 80 value 2.516877
## iter 90 value 2.086155
## iter 100 value 1.772734
## final value 1.772734
## stopped after 100 iterations
## # weights: 27
## initial value 150.323194
## iter 10 value 7.271418
## iter 20 value 0.304396
## iter 30 value 0.000945
## final value 0.000046
## converged
## # weights: 43
## initial value 120.108936
## iter 10 value 5.953416
## iter 20 value 0.226479
## iter 30 value 0.002288
## iter 40 value 0.000387
## final value 0.000078
## converged
## # weights: 11
## initial value 118.275156
## iter 10 value 44.392549
## iter 20 value 43.154917
## final value 43.154900
## converged
## # weights: 27
## initial value 140.206285
## iter 10 value 49.467434
## iter 20 value 23.024323
## iter 30 value 21.599403
## iter 40 value 21.543537
## iter 50 value 21.539326
## iter 60 value 21.539031
## iter 70 value 21.535645
## final value 21.535598
## converged
## # weights: 43
## initial value 136.472646
## iter 10 value 30.034392
## iter 20 value 19.323470
## iter 30 value 17.929789
## iter 40 value 17.843860
## iter 50 value 17.699336
## iter 60 value 17.512057
## iter 70 value 17.511182
## final value 17.511179
## converged
## # weights: 11
## initial value 132.325224
## iter 10 value 56.136015
## iter 20 value 55.341494
## iter 30 value 55.314962
## iter 40 value 55.303966
## iter 50 value 55.251370
## iter 60 value 50.019435
## iter 70 value 50.011180
## iter 80 value 49.967392
## iter 90 value 49.963287
## iter 100 value 47.062585
## final value 47.062585
## stopped after 100 iterations
## # weights: 27
## initial value 139.094262
## iter 10 value 3.996656
## iter 20 value 0.648863
## iter 30 value 0.610539
## iter 40 value 0.490452
## iter 50 value 0.459433
## iter 60 value 0.439475
## iter 70 value 0.416765
## iter 80 value 0.387627
## iter 90 value 0.364682
## iter 100 value 0.361405
## final value 0.361405
## stopped after 100 iterations
## # weights: 43
## initial value 145.929717
## iter 10 value 5.464400
## iter 20 value 1.549774
## iter 30 value 0.421560
## iter 40 value 0.387580
## iter 50 value 0.365186
## iter 60 value 0.344216
## iter 70 value 0.337189
## iter 80 value 0.322317
## iter 90 value 0.310611
## iter 100 value 0.302901
## final value 0.302901
## stopped after 100 iterations
## # weights: 11
## initial value 134.738535
## iter 10 value 90.034069
## iter 20 value 66.547422
## iter 30 value 66.218383
## iter 40 value 66.148020
## iter 50 value 66.139088
## iter 60 value 66.129895
## iter 70 value 63.538765
## iter 80 value 61.651951
## iter 90 value 60.704177
## iter 100 value 54.278551
## final value 54.278551
## stopped after 100 iterations
## # weights: 27
## initial value 158.948958
## iter 10 value 4.936680
## iter 20 value 1.643973
## iter 30 value 0.006658
## iter 40 value 0.000426
## final value 0.000059
## converged
## # weights: 43
## initial value 110.987561
## iter 10 value 4.730618
## iter 20 value 0.162545
## iter 30 value 0.000110
## iter 30 value 0.000054
## iter 30 value 0.000053
## final value 0.000053
## converged
## # weights: 11
## initial value 124.448372
## iter 10 value 54.166199
## iter 20 value 43.785923
## final value 43.784882
## converged
## # weights: 27
## initial value 139.487724
## iter 10 value 31.954047
## iter 20 value 22.569116
## iter 30 value 20.821212
## iter 40 value 20.141530
## iter 50 value 19.738076
## iter 60 value 19.729416
## iter 70 value 19.727639
## final value 19.727639
## converged
## # weights: 43
## initial value 123.940776
## iter 10 value 21.489424
## iter 20 value 18.419176
## iter 30 value 18.196367
## iter 40 value 18.183251
## iter 50 value 18.183122
## final value 18.183117
## converged
## # weights: 11
## initial value 130.121220
## iter 10 value 49.885634
## iter 20 value 47.914431
## iter 30 value 45.779510
## iter 40 value 44.168796
## iter 50 value 32.081508
## iter 60 value 6.082009
## iter 70 value 4.640165
## iter 80 value 4.500135
## iter 90 value 4.067687
## iter 100 value 3.887572
## final value 3.887572
## stopped after 100 iterations
## # weights: 27
## initial value 126.574097
## iter 10 value 23.553950
## iter 20 value 2.447080
## iter 30 value 0.781255
## iter 40 value 0.705511
## iter 50 value 0.600211
## iter 60 value 0.555613
## iter 70 value 0.531150
## iter 80 value 0.516206
## iter 90 value 0.497191
## iter 100 value 0.477903
## final value 0.477903
## stopped after 100 iterations
## # weights: 43
## initial value 128.611920
## iter 10 value 6.194470
## iter 20 value 0.964174
## iter 30 value 0.515971
## iter 40 value 0.441516
## iter 50 value 0.425631
## iter 60 value 0.406008
## iter 70 value 0.382849
## iter 80 value 0.365949
## iter 90 value 0.350943
## iter 100 value 0.303240
## final value 0.303240
## stopped after 100 iterations
## # weights: 11
## initial value 118.941032
## iter 10 value 44.631372
## iter 20 value 23.886178
## iter 30 value 7.274923
## iter 40 value 4.171524
## iter 50 value 3.897185
## iter 60 value 3.074095
## iter 70 value 2.756239
## iter 80 value 2.609340
## iter 90 value 2.588601
## iter 100 value 2.503120
## final value 2.503120
## stopped after 100 iterations
## # weights: 27
## initial value 113.120286
## iter 10 value 7.194922
## iter 20 value 1.119093
## iter 30 value 0.000120
## iter 30 value 0.000059
## iter 30 value 0.000059
## final value 0.000059
## converged
## # weights: 43
## initial value 128.292656
## iter 10 value 8.864264
## iter 20 value 1.986516
## iter 30 value 0.047470
## iter 40 value 0.000933
## final value 0.000038
## converged
## # weights: 11
## initial value 125.434017
## iter 10 value 64.438822
## iter 20 value 48.090492
## iter 30 value 44.148195
## final value 44.116522
## converged
## # weights: 27
## initial value 127.780501
## iter 10 value 33.460603
## iter 20 value 20.369424
## iter 30 value 20.258591
## final value 20.258492
## converged
## # weights: 43
## initial value 126.415100
## iter 10 value 27.025298
## iter 20 value 19.184565
## iter 30 value 18.826007
## iter 40 value 18.757904
## iter 50 value 18.743439
## iter 60 value 18.692529
## iter 70 value 18.454816
## iter 80 value 18.395720
## final value 18.395647
## converged
## # weights: 11
## initial value 118.270173
## iter 10 value 51.497955
## iter 20 value 49.977897
## iter 30 value 49.968698
## iter 40 value 49.964308
## final value 49.955625
## converged
## # weights: 27
## initial value 130.757272
## iter 10 value 7.876558
## iter 20 value 1.359423
## iter 30 value 0.654823
## iter 40 value 0.597562
## iter 50 value 0.570525
## iter 60 value 0.549937
## iter 70 value 0.542867
## iter 80 value 0.526913
## iter 90 value 0.498340
## iter 100 value 0.486623
## final value 0.486623
## stopped after 100 iterations
## # weights: 43
## initial value 146.618582
## iter 10 value 8.655055
## iter 20 value 1.533527
## iter 30 value 0.772295
## iter 40 value 0.727174
## iter 50 value 0.649014
## iter 60 value 0.584837
## iter 70 value 0.513545
## iter 80 value 0.487415
## iter 90 value 0.465265
## iter 100 value 0.384079
## final value 0.384079
## stopped after 100 iterations
## # weights: 11
## initial value 126.000833
## iter 10 value 50.295427
## iter 20 value 49.472885
## iter 30 value 49.220103
## iter 40 value 49.206497
## final value 49.206442
## converged
## # weights: 27
## initial value 125.697913
## iter 10 value 6.086448
## iter 20 value 2.421862
## iter 30 value 0.008416
## final value 0.000090
## converged
## # weights: 43
## initial value 126.394561
## iter 10 value 4.648390
## iter 20 value 0.313838
## iter 30 value 0.003192
## final value 0.000073
## converged
## # weights: 11
## initial value 131.420740
## iter 10 value 44.129471
## iter 20 value 43.481447
## final value 43.481307
## converged
## # weights: 27
## initial value 126.547169
## iter 10 value 28.167429
## iter 20 value 20.573538
## iter 30 value 19.435929
## iter 40 value 19.365110
## final value 19.364846
## converged
## # weights: 43
## initial value 137.690931
## iter 10 value 39.280413
## iter 20 value 21.352841
## iter 30 value 20.310524
## iter 40 value 20.163327
## iter 50 value 20.151201
## iter 60 value 20.150286
## final value 20.150283
## converged
## # weights: 11
## initial value 121.829056
## iter 10 value 43.368262
## iter 20 value 5.991703
## iter 30 value 4.395965
## iter 40 value 3.935466
## iter 50 value 3.898499
## iter 60 value 3.844202
## iter 70 value 3.750228
## iter 80 value 3.749990
## iter 90 value 3.749470
## iter 100 value 3.748870
## final value 3.748870
## stopped after 100 iterations
## # weights: 27
## initial value 146.631491
## iter 10 value 8.481129
## iter 20 value 0.922968
## iter 30 value 0.814604
## iter 40 value 0.716122
## iter 50 value 0.600861
## iter 60 value 0.556521
## iter 70 value 0.518042
## iter 80 value 0.500138
## iter 90 value 0.458980
## iter 100 value 0.410634
## final value 0.410634
## stopped after 100 iterations
## # weights: 43
## initial value 117.948329
## iter 10 value 4.544703
## iter 20 value 0.687427
## iter 30 value 0.525553
## iter 40 value 0.497072
## iter 50 value 0.431370
## iter 60 value 0.405263
## iter 70 value 0.379502
## iter 80 value 0.366528
## iter 90 value 0.351545
## iter 100 value 0.331066
## final value 0.331066
## stopped after 100 iterations
## # weights: 11
## initial value 124.489046
## iter 10 value 49.953166
## iter 20 value 49.911305
## iter 30 value 49.907488
## iter 40 value 49.907148
## iter 50 value 49.906511
## final value 49.906501
## converged
## # weights: 27
## initial value 136.247850
## iter 10 value 16.703621
## iter 20 value 2.147246
## iter 30 value 0.442876
## iter 40 value 0.001483
## final value 0.000071
## converged
## # weights: 43
## initial value 162.112090
## iter 10 value 6.552981
## iter 20 value 1.071715
## iter 30 value 0.001222
## final value 0.000099
## converged
## # weights: 11
## initial value 122.684893
## iter 10 value 58.768163
## iter 20 value 43.905630
## iter 30 value 43.565087
## final value 43.565017
## converged
## # weights: 27
## initial value 123.931365
## iter 10 value 29.720682
## iter 20 value 20.148054
## iter 30 value 19.909664
## iter 40 value 19.901063
## final value 19.901047
## converged
## # weights: 43
## initial value 114.322251
## iter 10 value 32.043615
## iter 20 value 19.081034
## iter 30 value 18.498438
## iter 40 value 18.459951
## iter 50 value 18.458481
## final value 18.458472
## converged
## # weights: 11
## initial value 117.757741
## iter 10 value 36.176118
## iter 20 value 5.862014
## iter 30 value 4.018818
## iter 40 value 3.863578
## iter 50 value 3.821585
## iter 60 value 3.819143
## iter 70 value 3.815525
## final value 3.808618
## converged
## # weights: 27
## initial value 127.614738
## iter 10 value 9.383481
## iter 20 value 1.527943
## iter 30 value 0.778231
## iter 40 value 0.614370
## iter 50 value 0.595383
## iter 60 value 0.569180
## iter 70 value 0.541238
## iter 80 value 0.519341
## iter 90 value 0.445589
## iter 100 value 0.433290
## final value 0.433290
## stopped after 100 iterations
## # weights: 43
## initial value 125.083575
## iter 10 value 5.691190
## iter 20 value 0.675459
## iter 30 value 0.607766
## iter 40 value 0.567793
## iter 50 value 0.507763
## iter 60 value 0.449674
## iter 70 value 0.406804
## iter 80 value 0.389696
## iter 90 value 0.370407
## iter 100 value 0.340462
## final value 0.340462
## stopped after 100 iterations
## # weights: 11
## initial value 121.343721
## iter 10 value 45.881467
## iter 20 value 31.216217
## iter 30 value 7.459858
## iter 40 value 3.973244
## iter 50 value 3.275873
## iter 60 value 2.367635
## iter 70 value 2.205916
## iter 80 value 2.106360
## iter 90 value 2.060791
## iter 100 value 1.689080
## final value 1.689080
## stopped after 100 iterations
## # weights: 27
## initial value 130.012821
## iter 10 value 7.638797
## iter 20 value 1.798215
## iter 30 value 0.006314
## final value 0.000088
## converged
## # weights: 43
## initial value 131.979010
## iter 10 value 3.997876
## iter 20 value 0.235680
## iter 30 value 0.001116
## final value 0.000089
## converged
## # weights: 11
## initial value 135.570262
## iter 10 value 58.796287
## iter 20 value 53.475266
## iter 30 value 43.899730
## final value 43.844028
## converged
## # weights: 27
## initial value 121.444584
## iter 10 value 23.149842
## iter 20 value 21.044073
## iter 30 value 20.495497
## iter 40 value 20.493302
## iter 40 value 20.493302
## iter 40 value 20.493302
## final value 20.493302
## converged
## # weights: 43
## initial value 127.515226
## iter 10 value 30.114591
## iter 20 value 19.227054
## iter 30 value 18.189262
## iter 40 value 18.069084
## iter 50 value 17.725591
## iter 60 value 17.658514
## iter 70 value 17.657227
## final value 17.657184
## converged
## # weights: 11
## initial value 123.121256
## iter 10 value 41.795248
## iter 20 value 8.644830
## iter 30 value 3.620519
## iter 40 value 3.404036
## iter 50 value 3.285022
## iter 60 value 3.282462
## iter 70 value 3.261091
## iter 80 value 3.231905
## iter 90 value 3.231773
## iter 100 value 3.231580
## final value 3.231580
## stopped after 100 iterations
## # weights: 27
## initial value 134.005596
## iter 10 value 4.500463
## iter 20 value 1.008713
## iter 30 value 0.523768
## iter 40 value 0.444410
## iter 50 value 0.420125
## iter 60 value 0.393461
## iter 70 value 0.361197
## iter 80 value 0.347167
## iter 90 value 0.334439
## iter 100 value 0.321024
## final value 0.321024
## stopped after 100 iterations
## # weights: 43
## initial value 138.119868
## iter 10 value 3.156261
## iter 20 value 0.382902
## iter 30 value 0.311994
## iter 40 value 0.296576
## iter 50 value 0.275577
## iter 60 value 0.248813
## iter 70 value 0.240516
## iter 80 value 0.232149
## iter 90 value 0.227705
## iter 100 value 0.225915
## final value 0.225915
## stopped after 100 iterations
## # weights: 11
## initial value 125.752991
## iter 10 value 44.310729
## iter 20 value 11.907721
## iter 30 value 0.345314
## iter 40 value 0.091998
## iter 50 value 0.030742
## iter 60 value 0.030424
## iter 70 value 0.028660
## iter 80 value 0.024845
## iter 90 value 0.024619
## iter 100 value 0.016268
## final value 0.016268
## stopped after 100 iterations
## # weights: 27
## initial value 140.230219
## iter 10 value 11.859198
## iter 20 value 0.082063
## iter 30 value 0.000159
## iter 30 value 0.000083
## iter 30 value 0.000082
## final value 0.000082
## converged
## # weights: 43
## initial value 125.374598
## iter 10 value 1.801863
## iter 20 value 0.018008
## iter 30 value 0.000203
## final value 0.000051
## converged
## # weights: 11
## initial value 144.350959
## iter 10 value 64.056371
## iter 20 value 49.698824
## iter 30 value 42.353995
## final value 42.353914
## converged
## # weights: 27
## initial value 154.963831
## iter 10 value 31.847306
## iter 20 value 20.753011
## iter 30 value 18.405187
## iter 40 value 17.873200
## iter 50 value 17.736710
## iter 60 value 17.731316
## iter 70 value 17.730858
## iter 70 value 17.730858
## iter 70 value 17.730858
## final value 17.730858
## converged
## # weights: 43
## initial value 145.093930
## iter 10 value 22.404663
## iter 20 value 16.592279
## iter 30 value 16.330235
## iter 40 value 16.312788
## iter 50 value 16.312472
## final value 16.312471
## converged
## # weights: 11
## initial value 128.204871
## iter 10 value 50.018497
## iter 20 value 49.832257
## iter 30 value 45.817220
## iter 40 value 7.517597
## iter 50 value 1.623420
## iter 60 value 1.420743
## iter 70 value 1.258022
## iter 80 value 1.193906
## iter 90 value 1.193714
## iter 100 value 1.193452
## final value 1.193452
## stopped after 100 iterations
## # weights: 27
## initial value 126.393846
## iter 10 value 3.399522
## iter 20 value 0.129826
## iter 30 value 0.123486
## iter 40 value 0.120116
## iter 50 value 0.117716
## iter 60 value 0.109358
## iter 70 value 0.107153
## iter 80 value 0.105551
## iter 90 value 0.104657
## iter 100 value 0.103381
## final value 0.103381
## stopped after 100 iterations
## # weights: 43
## initial value 154.646725
## iter 10 value 2.788428
## iter 20 value 0.136867
## iter 30 value 0.124938
## iter 40 value 0.121526
## iter 50 value 0.117165
## iter 60 value 0.112943
## iter 70 value 0.108027
## iter 80 value 0.104600
## iter 90 value 0.102855
## iter 100 value 0.100366
## final value 0.100366
## stopped after 100 iterations
## # weights: 11
## initial value 144.478612
## iter 10 value 49.121353
## iter 20 value 47.961532
## iter 30 value 13.954535
## iter 40 value 3.590413
## iter 50 value 2.092886
## iter 60 value 2.003780
## iter 70 value 1.923140
## iter 80 value 1.900792
## iter 90 value 1.599149
## iter 100 value 1.520319
## final value 1.520319
## stopped after 100 iterations
## # weights: 27
## initial value 118.590071
## iter 10 value 21.170965
## iter 20 value 1.540174
## iter 30 value 0.001946
## iter 40 value 0.000957
## iter 50 value 0.000384
## final value 0.000082
## converged
## # weights: 43
## initial value 128.693322
## iter 10 value 4.909435
## iter 20 value 1.062750
## iter 30 value 0.001171
## final value 0.000092
## converged
## # weights: 11
## initial value 120.648259
## iter 10 value 58.744694
## iter 20 value 44.395834
## iter 30 value 43.694198
## final value 43.694197
## converged
## # weights: 27
## initial value 124.090568
## iter 10 value 23.503317
## iter 20 value 20.156638
## iter 30 value 19.923280
## iter 40 value 19.864877
## final value 19.864570
## converged
## # weights: 43
## initial value 133.369986
## iter 10 value 26.143928
## iter 20 value 18.189114
## iter 30 value 17.977978
## iter 40 value 17.975164
## iter 50 value 17.974889
## final value 17.974850
## converged
## # weights: 11
## initial value 120.568747
## iter 10 value 94.975303
## iter 20 value 50.123570
## iter 30 value 50.072351
## iter 40 value 50.047579
## iter 50 value 49.977674
## iter 60 value 49.967694
## iter 70 value 48.178648
## iter 80 value 24.632719
## iter 90 value 7.678759
## iter 100 value 4.171563
## final value 4.171563
## stopped after 100 iterations
## # weights: 27
## initial value 122.044199
## iter 10 value 5.039401
## iter 20 value 0.675026
## iter 30 value 0.612475
## iter 40 value 0.539596
## iter 50 value 0.526191
## iter 60 value 0.516535
## iter 70 value 0.509899
## iter 80 value 0.499538
## iter 90 value 0.490370
## iter 100 value 0.482049
## final value 0.482049
## stopped after 100 iterations
## # weights: 43
## initial value 123.513829
## iter 10 value 5.248801
## iter 20 value 1.045101
## iter 30 value 0.624127
## iter 40 value 0.588182
## iter 50 value 0.546223
## iter 60 value 0.522713
## iter 70 value 0.492657
## iter 80 value 0.472084
## iter 90 value 0.425942
## iter 100 value 0.393600
## final value 0.393600
## stopped after 100 iterations
## # weights: 11
## initial value 126.418018
## iter 10 value 47.786232
## iter 20 value 16.691380
## iter 30 value 5.587407
## iter 40 value 2.987755
## iter 50 value 2.777220
## iter 60 value 2.685108
## iter 70 value 2.596780
## iter 80 value 2.439233
## iter 90 value 2.254746
## iter 100 value 2.154518
## final value 2.154518
## stopped after 100 iterations
## # weights: 27
## initial value 126.735484
## iter 10 value 14.663635
## iter 20 value 1.154829
## iter 30 value 0.000402
## final value 0.000059
## converged
## # weights: 43
## initial value 141.320195
## iter 10 value 11.553994
## iter 20 value 1.592326
## iter 30 value 0.003382
## final value 0.000066
## converged
## # weights: 11
## initial value 127.334759
## iter 10 value 72.551607
## iter 20 value 57.860739
## iter 30 value 44.997504
## iter 40 value 44.319715
## final value 44.319714
## converged
## # weights: 27
## initial value 132.730846
## iter 10 value 26.790558
## iter 20 value 20.644695
## iter 30 value 20.128648
## iter 40 value 20.017325
## final value 20.009145
## converged
## # weights: 43
## initial value 147.495268
## iter 10 value 21.888582
## iter 20 value 19.659905
## iter 30 value 19.130240
## iter 40 value 19.104657
## iter 50 value 19.104193
## final value 19.104130
## converged
## # weights: 11
## initial value 126.550784
## iter 10 value 41.558281
## iter 20 value 22.506261
## iter 30 value 7.752436
## iter 40 value 4.641145
## iter 50 value 4.393105
## iter 60 value 4.033007
## iter 70 value 3.930395
## iter 80 value 3.882664
## iter 90 value 3.875265
## iter 100 value 3.862103
## final value 3.862103
## stopped after 100 iterations
## # weights: 27
## initial value 126.483324
## iter 10 value 7.585980
## iter 20 value 1.517665
## iter 30 value 0.529186
## iter 40 value 0.504747
## iter 50 value 0.448959
## iter 60 value 0.413158
## iter 70 value 0.397922
## iter 80 value 0.381178
## iter 90 value 0.364197
## iter 100 value 0.351680
## final value 0.351680
## stopped after 100 iterations
## # weights: 43
## initial value 108.105913
## iter 10 value 6.098246
## iter 20 value 0.699769
## iter 30 value 0.570747
## iter 40 value 0.496389
## iter 50 value 0.469627
## iter 60 value 0.455264
## iter 70 value 0.436295
## iter 80 value 0.416914
## iter 90 value 0.410212
## iter 100 value 0.392951
## final value 0.392951
## stopped after 100 iterations
## # weights: 27
## initial value 131.896724
## iter 10 value 39.307720
## iter 20 value 22.081546
## iter 30 value 21.207147
## iter 40 value 20.975896
## iter 50 value 20.463192
## iter 60 value 20.383415
## iter 70 value 20.366063
## final value 20.366062
## 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 de Entrenamiento
mcre6 <- confusionMatrix(resultado_entrenamiento6,entrenamiento$Species)
#mcre6
#Matriz de Confusión del Resultado de la Prueba
mcrp6 <- confusionMatrix(resultado_prueba6, prueba$Species)
#mcrp6
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"]),
"rt" = c(mcre5$overall["Accuracy"], mcrp5$overall["Accuracy"]),
"nnet" = c(mcre6$overall["Accuracy"], mcrp6$overall["Accuracy"])
)
rownames(resultados) <- c("Exactitud del Entrenamiento", "Exactitud de la Prueba")
resultados
## svmLinear svmRadial svmPoly rpart rt
## Exactitud del 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 del Entrenamiento 0.9833333
## Exactitud de la Prueba 0.9666667
En conclusión, el modelo de Redes NEuronales es el recomendado para la clasificación de los lirios.