
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")
library("caret")
#install.packages("ggplot2")
library("ggplot2")
#install.packages("lattice")
library("lattice")
#install.packages("datasets")
library("datasets")
#install.packages("DataExplorer")
library("DataExplorer")
#install.packages("kernlab")
library("kernlab")
#install.packages("randomForest")
library("randomForest")
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 Fator
# 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: * SVM: Support Vector Machine hay varios subtipos: Lineal (svmLinear), Radial (svmRadial), Polinómico (svmPoly), etc. * Árbol de Decisión: rpart * Redes Neuronales: nnet * Random Forest: rf
modelo1 = train(Species~., data=entrenamiento,
method="svmLinear", # Cambiar
preProcess = c("scale","center"),
trControl = trainControl(method="cv", number=10),
tuneGrid = data.frame(C=1) # Cambiar
)
resultado_entrenamiento1 = predict(modelo1,entrenamiento)
resultado_prueba1 = predict(modelo1,prueba)
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
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),
tuneGrid = data.frame(sigma=1, C=1) # Cambiar
)
resultado_entrenamiento2 = predict(modelo2,entrenamiento)
resultado_prueba2 = predict(modelo2,prueba)
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
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),
tuneGrid = data.frame(degree=1, scale=1, C=1) # Cambiar
)
resultado_entrenamiento3 = predict(modelo3,entrenamiento)
resultado_prueba3 = predict(modelo3,prueba)
mcre3 = confusionMatrix(resultado_entrenamiento3,entrenamiento$Species)
mcre3
## 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
mcrp3 = confusionMatrix(resultado_prueba3,prueba$Species)
mcrp3
## 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
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)
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
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),
tuneLength = 10 # Cambiar
)
## note: only 3 unique complexity parameters in default grid. Truncating the grid to 3 .
resultado_entrenamiento5 = predict(modelo5,entrenamiento)
resultado_prueba5 = predict(modelo5,prueba)
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
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))
## # weights: 11
## initial value 122.429801
## iter 10 value 54.793931
## iter 20 value 49.046671
## iter 30 value 48.210677
## iter 40 value 48.056402
## iter 50 value 47.875245
## iter 60 value 47.855889
## iter 70 value 47.743693
## iter 80 value 47.735609
## iter 90 value 47.726467
## iter 100 value 47.708274
## final value 47.708274
## stopped after 100 iterations
## # weights: 27
## initial value 128.983894
## iter 10 value 6.487216
## iter 20 value 2.235177
## iter 30 value 0.123823
## iter 40 value 0.000438
## final value 0.000055
## converged
## # weights: 43
## initial value 136.685625
## iter 10 value 3.856226
## iter 20 value 0.095012
## iter 30 value 0.004023
## iter 40 value 0.000694
## final value 0.000079
## converged
## # weights: 11
## initial value 126.116754
## iter 10 value 51.920751
## iter 20 value 43.216031
## final value 43.206920
## converged
## # weights: 27
## initial value 124.298194
## iter 10 value 27.011887
## iter 20 value 20.019592
## iter 30 value 19.284700
## iter 40 value 19.234447
## iter 50 value 19.231106
## final value 19.231021
## converged
## # weights: 43
## initial value 137.243626
## iter 10 value 25.040391
## iter 20 value 18.027998
## iter 30 value 17.680846
## iter 40 value 17.675231
## iter 50 value 17.674853
## final value 17.674851
## converged
## # weights: 11
## initial value 122.226997
## iter 10 value 71.231930
## iter 20 value 50.045592
## iter 30 value 50.009466
## iter 40 value 49.992771
## iter 50 value 49.981310
## iter 60 value 49.943788
## iter 70 value 49.420977
## iter 80 value 32.510923
## iter 90 value 6.619154
## iter 100 value 4.407515
## final value 4.407515
## stopped after 100 iterations
## # weights: 27
## initial value 126.412149
## iter 10 value 12.478255
## iter 20 value 1.805300
## iter 30 value 0.814140
## iter 40 value 0.745912
## iter 50 value 0.676174
## iter 60 value 0.606975
## iter 70 value 0.567406
## iter 80 value 0.548426
## iter 90 value 0.509524
## iter 100 value 0.437578
## final value 0.437578
## stopped after 100 iterations
## # weights: 43
## initial value 139.483927
## iter 10 value 7.426145
## iter 20 value 2.155378
## iter 30 value 0.631020
## iter 40 value 0.541066
## iter 50 value 0.419010
## iter 60 value 0.361144
## iter 70 value 0.343220
## iter 80 value 0.321160
## iter 90 value 0.309599
## iter 100 value 0.299500
## final value 0.299500
## stopped after 100 iterations
## # weights: 11
## initial value 124.891783
## iter 10 value 32.768602
## iter 20 value 3.767712
## iter 30 value 1.243864
## iter 40 value 1.135034
## iter 50 value 1.012080
## iter 60 value 1.005066
## iter 70 value 0.811933
## iter 80 value 0.794063
## iter 90 value 0.670837
## iter 100 value 0.638178
## final value 0.638178
## stopped after 100 iterations
## # weights: 27
## initial value 132.350110
## iter 10 value 4.682428
## iter 20 value 0.034381
## final value 0.000064
## converged
## # weights: 43
## initial value 111.760806
## iter 10 value 3.560108
## iter 20 value 0.291236
## iter 30 value 0.000501
## final value 0.000088
## converged
## # weights: 11
## initial value 123.302392
## iter 10 value 54.673160
## iter 20 value 43.154301
## final value 43.141197
## converged
## # weights: 27
## initial value 139.828249
## iter 10 value 27.852410
## iter 20 value 19.901485
## iter 30 value 19.100799
## iter 40 value 18.666603
## iter 50 value 18.643962
## final value 18.643820
## converged
## # weights: 43
## initial value 129.044183
## iter 10 value 23.044889
## iter 20 value 17.458651
## iter 30 value 17.195744
## iter 40 value 17.178774
## iter 50 value 17.178501
## final value 17.178465
## converged
## # weights: 11
## initial value 136.546638
## iter 10 value 49.848696
## iter 20 value 48.016291
## iter 30 value 47.974292
## iter 40 value 47.356084
## iter 50 value 46.338811
## iter 60 value 34.417885
## iter 70 value 7.297199
## iter 80 value 4.301609
## iter 90 value 3.264096
## iter 100 value 3.063626
## final value 3.063626
## stopped after 100 iterations
## # weights: 27
## initial value 123.522987
## iter 10 value 2.635527
## iter 20 value 0.393197
## iter 30 value 0.334876
## iter 40 value 0.316525
## iter 50 value 0.308852
## iter 60 value 0.281123
## iter 70 value 0.270503
## iter 80 value 0.261902
## iter 90 value 0.259339
## iter 100 value 0.251660
## final value 0.251660
## stopped after 100 iterations
## # weights: 43
## initial value 119.000995
## iter 10 value 8.287549
## iter 20 value 0.832784
## iter 30 value 0.506206
## iter 40 value 0.431916
## iter 50 value 0.414091
## iter 60 value 0.378776
## iter 70 value 0.339372
## iter 80 value 0.298762
## iter 90 value 0.254963
## iter 100 value 0.244663
## final value 0.244663
## stopped after 100 iterations
## # weights: 11
## initial value 127.410090
## iter 10 value 40.593083
## iter 20 value 10.695478
## iter 30 value 3.078855
## iter 40 value 2.464762
## iter 50 value 2.321976
## iter 60 value 2.234156
## iter 70 value 2.172824
## iter 80 value 1.601610
## iter 90 value 1.566129
## iter 100 value 1.418037
## final value 1.418037
## stopped after 100 iterations
## # weights: 27
## initial value 132.965117
## iter 10 value 10.971315
## iter 20 value 0.248451
## iter 30 value 0.012941
## iter 40 value 0.000844
## iter 50 value 0.000202
## final value 0.000068
## converged
## # weights: 43
## initial value 141.617184
## iter 10 value 6.463006
## iter 20 value 0.210033
## iter 30 value 0.002807
## iter 40 value 0.000136
## final value 0.000070
## converged
## # weights: 11
## initial value 118.064121
## iter 10 value 44.548584
## iter 20 value 43.370142
## final value 43.370139
## converged
## # weights: 27
## initial value 119.511193
## iter 10 value 24.927269
## iter 20 value 21.385319
## iter 30 value 20.534634
## iter 40 value 19.336175
## iter 50 value 19.309636
## final value 19.309618
## converged
## # weights: 43
## initial value 140.372747
## iter 10 value 27.020080
## iter 20 value 19.000914
## iter 30 value 18.632112
## iter 40 value 18.599419
## iter 50 value 18.598445
## final value 18.598273
## converged
## # weights: 11
## initial value 122.185509
## iter 10 value 47.061258
## iter 20 value 21.877642
## iter 30 value 5.433563
## iter 40 value 3.842804
## iter 50 value 3.771553
## iter 60 value 3.761888
## iter 70 value 3.756290
## iter 80 value 3.750724
## iter 90 value 3.748375
## iter 100 value 3.748332
## final value 3.748332
## stopped after 100 iterations
## # weights: 27
## initial value 124.785688
## iter 10 value 8.924459
## iter 20 value 1.341735
## iter 30 value 0.676990
## iter 40 value 0.629315
## iter 50 value 0.545475
## iter 60 value 0.531835
## iter 70 value 0.511704
## iter 80 value 0.478538
## iter 90 value 0.468842
## iter 100 value 0.460245
## final value 0.460245
## stopped after 100 iterations
## # weights: 43
## initial value 141.548593
## iter 10 value 11.830278
## iter 20 value 2.441018
## iter 30 value 0.657039
## iter 40 value 0.560446
## iter 50 value 0.528996
## iter 60 value 0.498475
## iter 70 value 0.476174
## iter 80 value 0.409209
## iter 90 value 0.384185
## iter 100 value 0.367829
## final value 0.367829
## stopped after 100 iterations
## # weights: 11
## initial value 129.546100
## iter 10 value 26.854560
## iter 20 value 3.860921
## iter 30 value 2.101305
## iter 40 value 1.837631
## iter 50 value 1.616688
## iter 60 value 1.217359
## iter 70 value 1.123639
## iter 80 value 1.112773
## iter 90 value 0.972436
## iter 100 value 0.903512
## final value 0.903512
## stopped after 100 iterations
## # weights: 27
## initial value 127.148875
## iter 10 value 16.306830
## iter 20 value 1.278650
## iter 30 value 0.011387
## final value 0.000059
## converged
## # weights: 43
## initial value 112.486221
## iter 10 value 13.588651
## iter 20 value 1.722091
## iter 30 value 0.040172
## iter 40 value 0.000532
## final value 0.000072
## converged
## # weights: 11
## initial value 118.184569
## iter 10 value 54.505929
## iter 20 value 43.524275
## iter 30 value 43.515693
## final value 43.515689
## converged
## # weights: 27
## initial value 127.273668
## iter 10 value 26.357455
## iter 20 value 19.658524
## iter 30 value 19.463635
## final value 19.462423
## converged
## # weights: 43
## initial value 117.754245
## iter 10 value 22.888426
## iter 20 value 18.555475
## iter 30 value 17.984305
## iter 40 value 17.930479
## iter 50 value 17.929286
## final value 17.929271
## converged
## # weights: 11
## initial value 122.906748
## iter 10 value 50.479264
## iter 20 value 49.298094
## iter 30 value 48.296498
## iter 40 value 48.029895
## iter 50 value 47.974227
## iter 60 value 47.789855
## iter 70 value 46.565606
## iter 80 value 44.746913
## iter 90 value 24.355741
## iter 100 value 8.303852
## final value 8.303852
## stopped after 100 iterations
## # weights: 27
## initial value 123.474933
## iter 10 value 4.467343
## iter 20 value 0.451078
## iter 30 value 0.405058
## iter 40 value 0.399390
## iter 50 value 0.387838
## iter 60 value 0.344330
## iter 70 value 0.326983
## iter 80 value 0.319742
## iter 90 value 0.302299
## iter 100 value 0.300181
## final value 0.300181
## stopped after 100 iterations
## # weights: 43
## initial value 135.790414
## iter 10 value 5.896759
## iter 20 value 0.442463
## iter 30 value 0.417885
## iter 40 value 0.397514
## iter 50 value 0.376953
## iter 60 value 0.360993
## iter 70 value 0.348126
## iter 80 value 0.337283
## iter 90 value 0.326112
## iter 100 value 0.316385
## final value 0.316385
## stopped after 100 iterations
## # weights: 11
## initial value 140.214297
## iter 10 value 25.940680
## iter 20 value 5.985253
## iter 30 value 0.117994
## iter 40 value 0.053324
## iter 50 value 0.034775
## iter 60 value 0.031666
## iter 70 value 0.028355
## iter 80 value 0.026803
## iter 90 value 0.021796
## iter 100 value 0.021097
## final value 0.021097
## stopped after 100 iterations
## # weights: 27
## initial value 111.243108
## iter 10 value 7.707639
## iter 20 value 0.018123
## final value 0.000057
## converged
## # weights: 43
## initial value 146.466981
## iter 10 value 5.661274
## iter 20 value 0.068526
## iter 30 value 0.001873
## final value 0.000072
## converged
## # weights: 11
## initial value 119.633013
## iter 10 value 47.987740
## iter 20 value 42.982316
## iter 30 value 42.954005
## final value 42.953922
## converged
## # weights: 27
## initial value 123.047572
## iter 10 value 25.538062
## iter 20 value 19.955761
## iter 30 value 19.790394
## final value 19.790045
## converged
## # weights: 43
## initial value 147.901934
## iter 10 value 31.909512
## iter 20 value 18.357763
## iter 30 value 17.423852
## iter 40 value 17.098973
## iter 50 value 17.044721
## iter 60 value 17.001933
## iter 70 value 16.988283
## iter 80 value 16.986240
## final value 16.986240
## converged
## # weights: 11
## initial value 124.376710
## iter 10 value 46.491293
## iter 20 value 42.488923
## iter 30 value 10.533348
## iter 40 value 2.704622
## iter 50 value 2.120995
## iter 60 value 2.018236
## iter 70 value 1.927008
## iter 80 value 1.859757
## iter 90 value 1.858974
## iter 100 value 1.858148
## final value 1.858148
## stopped after 100 iterations
## # weights: 27
## initial value 133.026903
## iter 10 value 5.869370
## iter 20 value 0.295971
## iter 30 value 0.255851
## iter 40 value 0.241718
## iter 50 value 0.228396
## iter 60 value 0.220204
## iter 70 value 0.207437
## iter 80 value 0.197619
## iter 90 value 0.179417
## iter 100 value 0.173278
## final value 0.173278
## stopped after 100 iterations
## # weights: 43
## initial value 132.848255
## iter 10 value 10.595008
## iter 20 value 0.248972
## iter 30 value 0.202234
## iter 40 value 0.189600
## iter 50 value 0.173857
## iter 60 value 0.166954
## iter 70 value 0.161699
## iter 80 value 0.152180
## iter 90 value 0.141625
## iter 100 value 0.136838
## final value 0.136838
## stopped after 100 iterations
## # weights: 11
## initial value 121.322779
## iter 10 value 52.719706
## iter 20 value 33.489690
## iter 30 value 8.890838
## iter 40 value 5.144832
## iter 50 value 3.890460
## iter 60 value 1.681626
## iter 70 value 1.548141
## iter 80 value 1.497128
## iter 90 value 1.209945
## iter 100 value 1.168193
## final value 1.168193
## stopped after 100 iterations
## # weights: 27
## initial value 124.304865
## iter 10 value 8.985377
## iter 20 value 2.938913
## iter 30 value 0.238011
## iter 40 value 0.000148
## iter 40 value 0.000074
## iter 40 value 0.000067
## final value 0.000067
## converged
## # weights: 43
## initial value 145.062613
## iter 10 value 6.629695
## iter 20 value 2.137176
## iter 30 value 0.150724
## iter 40 value 0.004979
## iter 50 value 0.000727
## iter 60 value 0.000252
## final value 0.000091
## converged
## # weights: 11
## initial value 112.607037
## iter 10 value 46.828428
## iter 20 value 44.134973
## iter 30 value 44.133027
## final value 44.133026
## converged
## # weights: 27
## initial value 123.783616
## iter 10 value 40.338653
## iter 20 value 21.071672
## iter 30 value 20.154337
## iter 40 value 20.109906
## iter 50 value 20.108380
## final value 20.108367
## converged
## # weights: 43
## initial value 121.225092
## iter 10 value 31.514365
## iter 20 value 18.584209
## iter 30 value 18.247723
## iter 40 value 18.235445
## iter 50 value 18.235083
## final value 18.235083
## converged
## # weights: 11
## initial value 125.167661
## iter 10 value 50.419528
## iter 20 value 20.310605
## iter 30 value 7.207722
## iter 40 value 4.033087
## iter 50 value 3.870126
## iter 60 value 3.850969
## iter 70 value 3.849437
## iter 80 value 3.848170
## iter 90 value 3.846420
## iter 100 value 3.846404
## final value 3.846404
## stopped after 100 iterations
## # weights: 27
## initial value 127.495222
## iter 10 value 5.080773
## iter 20 value 1.502252
## iter 30 value 0.726711
## iter 40 value 0.682521
## iter 50 value 0.514473
## iter 60 value 0.475939
## iter 70 value 0.455208
## iter 80 value 0.438575
## iter 90 value 0.427741
## iter 100 value 0.419469
## final value 0.419469
## stopped after 100 iterations
## # weights: 43
## initial value 126.025754
## iter 10 value 19.384325
## iter 20 value 2.586477
## iter 30 value 0.667035
## iter 40 value 0.573365
## iter 50 value 0.503570
## iter 60 value 0.468939
## iter 70 value 0.444569
## iter 80 value 0.390341
## iter 90 value 0.371384
## iter 100 value 0.333589
## final value 0.333589
## stopped after 100 iterations
## # weights: 11
## initial value 132.771564
## iter 10 value 50.402804
## iter 20 value 48.623727
## iter 30 value 48.497536
## iter 40 value 48.493901
## iter 50 value 48.492231
## iter 60 value 48.491822
## final value 48.491751
## converged
## # weights: 27
## initial value 115.896383
## iter 10 value 4.458071
## iter 20 value 0.620761
## iter 30 value 0.001067
## iter 40 value 0.000288
## final value 0.000057
## converged
## # weights: 43
## initial value 160.727035
## iter 10 value 5.270259
## iter 20 value 0.099481
## iter 30 value 0.000811
## final value 0.000086
## converged
## # weights: 11
## initial value 130.652361
## iter 10 value 54.948742
## iter 20 value 44.700047
## iter 30 value 44.344448
## final value 44.344261
## converged
## # weights: 27
## initial value 134.829988
## iter 10 value 31.128481
## iter 20 value 22.035877
## iter 30 value 20.490241
## iter 40 value 20.352570
## iter 50 value 20.347782
## final value 20.347781
## converged
## # weights: 43
## initial value 120.943216
## iter 10 value 25.318673
## iter 20 value 19.120422
## iter 30 value 18.550339
## iter 40 value 18.487879
## iter 50 value 18.486144
## iter 60 value 18.485701
## final value 18.485698
## converged
## # weights: 11
## initial value 129.273608
## iter 10 value 50.031409
## iter 20 value 48.268451
## iter 30 value 48.077166
## iter 40 value 47.910697
## iter 50 value 45.104701
## iter 60 value 32.984503
## iter 70 value 17.777525
## iter 80 value 8.290523
## iter 90 value 5.021495
## iter 100 value 4.225815
## final value 4.225815
## stopped after 100 iterations
## # weights: 27
## initial value 125.525009
## iter 10 value 9.603776
## iter 20 value 2.528684
## iter 30 value 1.105970
## iter 40 value 0.909117
## iter 50 value 0.755942
## iter 60 value 0.635707
## iter 70 value 0.603678
## iter 80 value 0.562174
## iter 90 value 0.460338
## iter 100 value 0.446840
## final value 0.446840
## stopped after 100 iterations
## # weights: 43
## initial value 114.378230
## iter 10 value 5.265511
## iter 20 value 0.597545
## iter 30 value 0.422740
## iter 40 value 0.407927
## iter 50 value 0.381009
## iter 60 value 0.374813
## iter 70 value 0.347909
## iter 80 value 0.325457
## iter 90 value 0.307363
## iter 100 value 0.302519
## final value 0.302519
## stopped after 100 iterations
## # weights: 11
## initial value 127.241626
## iter 10 value 45.947253
## iter 20 value 17.166443
## iter 30 value 4.086584
## iter 40 value 3.783081
## iter 50 value 3.363297
## iter 60 value 2.812163
## iter 70 value 2.609705
## iter 80 value 2.588398
## iter 90 value 2.472121
## iter 100 value 2.325701
## final value 2.325701
## stopped after 100 iterations
## # weights: 27
## initial value 120.858723
## iter 10 value 15.501536
## iter 20 value 2.778662
## iter 30 value 0.101601
## iter 40 value 0.028438
## iter 50 value 0.004303
## iter 60 value 0.000410
## iter 70 value 0.000244
## final value 0.000091
## converged
## # weights: 43
## initial value 131.655208
## iter 10 value 18.595536
## iter 20 value 0.854071
## iter 30 value 0.010495
## final value 0.000077
## converged
## # weights: 11
## initial value 118.986819
## iter 10 value 52.196342
## iter 20 value 44.094477
## final value 44.088036
## converged
## # weights: 27
## initial value 119.437816
## iter 10 value 28.899255
## iter 20 value 20.423470
## iter 30 value 19.808605
## iter 40 value 19.738329
## final value 19.737901
## converged
## # weights: 43
## initial value 110.757819
## iter 10 value 24.753074
## iter 20 value 19.333717
## iter 30 value 18.498835
## iter 40 value 18.222314
## iter 50 value 18.203695
## iter 60 value 18.201707
## final value 18.201699
## converged
## # weights: 11
## initial value 125.700424
## iter 10 value 38.274169
## iter 20 value 17.657230
## iter 30 value 6.937457
## iter 40 value 4.605418
## iter 50 value 3.984428
## iter 60 value 3.880402
## iter 70 value 3.855540
## iter 80 value 3.853791
## iter 90 value 3.849246
## iter 100 value 3.844274
## final value 3.844274
## stopped after 100 iterations
## # weights: 27
## initial value 131.009200
## iter 10 value 19.885829
## iter 20 value 3.388221
## iter 30 value 1.009841
## iter 40 value 0.659084
## iter 50 value 0.605706
## iter 60 value 0.580143
## iter 70 value 0.549918
## iter 80 value 0.535581
## iter 90 value 0.508169
## iter 100 value 0.485308
## final value 0.485308
## stopped after 100 iterations
## # weights: 43
## initial value 151.521149
## iter 10 value 4.201071
## iter 20 value 0.836542
## iter 30 value 0.657450
## iter 40 value 0.581181
## iter 50 value 0.541263
## iter 60 value 0.506634
## iter 70 value 0.464736
## iter 80 value 0.419989
## iter 90 value 0.388431
## iter 100 value 0.367397
## final value 0.367397
## stopped after 100 iterations
## # weights: 11
## initial value 135.196170
## iter 10 value 55.257626
## iter 20 value 49.928486
## iter 30 value 49.903056
## iter 40 value 49.884020
## iter 50 value 49.186643
## iter 60 value 47.727926
## iter 70 value 33.550940
## iter 80 value 28.690387
## iter 90 value 15.958708
## iter 100 value 4.997484
## final value 4.997484
## stopped after 100 iterations
## # weights: 27
## initial value 133.397811
## iter 10 value 15.234866
## iter 20 value 2.244503
## iter 30 value 0.017374
## iter 40 value 0.001384
## iter 50 value 0.000469
## iter 60 value 0.000221
## final value 0.000083
## converged
## # weights: 43
## initial value 131.465785
## iter 10 value 4.309149
## iter 20 value 0.071554
## iter 30 value 0.001619
## final value 0.000052
## converged
## # weights: 11
## initial value 126.042550
## iter 10 value 59.677569
## iter 20 value 48.217619
## iter 30 value 43.467685
## final value 43.467591
## converged
## # weights: 27
## initial value 120.133245
## iter 10 value 38.096083
## iter 20 value 20.466370
## iter 30 value 20.004916
## iter 40 value 19.902769
## iter 50 value 19.863615
## iter 60 value 19.673750
## iter 70 value 19.642497
## final value 19.642480
## converged
## # weights: 43
## initial value 118.231663
## iter 10 value 21.643110
## iter 20 value 18.555348
## iter 30 value 18.028766
## iter 40 value 18.024806
## iter 50 value 18.024357
## iter 60 value 18.022438
## final value 18.022013
## converged
## # weights: 11
## initial value 122.704842
## iter 10 value 49.286005
## iter 20 value 19.716916
## iter 30 value 8.042403
## iter 40 value 4.768677
## iter 50 value 3.856014
## iter 60 value 3.436248
## iter 70 value 3.041105
## iter 80 value 3.001021
## iter 90 value 2.993346
## iter 100 value 2.981242
## final value 2.981242
## stopped after 100 iterations
## # weights: 27
## initial value 122.736987
## iter 10 value 8.320024
## iter 20 value 0.342060
## iter 30 value 0.312112
## iter 40 value 0.295860
## iter 50 value 0.262600
## iter 60 value 0.249667
## iter 70 value 0.228954
## iter 80 value 0.225737
## iter 90 value 0.217124
## iter 100 value 0.214320
## final value 0.214320
## stopped after 100 iterations
## # weights: 43
## initial value 135.015141
## iter 10 value 5.714008
## iter 20 value 0.365703
## iter 30 value 0.307187
## iter 40 value 0.271099
## iter 50 value 0.256079
## iter 60 value 0.248412
## iter 70 value 0.236889
## iter 80 value 0.217625
## iter 90 value 0.213566
## iter 100 value 0.205556
## final value 0.205556
## stopped after 100 iterations
## # weights: 11
## initial value 137.651675
## iter 10 value 50.858534
## iter 20 value 39.666248
## iter 30 value 13.917452
## iter 40 value 3.374208
## iter 50 value 2.224475
## iter 60 value 1.988741
## iter 70 value 1.851695
## iter 80 value 1.809737
## iter 90 value 1.714723
## iter 100 value 1.707648
## final value 1.707648
## stopped after 100 iterations
## # weights: 27
## initial value 123.518051
## iter 10 value 37.700211
## iter 20 value 33.847210
## iter 30 value 10.882173
## iter 40 value 2.058262
## iter 50 value 0.864990
## iter 60 value 0.004869
## final value 0.000058
## converged
## # weights: 43
## initial value 152.873857
## iter 10 value 19.266779
## iter 20 value 3.241344
## iter 30 value 1.397005
## iter 40 value 0.157231
## iter 50 value 0.000312
## final value 0.000068
## converged
## # weights: 11
## initial value 124.963693
## iter 10 value 53.081799
## iter 20 value 43.981556
## iter 30 value 43.950451
## final value 43.950449
## converged
## # weights: 27
## initial value 117.700623
## iter 10 value 24.858699
## iter 20 value 20.114544
## iter 30 value 19.900872
## final value 19.900772
## converged
## # weights: 43
## initial value 130.837159
## iter 10 value 29.984439
## iter 20 value 19.866631
## iter 30 value 19.295144
## iter 40 value 19.187171
## iter 50 value 19.027716
## iter 60 value 18.999312
## iter 70 value 18.998790
## iter 70 value 18.998790
## iter 70 value 18.998790
## final value 18.998790
## converged
## # weights: 11
## initial value 131.721200
## iter 10 value 51.124425
## iter 20 value 46.292085
## iter 30 value 37.493315
## iter 40 value 11.013141
## iter 50 value 4.822768
## iter 60 value 4.481167
## iter 70 value 4.007916
## iter 80 value 3.893094
## iter 90 value 3.857234
## iter 100 value 3.852782
## final value 3.852782
## stopped after 100 iterations
## # weights: 27
## initial value 129.575794
## iter 10 value 47.466768
## iter 20 value 3.932273
## iter 30 value 0.576842
## iter 40 value 0.532112
## iter 50 value 0.523746
## iter 60 value 0.493733
## iter 70 value 0.485322
## iter 80 value 0.482249
## iter 90 value 0.481810
## iter 100 value 0.480966
## final value 0.480966
## stopped after 100 iterations
## # weights: 43
## initial value 114.614278
## iter 10 value 5.158321
## iter 20 value 1.233873
## iter 30 value 0.543719
## iter 40 value 0.455410
## iter 50 value 0.399522
## iter 60 value 0.366482
## iter 70 value 0.354437
## iter 80 value 0.319719
## iter 90 value 0.302310
## iter 100 value 0.279361
## final value 0.279361
## stopped after 100 iterations
## # weights: 11
## initial value 145.666784
## iter 10 value 64.325408
## iter 20 value 50.880654
## iter 30 value 46.639462
## final value 46.598156
## converged
resultado_entrenamiento6 = predict(modelo6,entrenamiento)
resultado_prueba6 = predict(modelo6,prueba)
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
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
resultados = data.frame(
"smvLinear" = c(mcre1$overall["Accuracy"], mcrp1$overall["Accuracy"]),
"smvRadial" = c(mcre2$overall["Accuracy"], mcrp2$overall["Accuracy"]),
"smvPoly" = 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 del Entrenamiento", "Exactitud de la Prueba")
resultados
## smvLinear smvRadial smvPoly rpart rf
## Exactitud del Entrenamiento 0.9916667 0.9916667 0.9916667 0.9666667 1.0000000
## Exactitud de la Prueba 0.9666667 0.9333333 0.9666667 0.9333333 0.9333333
## nnet
## Exactitud del Entrenamiento 0.9666667
## Exactitud de la Prueba 0.9666667
En conclusión, el modelo de Redes Neuronales es el recomendado para la clasificación de los lirios.