Teoría

La función caret (Classification And Regression Training) es un paquete integral con una amplía variedad de algoritmos para el aprendizaje automático.

Obtención y entendimiento de los datos

Librerías

library(ggplot2) # Gráficas con mejor diseño
library(lattice) # Crear gráficos
library(caret) # Algoritmos de aprendizaje automático
library(datasets) # Usar la base de datos "Iris"
library(DataExplorer) # Análisis exploratorio de los datos
#install.packages("kernlab")
#install.packages("mlbench")
library(mlbench)
library(kernlab)
library(tidyverse)
library(kableExtra)
library(dplyr)

Obetener la base de datos

data(BreastCancer)
df = data.frame(BreastCancer)
df_original = data.frame(BreastCancer) %>%
  select(-Id)

EDA

summary(df)
##       Id             Cl.thickness   Cell.size     Cell.shape  Marg.adhesion
##  Length:699         1      :145   1      :384   1      :353   1      :407  
##  Class :character   5      :130   10     : 67   2      : 59   2      : 58  
##  Mode  :character   3      :108   3      : 52   10     : 58   3      : 58  
##                     4      : 80   2      : 45   3      : 56   10     : 55  
##                     10     : 69   4      : 40   4      : 44   4      : 33  
##                     2      : 50   5      : 30   5      : 34   8      : 25  
##                     (Other):117   (Other): 81   (Other): 95   (Other): 63  
##   Epith.c.size  Bare.nuclei   Bl.cromatin  Normal.nucleoli    Mitoses   
##  2      :386   1      :402   2      :166   1      :443     1      :579  
##  3      : 72   10     :132   3      :165   10     : 61     2      : 35  
##  4      : 48   2      : 30   1      :152   3      : 44     3      : 33  
##  1      : 47   5      : 30   7      : 73   2      : 36     10     : 14  
##  6      : 41   3      : 28   4      : 40   8      : 24     4      : 12  
##  5      : 39   (Other): 61   5      : 34   6      : 22     7      :  9  
##  (Other): 66   NA's   : 16   (Other): 69   (Other): 69     (Other): 17  
##        Class    
##  benign   :458  
##  malignant:241  
##                 
##                 
##                 
##                 
## 
# Con las estadísticas descriptiva de las variables explicativas se puede considerar que manejan una buena distribución, la variable que puede estar más afectada sería "Petal.Length" al tener los datos cargados hacía arriba del promedio.
str(df) # Confirmar que las variables vengan en el formato necesario.
## 'data.frame':    699 obs. of  11 variables:
##  $ Id             : chr  "1000025" "1002945" "1015425" "1016277" ...
##  $ Cl.thickness   : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 5 5 3 6 4 8 1 2 2 4 ...
##  $ Cell.size      : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 4 1 8 1 10 1 1 1 2 ...
##  $ Cell.shape     : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 4 1 8 1 10 1 2 1 1 ...
##  $ Marg.adhesion  : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 1 5 1 1 3 8 1 1 1 1 ...
##  $ Epith.c.size   : Ord.factor w/ 10 levels "1"<"2"<"3"<"4"<..: 2 7 2 3 2 7 2 2 2 2 ...
##  $ Bare.nuclei    : Factor w/ 10 levels "1","2","3","4",..: 1 10 2 4 1 10 10 1 1 1 ...
##  $ Bl.cromatin    : Factor w/ 10 levels "1","2","3","4",..: 3 3 3 3 3 9 3 3 1 2 ...
##  $ Normal.nucleoli: Factor w/ 10 levels "1","2","3","4",..: 1 2 1 7 1 7 1 1 1 1 ...
##  $ Mitoses        : Factor w/ 9 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 5 1 ...
##  $ Class          : Factor w/ 2 levels "benign","malignant": 1 1 1 1 1 2 1 1 1 1 ...
#create_report(df)
plot_missing(df)

#Convertiremos los valor del df a continuos
df <- as.data.frame(lapply(df, as.numeric))
plot_boxplot(df, by = "Cell.size")
## Warning: Removed 16 rows containing non-finite outside the scale range
## (`stat_boxplot()`).

plot_histogram(df)

plot_bar(df)

plot_correlation(df)
## Warning: Removed 20 rows containing missing values or values outside the scale range
## (`geom_text()`).

Uso de CARET

Partición de datos

df_original <- na.omit(df_original)
df_original <- df_original[complete.cases(df_original), ]
set.seed(123)
DataPart= createDataPartition(df_original$Class, p=0.8, list = FALSE)
train_set= df_original[DataPart,]
test_set = df_original[-DataPart,]

Métodos para Modelar

Los métodos más utilizados para modelar aprendixaje automático son:

  • SVM: Support Vector Machine o Máquina de Vectores de soporte. Hay varios subtipos:
    • Lineal (svmLinear)
    • Radial (svmRadial)
    • Polinómico (svmPoly)
  • Árbol de decisión: rpart
  • Redes Neuronales: nnet
  • Random Forests: rf

SVM Lineal

Entrenamiento de Modelo

modelo_svml = train(Class ~., data = train_set,
                    method = "svmLinear",
                    preProcess = c("scale", "center"),
                    trControl = trainControl(method = "cv", number =10),
                    tuneGrid = data.frame(C=1)
                    )
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.

Resultados de Modelo

resultados_train_svml = predict(modelo_svml, train_set)

resultados_test_svml = predict(modelo_svml, test_set)

Matriz de Confusión

##### ENTRENAMIENTO ######
MCRE_svml = confusionMatrix(resultados_train_svml, train_set$Class) # MCRE - Matriz de Confusión de Resultados de Entrenamiento.
#MCRE_svml

##### PRUEBA #####
resultados_test_svml <- factor(resultados_test_svml, levels = levels(train_set$Class))

MCRP_svml = confusionMatrix(resultados_test_svml, test_set$Class) # MCRE - Matriz de Confusión de Resultados de Prueba.
MCRP_svml
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign        83         7
##   malignant      5        40
##                                           
##                Accuracy : 0.9111          
##                  95% CI : (0.8499, 0.9532)
##     No Information Rate : 0.6519          
##     P-Value [Acc > NIR] : 2.463e-12       
##                                           
##                   Kappa : 0.8022          
##                                           
##  Mcnemar's Test P-Value : 0.7728          
##                                           
##             Sensitivity : 0.9432          
##             Specificity : 0.8511          
##          Pos Pred Value : 0.9222          
##          Neg Pred Value : 0.8889          
##              Prevalence : 0.6519          
##          Detection Rate : 0.6148          
##    Detection Prevalence : 0.6667          
##       Balanced Accuracy : 0.8971          
##                                           
##        'Positive' Class : benign          
## 

SVM Radial

Entrenamiento de Modelo

modelo_svmr = train(Class ~., data = train_set,
                    method = "svmRadial",
                    preProcess = c("scale", "center"),
                    trControl = trainControl(method = "cv", number =10),
                    tuneGrid = data.frame(sigma =1, C=1)
                    )
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Mitoses6
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.

Resultados de Modelo

resultados_train_svmr = predict(modelo_svmr, train_set)
resultados_test_svmr = predict(modelo_svmr, test_set)

Matriz de Confusión

##### ENTRENAMIENTO ######
MCRE_svmr = confusionMatrix(resultados_train_svmr, train_set$Class) # MCRE - Matriz de Confusión de Resultados de Entrenamiento.
#MCRE_svmr

##### PRUEBA #####
MCRP_svmr = confusionMatrix(resultados_test_svmr, test_set$Class) # MCRE - Matriz de Confusión de Resultados de Prueba.
MCRP_svmr
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign        47         0
##   malignant     41        47
##                                           
##                Accuracy : 0.6963          
##                  95% CI : (0.6113, 0.7724)
##     No Information Rate : 0.6519          
##     P-Value [Acc > NIR] : 0.1602          
##                                           
##                   Kappa : 0.4439          
##                                           
##  Mcnemar's Test P-Value : 4.185e-10       
##                                           
##             Sensitivity : 0.5341          
##             Specificity : 1.0000          
##          Pos Pred Value : 1.0000          
##          Neg Pred Value : 0.5341          
##              Prevalence : 0.6519          
##          Detection Rate : 0.3481          
##    Detection Prevalence : 0.3481          
##       Balanced Accuracy : 0.7670          
##                                           
##        'Positive' Class : benign          
## 

SVM Polinómico

Entrenamiento de Modelo

modelo_svmp = train(Class ~., data = train_set,
                    method = "svmPoly",
                    preProcess = c("scale", "center"),
                    trControl = trainControl(method = "cv", number =10),
                    tuneGrid = data.frame(degree = 1, scale = 1, C= 1)
                    )
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## Warning in .local(x, ...): Variable(s) `' constant. Cannot scale data.

Resultados de Modelo

resultados_train_svmp = predict(modelo_svmp, train_set)
resultados_test_svmp = predict(modelo_svmp, test_set)

Matriz de Confusión

##### ENTRENAMIENTO ######
MCRE_svmp = confusionMatrix(resultados_train_svmp, train_set$Class) # MCRE - Matriz de Confusión de Resultados de Entrenamiento.
#MCRE_svmp

##### PRUEBA #####
MCRP_svmp = confusionMatrix(resultados_test_svmp, test_set$Class) # MCRE - Matriz de Confusión de Resultados de Prueba.
MCRP_svmp
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign        83         7
##   malignant      5        40
##                                           
##                Accuracy : 0.9111          
##                  95% CI : (0.8499, 0.9532)
##     No Information Rate : 0.6519          
##     P-Value [Acc > NIR] : 2.463e-12       
##                                           
##                   Kappa : 0.8022          
##                                           
##  Mcnemar's Test P-Value : 0.7728          
##                                           
##             Sensitivity : 0.9432          
##             Specificity : 0.8511          
##          Pos Pred Value : 0.9222          
##          Neg Pred Value : 0.8889          
##              Prevalence : 0.6519          
##          Detection Rate : 0.6148          
##    Detection Prevalence : 0.6667          
##       Balanced Accuracy : 0.8971          
##                                           
##        'Positive' Class : benign          
## 

Árbol de decisión

Entrenamiento de Modelo

modelo_ad = train(Class ~., data = train_set,
                    method = "rpart",
                    preProcess = c("scale", "center"),
                    trControl = trainControl(method = "cv", number =10),
                    tuneLength = 10
                    )
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6

Resultados de Modelo

resultados_train_ad = predict(modelo_ad, train_set)
resultados_test_ad = predict(modelo_ad, test_set)

Matriz de Confusión

##### ENTRENAMIENTO ######
MCRE_ad = confusionMatrix(resultados_train_ad, train_set$Class) # MCRE - Matriz de Confusión de Resultados de Entrenamiento.
#MCRE_ad

##### PRUEBA #####
MCRP_ad = confusionMatrix(resultados_test_ad, test_set$Class) # MCRE - Matriz de Confusión de Resultados de Prueba.
MCRP_ad
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign        85         5
##   malignant      3        42
##                                           
##                Accuracy : 0.9407          
##                  95% CI : (0.8866, 0.9741)
##     No Information Rate : 0.6519          
##     P-Value [Acc > NIR] : 1.347e-15       
##                                           
##                   Kappa : 0.8681          
##                                           
##  Mcnemar's Test P-Value : 0.7237          
##                                           
##             Sensitivity : 0.9659          
##             Specificity : 0.8936          
##          Pos Pred Value : 0.9444          
##          Neg Pred Value : 0.9333          
##              Prevalence : 0.6519          
##          Detection Rate : 0.6296          
##    Detection Prevalence : 0.6667          
##       Balanced Accuracy : 0.9298          
##                                           
##        'Positive' Class : benign          
## 

Redes Neuronales

Entrenamiento de Modelo

modelo_rn = train(Class ~., data = train_set,
                    method = "nnet",
                    preProcess = c("scale", "center"),
                    trControl = trainControl(method = "cv", number =10)
                    )
## # weights:  83
## initial  value 374.817257 
## iter  10 value 40.277258
## iter  20 value 20.528253
## iter  30 value 19.231263
## iter  40 value 19.122754
## iter  50 value 19.114539
## iter  60 value 19.114088
## final  value 19.113898 
## converged
## # weights:  247
## initial  value 324.313266 
## iter  10 value 47.023454
## iter  20 value 34.501072
## iter  30 value 30.146446
## iter  40 value 29.471500
## iter  50 value 29.362689
## iter  60 value 28.692415
## iter  70 value 28.112819
## iter  80 value 28.042757
## iter  90 value 26.571126
## iter 100 value 26.559069
## final  value 26.559069 
## stopped after 100 iterations
## # weights:  411
## initial  value 316.180536 
## iter  10 value 13.913762
## iter  20 value 4.328973
## iter  30 value 2.552363
## iter  40 value 2.272730
## iter  50 value 1.922754
## iter  60 value 1.917273
## iter  70 value 1.911679
## iter  80 value 1.910533
## iter  90 value 1.909607
## iter 100 value 1.388215
## final  value 1.388215 
## stopped after 100 iterations
## # weights:  83
## initial  value 316.912067 
## iter  10 value 86.012268
## iter  20 value 59.597247
## iter  30 value 44.365711
## iter  40 value 33.669721
## iter  50 value 31.024497
## iter  60 value 26.401233
## iter  70 value 20.191166
## iter  80 value 18.258152
## iter  90 value 18.052746
## iter 100 value 18.042104
## final  value 18.042104 
## stopped after 100 iterations
## # weights:  247
## initial  value 382.187522 
## iter  10 value 103.663294
## iter  20 value 45.264551
## iter  30 value 27.392813
## iter  40 value 15.945273
## iter  50 value 10.439110
## iter  60 value 10.147304
## iter  70 value 10.070855
## iter  80 value 10.066895
## iter  90 value 10.066742
## iter  90 value 10.066742
## iter  90 value 10.066742
## final  value 10.066742 
## converged
## # weights:  411
## initial  value 388.651583 
## iter  10 value 81.178316
## iter  20 value 38.660423
## iter  30 value 22.159086
## iter  40 value 16.224888
## iter  50 value 13.883473
## iter  60 value 12.893250
## iter  70 value 10.005248
## iter  80 value 9.662003
## iter  90 value 9.454406
## iter 100 value 9.248063
## final  value 9.248063 
## stopped after 100 iterations
## # weights:  83
## initial  value 297.409901 
## iter  10 value 42.618141
## iter  20 value 26.253328
## iter  30 value 25.877399
## iter  40 value 25.874604
## iter  50 value 25.873501
## iter  60 value 25.868274
## iter  70 value 25.594741
## iter  80 value 22.368662
## iter  90 value 21.979915
## iter 100 value 21.974606
## final  value 21.974606 
## stopped after 100 iterations
## # weights:  247
## initial  value 328.290262 
## iter  10 value 42.653126
## iter  20 value 10.093193
## iter  30 value 7.568135
## iter  40 value 6.380110
## iter  50 value 6.342135
## iter  60 value 6.324702
## iter  70 value 6.307810
## iter  80 value 6.293637
## iter  90 value 4.841368
## iter 100 value 3.185512
## final  value 3.185512 
## stopped after 100 iterations
## # weights:  411
## initial  value 321.689898 
## iter  10 value 48.178152
## iter  20 value 17.682923
## iter  30 value 4.351793
## iter  40 value 3.602683
## iter  50 value 3.472430
## iter  60 value 3.423438
## iter  70 value 3.383050
## iter  80 value 3.353754
## iter  90 value 3.323043
## iter 100 value 3.166320
## final  value 3.166320 
## stopped after 100 iterations
## # weights:  83
## initial  value 419.727174 
## iter  10 value 74.663969
## iter  20 value 48.847083
## iter  30 value 45.476746
## iter  40 value 45.475792
## iter  50 value 45.475748
## final  value 45.475721 
## converged
## # weights:  247
## initial  value 304.136827 
## iter  10 value 25.425733
## iter  20 value 16.688368
## iter  30 value 15.524231
## iter  40 value 14.921821
## iter  50 value 14.900297
## iter  60 value 14.893053
## iter  70 value 14.889777
## iter  80 value 11.899490
## iter  90 value 11.491066
## iter 100 value 11.328002
## final  value 11.328002 
## stopped after 100 iterations
## # weights:  411
## initial  value 291.136519 
## iter  10 value 22.546166
## iter  20 value 5.471588
## iter  30 value 1.532441
## iter  40 value 1.399044
## iter  50 value 1.387959
## iter  60 value 1.386394
## iter  70 value 1.386336
## iter  80 value 1.386298
## final  value 1.386295 
## converged
## # weights:  83
## initial  value 413.785797 
## iter  10 value 102.460326
## iter  20 value 59.701876
## iter  30 value 53.757802
## iter  40 value 45.054277
## iter  50 value 28.961053
## iter  60 value 25.149845
## iter  70 value 21.716915
## iter  80 value 21.448553
## iter  90 value 21.444065
## final  value 21.444012 
## converged
## # weights:  247
## initial  value 370.238660 
## iter  10 value 62.186622
## iter  20 value 29.899986
## iter  30 value 21.399408
## iter  40 value 19.422549
## iter  50 value 17.939166
## iter  60 value 15.887346
## iter  70 value 14.034416
## iter  80 value 13.021269
## iter  90 value 12.430265
## iter 100 value 12.305054
## final  value 12.305054 
## stopped after 100 iterations
## # weights:  411
## initial  value 366.834292 
## iter  10 value 36.692684
## iter  20 value 18.481860
## iter  30 value 12.762517
## iter  40 value 11.980784
## iter  50 value 10.544337
## iter  60 value 10.219762
## iter  70 value 9.887662
## iter  80 value 9.855872
## iter  90 value 9.854914
## final  value 9.854908 
## converged
## # weights:  83
## initial  value 320.843027 
## iter  10 value 61.752303
## iter  20 value 51.177507
## iter  30 value 42.996377
## iter  40 value 42.590018
## iter  50 value 39.535969
## iter  60 value 39.531943
## iter  70 value 36.359822
## iter  80 value 36.355570
## iter  90 value 36.344210
## iter 100 value 33.029190
## final  value 33.029190 
## stopped after 100 iterations
## # weights:  247
## initial  value 332.658071 
## iter  10 value 45.061867
## iter  20 value 30.592706
## iter  30 value 24.292670
## iter  40 value 22.603491
## iter  50 value 17.610480
## iter  60 value 16.318104
## iter  70 value 16.282688
## iter  80 value 15.449802
## iter  90 value 15.204580
## iter 100 value 14.975435
## final  value 14.975435 
## stopped after 100 iterations
## # weights:  411
## initial  value 337.430632 
## iter  10 value 26.479043
## iter  20 value 19.485630
## iter  30 value 13.285569
## iter  40 value 8.671851
## iter  50 value 6.111552
## iter  60 value 5.431410
## iter  70 value 5.412742
## iter  80 value 4.959811
## iter  90 value 4.947497
## iter 100 value 4.319016
## final  value 4.319016 
## stopped after 100 iterations
## # weights:  83
## initial  value 289.617667 
## iter  10 value 47.158954
## iter  20 value 33.294405
## iter  30 value 29.526587
## iter  40 value 29.518883
## iter  50 value 29.517363
## iter  60 value 25.856120
## iter  70 value 25.849244
## iter  80 value 25.848727
## iter  90 value 25.848612
## iter 100 value 25.848458
## final  value 25.848458 
## stopped after 100 iterations
## # weights:  247
## initial  value 315.908486 
## iter  10 value 35.879313
## iter  20 value 25.360795
## iter  30 value 21.617253
## iter  40 value 20.441143
## iter  50 value 20.400365
## iter  60 value 18.869402
## iter  70 value 17.846714
## iter  80 value 17.491599
## iter  90 value 17.435652
## iter 100 value 17.427602
## final  value 17.427602 
## stopped after 100 iterations
## # weights:  411
## initial  value 405.971636 
## iter  10 value 33.589273
## iter  20 value 17.184931
## iter  30 value 7.680320
## iter  40 value 7.507280
## iter  50 value 7.496789
## iter  60 value 7.494826
## iter  70 value 6.179566
## iter  80 value 6.153885
## iter  90 value 4.804459
## iter 100 value 4.771136
## final  value 4.771136 
## stopped after 100 iterations
## # weights:  83
## initial  value 380.174551 
## iter  10 value 77.127696
## iter  20 value 37.400692
## iter  30 value 32.492526
## iter  40 value 30.577549
## iter  50 value 23.055923
## iter  60 value 22.466776
## iter  70 value 22.452999
## final  value 22.452915 
## converged
## # weights:  247
## initial  value 431.310146 
## iter  10 value 68.165421
## iter  20 value 40.578145
## iter  30 value 27.327389
## iter  40 value 20.378150
## iter  50 value 13.623395
## iter  60 value 12.383523
## iter  70 value 12.208413
## iter  80 value 12.156943
## iter  90 value 12.152864
## iter 100 value 12.152542
## final  value 12.152542 
## stopped after 100 iterations
## # weights:  411
## initial  value 401.218439 
## iter  10 value 52.937074
## iter  20 value 31.105349
## iter  30 value 16.667632
## iter  40 value 11.399958
## iter  50 value 10.135009
## iter  60 value 10.020440
## iter  70 value 9.984186
## iter  80 value 9.978552
## iter  90 value 9.977362
## iter 100 value 9.976882
## final  value 9.976882 
## stopped after 100 iterations
## # weights:  83
## initial  value 317.890696 
## iter  10 value 94.045981
## iter  20 value 85.559470
## iter  30 value 82.801458
## iter  40 value 65.548982
## iter  50 value 59.999511
## iter  60 value 59.089728
## iter  70 value 48.415218
## iter  80 value 48.406938
## iter  90 value 46.569118
## iter 100 value 45.542977
## final  value 45.542977 
## stopped after 100 iterations
## # weights:  247
## initial  value 438.130620 
## iter  10 value 30.052670
## iter  20 value 15.946457
## iter  30 value 9.704185
## iter  40 value 4.630931
## iter  50 value 3.775588
## iter  60 value 3.083640
## iter  70 value 2.855997
## iter  80 value 2.850302
## iter  90 value 2.844159
## iter 100 value 2.839119
## final  value 2.839119 
## stopped after 100 iterations
## # weights:  411
## initial  value 311.704954 
## iter  10 value 24.936060
## iter  20 value 18.865109
## iter  30 value 15.233004
## iter  40 value 12.816873
## iter  50 value 11.562671
## iter  60 value 10.592253
## iter  70 value 10.506194
## iter  80 value 10.394328
## iter  90 value 10.378309
## iter 100 value 10.348374
## final  value 10.348374 
## stopped after 100 iterations
## # weights:  83
## initial  value 419.979920 
## iter  10 value 133.821113
## iter  20 value 96.552511
## iter  30 value 67.513382
## iter  40 value 42.860836
## iter  50 value 33.739828
## iter  60 value 27.284994
## iter  70 value 23.052282
## iter  80 value 23.048354
## iter  90 value 23.047837
## iter 100 value 23.047539
## final  value 23.047539 
## stopped after 100 iterations
## # weights:  247
## initial  value 361.645456 
## iter  10 value 39.759559
## iter  20 value 23.011713
## iter  30 value 20.490660
## iter  40 value 15.024995
## iter  50 value 14.032866
## iter  60 value 10.551836
## iter  70 value 10.540033
## iter  80 value 10.532935
## iter  90 value 9.324989
## iter 100 value 9.283476
## final  value 9.283476 
## stopped after 100 iterations
## # weights:  411
## initial  value 339.782310 
## iter  10 value 20.786801
## iter  20 value 9.646829
## iter  30 value 6.891382
## iter  40 value 4.804879
## iter  50 value 4.784001
## iter  60 value 4.780069
## iter  70 value 3.035339
## iter  80 value 2.871294
## iter  90 value 2.870941
## iter 100 value 2.870156
## final  value 2.870156 
## stopped after 100 iterations
## # weights:  83
## initial  value 345.726126 
## iter  10 value 105.762598
## iter  20 value 45.849455
## iter  30 value 36.332657
## iter  40 value 31.082980
## iter  50 value 23.189272
## iter  60 value 21.976391
## iter  70 value 21.930180
## iter  80 value 21.927498
## final  value 21.927477 
## converged
## # weights:  247
## initial  value 355.990955 
## iter  10 value 89.762180
## iter  20 value 57.820168
## iter  30 value 40.116497
## iter  40 value 26.732173
## iter  50 value 17.792797
## iter  60 value 12.461963
## iter  70 value 11.348088
## iter  80 value 11.118615
## iter  90 value 10.770877
## iter 100 value 10.633591
## final  value 10.633591 
## stopped after 100 iterations
## # weights:  411
## initial  value 495.278566 
## iter  10 value 71.563946
## iter  20 value 28.112043
## iter  30 value 14.038774
## iter  40 value 10.130982
## iter  50 value 9.554676
## iter  60 value 9.486053
## iter  70 value 9.457476
## iter  80 value 9.420064
## iter  90 value 9.419817
## final  value 9.419817 
## converged
## # weights:  83
## initial  value 342.487766 
## iter  10 value 257.033401
## final  value 256.758671 
## converged
## # weights:  247
## initial  value 492.098679 
## iter  10 value 40.567340
## iter  20 value 30.530807
## iter  30 value 27.810847
## iter  40 value 27.762340
## iter  50 value 26.570957
## iter  60 value 26.543180
## iter  70 value 26.510429
## iter  80 value 26.443510
## iter  90 value 26.417175
## iter 100 value 25.446776
## final  value 25.446776 
## stopped after 100 iterations
## # weights:  411
## initial  value 367.631331 
## iter  10 value 25.657541
## iter  20 value 14.225380
## iter  30 value 10.225640
## iter  40 value 7.491544
## iter  50 value 4.866641
## iter  60 value 4.513469
## iter  70 value 4.147146
## iter  80 value 4.101431
## iter  90 value 4.076008
## iter 100 value 4.039355
## final  value 4.039355 
## stopped after 100 iterations
## # weights:  83
## initial  value 354.419667 
## iter  10 value 99.689731
## iter  20 value 98.378651
## final  value 98.378414 
## converged
## # weights:  247
## initial  value 325.922554 
## iter  10 value 51.473563
## iter  20 value 48.223332
## iter  30 value 42.504973
## iter  40 value 36.021855
## iter  50 value 35.978867
## iter  60 value 35.831277
## iter  70 value 35.253514
## iter  80 value 33.962166
## iter  90 value 28.256102
## iter 100 value 15.900058
## final  value 15.900058 
## stopped after 100 iterations
## # weights:  411
## initial  value 414.781757 
## iter  10 value 76.752961
## iter  20 value 21.828070
## iter  30 value 16.649624
## iter  40 value 13.610616
## iter  50 value 11.013184
## iter  60 value 10.887896
## iter  70 value 10.867303
## iter  80 value 10.864170
## iter  90 value 10.862884
## iter 100 value 10.862073
## final  value 10.862073 
## stopped after 100 iterations
## # weights:  83
## initial  value 319.226075 
## iter  10 value 238.866241
## iter  20 value 180.105906
## iter  30 value 119.341965
## iter  40 value 72.869791
## iter  50 value 61.401800
## iter  60 value 40.444304
## iter  70 value 32.939855
## iter  80 value 25.597118
## iter  90 value 21.820267
## iter 100 value 21.307368
## final  value 21.307368 
## stopped after 100 iterations
## # weights:  247
## initial  value 513.625249 
## iter  10 value 100.632572
## iter  20 value 55.916632
## iter  30 value 27.289044
## iter  40 value 19.706344
## iter  50 value 13.447144
## iter  60 value 12.344060
## iter  70 value 11.514262
## iter  80 value 11.154356
## iter  90 value 10.882485
## iter 100 value 10.558397
## final  value 10.558397 
## stopped after 100 iterations
## # weights:  411
## initial  value 351.009442 
## iter  10 value 47.911452
## iter  20 value 23.444193
## iter  30 value 14.685997
## iter  40 value 12.963928
## iter  50 value 11.724508
## iter  60 value 10.937526
## iter  70 value 10.577180
## iter  80 value 10.260275
## iter  90 value 10.179908
## iter 100 value 10.169759
## final  value 10.169759 
## stopped after 100 iterations
## # weights:  83
## initial  value 421.364077 
## iter  10 value 94.620012
## iter  20 value 54.857573
## iter  30 value 33.171241
## iter  40 value 33.118527
## iter  50 value 26.442386
## iter  60 value 26.411388
## iter  70 value 26.389198
## iter  80 value 22.894266
## iter  90 value 22.883768
## iter 100 value 22.868176
## final  value 22.868176 
## stopped after 100 iterations
## # weights:  247
## initial  value 286.203235 
## iter  10 value 26.882168
## iter  20 value 15.906937
## iter  30 value 15.272851
## iter  40 value 15.260041
## iter  50 value 15.252532
## iter  60 value 15.242600
## iter  70 value 15.079319
## iter  80 value 11.843697
## iter  90 value 0.698799
## iter 100 value 0.295308
## final  value 0.295308 
## stopped after 100 iterations
## # weights:  411
## initial  value 311.773452 
## iter  10 value 23.101437
## iter  20 value 6.975892
## iter  30 value 4.682807
## iter  40 value 4.191780
## iter  50 value 3.916041
## iter  60 value 3.524213
## iter  70 value 3.427861
## iter  80 value 3.357885
## iter  90 value 3.275867
## iter 100 value 3.142307
## final  value 3.142307 
## stopped after 100 iterations
## # weights:  83
## initial  value 322.435701 
## iter  10 value 26.729383
## iter  20 value 26.307331
## iter  30 value 26.285491
## iter  40 value 26.274633
## iter  50 value 26.273534
## iter  60 value 24.380001
## iter  70 value 22.802557
## iter  80 value 22.791102
## iter  90 value 19.119952
## iter 100 value 19.114531
## final  value 19.114531 
## stopped after 100 iterations
## # weights:  247
## initial  value 455.309017 
## iter  10 value 28.751759
## iter  20 value 21.876872
## iter  30 value 20.643283
## iter  40 value 19.872594
## iter  50 value 19.867350
## iter  60 value 15.058984
## iter  70 value 15.032997
## iter  80 value 15.025806
## iter  90 value 15.021036
## iter 100 value 15.009302
## final  value 15.009302 
## stopped after 100 iterations
## # weights:  411
## initial  value 331.969586 
## iter  10 value 38.836084
## iter  20 value 20.650971
## iter  30 value 18.913820
## iter  40 value 18.298981
## iter  50 value 9.695484
## iter  60 value 9.309546
## iter  70 value 9.296272
## iter  80 value 9.272530
## iter  90 value 8.923560
## iter 100 value 8.701402
## final  value 8.701402 
## stopped after 100 iterations
## # weights:  83
## initial  value 388.344855 
## iter  10 value 113.740894
## iter  20 value 61.705607
## iter  30 value 45.449012
## iter  40 value 32.075506
## iter  50 value 24.838923
## iter  60 value 24.390120
## iter  70 value 21.426762
## iter  80 value 20.903621
## iter  90 value 20.877099
## iter 100 value 20.876572
## final  value 20.876572 
## stopped after 100 iterations
## # weights:  247
## initial  value 394.091643 
## iter  10 value 80.590034
## iter  20 value 48.460155
## iter  30 value 27.518941
## iter  40 value 16.462677
## iter  50 value 11.273452
## iter  60 value 10.400797
## iter  70 value 10.305115
## iter  80 value 10.303060
## final  value 10.303039 
## converged
## # weights:  411
## initial  value 351.749855 
## iter  10 value 55.697025
## iter  20 value 22.350030
## iter  30 value 12.896713
## iter  40 value 10.176409
## iter  50 value 9.126635
## iter  60 value 8.718207
## iter  70 value 8.545336
## iter  80 value 8.502993
## iter  90 value 8.502663
## final  value 8.502662 
## converged
## # weights:  83
## initial  value 336.414617 
## iter  10 value 33.263736
## iter  20 value 22.848567
## iter  30 value 22.839049
## iter  40 value 22.838354
## iter  50 value 22.837767
## iter  60 value 22.837027
## iter  70 value 22.836404
## iter  80 value 22.835758
## iter  90 value 22.835447
## iter 100 value 22.835019
## final  value 22.835019 
## stopped after 100 iterations
## # weights:  247
## initial  value 377.485777 
## iter  10 value 34.310207
## iter  20 value 30.598283
## iter  30 value 30.545189
## iter  40 value 29.146090
## iter  50 value 29.123387
## iter  60 value 29.044300
## iter  70 value 28.923384
## iter  80 value 28.884158
## iter  90 value 28.844118
## iter 100 value 27.704976
## final  value 27.704976 
## stopped after 100 iterations
## # weights:  411
## initial  value 411.709452 
## iter  10 value 26.045387
## iter  20 value 14.185456
## iter  30 value 12.073522
## iter  40 value 8.012715
## iter  50 value 7.490718
## iter  60 value 7.161884
## iter  70 value 6.967063
## iter  80 value 6.953860
## iter  90 value 3.365022
## iter 100 value 3.131535
## final  value 3.131535 
## stopped after 100 iterations
## # weights:  83
## initial  value 326.762731 
## iter  10 value 52.822433
## iter  20 value 44.532594
## iter  30 value 36.432835
## iter  40 value 29.650558
## iter  50 value 29.591894
## iter  60 value 29.591514
## final  value 29.591456 
## converged
## # weights:  247
## initial  value 305.385896 
## iter  10 value 32.491765
## iter  20 value 28.687909
## iter  30 value 25.123022
## iter  40 value 21.582183
## iter  50 value 21.176793
## iter  60 value 21.169624
## iter  70 value 21.161173
## iter  80 value 20.455655
## iter  90 value 20.352051
## iter 100 value 19.714648
## final  value 19.714648 
## stopped after 100 iterations
## # weights:  411
## initial  value 314.904128 
## iter  10 value 11.495235
## iter  20 value 0.165978
## iter  30 value 0.010403
## iter  40 value 0.001818
## iter  50 value 0.000502
## iter  60 value 0.000159
## final  value 0.000094 
## converged
## # weights:  83
## initial  value 321.992454 
## iter  10 value 47.875165
## iter  20 value 39.178441
## iter  30 value 33.470784
## iter  40 value 26.510248
## iter  50 value 22.283769
## iter  60 value 22.153735
## iter  70 value 22.151905
## final  value 22.151901 
## converged
## # weights:  247
## initial  value 403.045283 
## iter  10 value 88.647068
## iter  20 value 43.340460
## iter  30 value 15.546890
## iter  40 value 11.606355
## iter  50 value 10.847702
## iter  60 value 10.655124
## iter  70 value 10.543752
## iter  80 value 10.452011
## iter  90 value 10.443473
## iter 100 value 10.443054
## final  value 10.443054 
## stopped after 100 iterations
## # weights:  411
## initial  value 357.724047 
## iter  10 value 78.113176
## iter  20 value 34.107580
## iter  30 value 15.284666
## iter  40 value 10.892756
## iter  50 value 9.772909
## iter  60 value 9.414567
## iter  70 value 9.261929
## iter  80 value 9.154964
## iter  90 value 9.142335
## iter 100 value 9.124472
## final  value 9.124472 
## stopped after 100 iterations
## # weights:  83
## initial  value 401.208768 
## iter  10 value 87.761132
## iter  20 value 64.594346
## iter  30 value 43.382110
## iter  40 value 36.810775
## iter  50 value 36.678376
## iter  60 value 36.674536
## iter  70 value 36.671595
## iter  80 value 36.667541
## iter  90 value 27.347022
## iter 100 value 27.324806
## final  value 27.324806 
## stopped after 100 iterations
## # weights:  247
## initial  value 324.932125 
## iter  10 value 44.817970
## iter  20 value 39.182862
## iter  30 value 37.213365
## iter  40 value 33.121727
## iter  50 value 31.632994
## iter  60 value 30.945094
## iter  70 value 28.346355
## iter  80 value 27.856603
## iter  90 value 25.945977
## iter 100 value 25.521140
## final  value 25.521140 
## stopped after 100 iterations
## # weights:  411
## initial  value 324.920496 
## iter  10 value 13.573040
## iter  20 value 9.420639
## iter  30 value 7.798172
## iter  40 value 4.015519
## iter  50 value 3.974850
## iter  60 value 3.960192
## iter  70 value 3.950770
## iter  80 value 3.930923
## iter  90 value 2.071583
## iter 100 value 2.048065
## final  value 2.048065 
## stopped after 100 iterations
## # weights:  83
## initial  value 383.945027 
## iter  10 value 61.262747
## iter  20 value 43.405468
## iter  30 value 36.312286
## iter  40 value 36.302712
## final  value 36.302676 
## converged
## # weights:  247
## initial  value 344.609826 
## iter  10 value 34.818943
## iter  20 value 10.884745
## iter  30 value 10.073753
## iter  40 value 10.005973
## iter  50 value 9.993395
## iter  60 value 9.987045
## iter  70 value 9.985209
## iter  80 value 9.980488
## iter  90 value 9.975887
## iter 100 value 9.973602
## final  value 9.973602 
## stopped after 100 iterations
## # weights:  411
## initial  value 345.481847 
## iter  10 value 40.339016
## iter  20 value 16.790916
## iter  30 value 16.048132
## iter  40 value 13.756416
## iter  50 value 13.722467
## iter  60 value 11.382532
## iter  70 value 11.284387
## iter  80 value 9.477437
## iter  90 value 6.922980
## iter 100 value 6.088043
## final  value 6.088043 
## stopped after 100 iterations
## # weights:  83
## initial  value 350.487178 
## iter  10 value 203.529124
## iter  20 value 123.523212
## iter  30 value 91.670398
## iter  40 value 70.725364
## iter  50 value 49.348123
## iter  60 value 38.426478
## iter  70 value 29.125238
## iter  80 value 21.949885
## iter  90 value 21.110607
## iter 100 value 21.068592
## final  value 21.068592 
## stopped after 100 iterations
## # weights:  247
## initial  value 351.445527 
## iter  10 value 41.584238
## iter  20 value 23.275974
## iter  30 value 16.972688
## iter  40 value 13.692530
## iter  50 value 11.761739
## iter  60 value 11.707056
## iter  70 value 11.705014
## iter  80 value 11.704961
## iter  80 value 11.704961
## iter  80 value 11.704961
## final  value 11.704961 
## converged
## # weights:  411
## initial  value 272.614067 
## iter  10 value 35.432430
## iter  20 value 14.561876
## iter  30 value 10.338165
## iter  40 value 9.311010
## iter  50 value 9.086595
## iter  60 value 9.052270
## iter  70 value 8.965391
## iter  80 value 8.886916
## iter  90 value 8.885054
## final  value 8.885048 
## converged
## # weights:  83
## initial  value 335.319859 
## iter  10 value 61.538804
## iter  20 value 36.382295
## iter  30 value 33.067065
## iter  40 value 33.060621
## iter  50 value 33.044561
## iter  60 value 33.036712
## iter  70 value 33.031922
## iter  80 value 33.021951
## iter  90 value 29.504528
## iter 100 value 25.879731
## final  value 25.879731 
## stopped after 100 iterations
## # weights:  247
## initial  value 370.920549 
## iter  10 value 26.062046
## iter  20 value 12.660154
## iter  30 value 8.415600
## iter  40 value 3.598680
## iter  50 value 1.666163
## iter  60 value 0.322298
## iter  70 value 0.229196
## iter  80 value 0.202559
## iter  90 value 0.190282
## iter 100 value 0.151807
## final  value 0.151807 
## stopped after 100 iterations
## # weights:  411
## initial  value 390.652397 
## iter  10 value 32.659016
## iter  20 value 19.924161
## iter  30 value 17.093988
## iter  40 value 16.078461
## iter  50 value 15.919828
## iter  60 value 14.743639
## iter  70 value 13.044147
## iter  80 value 10.404507
## iter  90 value 9.491522
## iter 100 value 8.992430
## final  value 8.992430 
## stopped after 100 iterations
## # weights:  83
## initial  value 323.866630 
## iter  10 value 242.796418
## iter  20 value 124.387128
## iter  30 value 91.543780
## iter  40 value 88.944513
## iter  50 value 88.831959
## iter  60 value 86.071753
## iter  70 value 86.070540
## iter  80 value 79.258909
## iter  90 value 68.227206
## iter 100 value 68.174449
## final  value 68.174449 
## stopped after 100 iterations
## # weights:  247
## initial  value 418.060266 
## iter  10 value 74.585597
## iter  20 value 24.498702
## iter  30 value 13.751412
## iter  40 value 3.789564
## iter  50 value 3.295703
## iter  60 value 3.157229
## iter  70 value 3.028643
## iter  80 value 3.023181
## iter  90 value 2.880953
## iter 100 value 2.876094
## final  value 2.876094 
## stopped after 100 iterations
## # weights:  411
## initial  value 359.407168 
## iter  10 value 28.817143
## iter  20 value 8.530030
## iter  30 value 6.358955
## iter  40 value 6.224511
## iter  50 value 6.204338
## iter  60 value 5.367965
## iter  70 value 4.785920
## iter  80 value 4.784189
## iter  90 value 4.782508
## iter 100 value 4.780933
## final  value 4.780933 
## stopped after 100 iterations
## # weights:  83
## initial  value 361.801130 
## iter  10 value 100.846163
## iter  20 value 68.653934
## iter  30 value 61.108285
## iter  40 value 54.144293
## iter  50 value 41.093110
## iter  60 value 36.260323
## iter  70 value 24.742730
## iter  80 value 22.235793
## iter  90 value 21.727434
## iter 100 value 21.650537
## final  value 21.650537 
## stopped after 100 iterations
## # weights:  247
## initial  value 337.774398 
## iter  10 value 89.614733
## iter  20 value 38.129368
## iter  30 value 20.926360
## iter  40 value 12.290090
## iter  50 value 11.397214
## iter  60 value 11.312696
## iter  70 value 11.307336
## iter  80 value 11.307243
## final  value 11.307241 
## converged
## # weights:  411
## initial  value 377.705633 
## iter  10 value 48.045188
## iter  20 value 26.397242
## iter  30 value 17.421726
## iter  40 value 12.201767
## iter  50 value 10.836739
## iter  60 value 10.200622
## iter  70 value 9.976117
## iter  80 value 9.825591
## iter  90 value 9.770976
## iter 100 value 9.762707
## final  value 9.762707 
## stopped after 100 iterations
## # weights:  83
## initial  value 342.991901 
## iter  10 value 75.526534
## iter  20 value 50.987318
## iter  30 value 46.474219
## iter  40 value 41.670675
## iter  50 value 38.423145
## iter  60 value 38.365522
## iter  70 value 38.361420
## iter  80 value 38.354202
## iter  90 value 38.347343
## iter 100 value 38.345319
## final  value 38.345319 
## stopped after 100 iterations
## # weights:  247
## initial  value 327.856380 
## iter  10 value 30.367253
## iter  20 value 25.592918
## iter  30 value 21.097637
## iter  40 value 20.046114
## iter  50 value 19.816784
## iter  60 value 15.068676
## iter  70 value 9.665097
## iter  80 value 9.183462
## iter  90 value 9.128038
## iter 100 value 8.927188
## final  value 8.927188 
## stopped after 100 iterations
## # weights:  411
## initial  value 351.123164 
## iter  10 value 25.977736
## iter  20 value 5.907212
## iter  30 value 2.630313
## iter  40 value 1.706659
## iter  50 value 0.394846
## iter  60 value 0.169993
## iter  70 value 0.141506
## iter  80 value 0.138905
## iter  90 value 0.134151
## iter 100 value 0.125704
## final  value 0.125704 
## stopped after 100 iterations
## # weights:  83
## initial  value 318.880157 
## iter  10 value 58.563511
## iter  20 value 47.196235
## iter  30 value 36.366908
## iter  40 value 36.306540
## iter  50 value 36.300610
## iter  60 value 36.136242
## iter  70 value 29.520299
## iter  80 value 29.517525
## iter  90 value 29.517040
## iter 100 value 29.516549
## final  value 29.516549 
## stopped after 100 iterations
## # weights:  247
## initial  value 357.483818 
## iter  10 value 89.915099
## iter  20 value 85.061469
## final  value 85.061422 
## converged
## # weights:  411
## initial  value 333.629296 
## iter  10 value 19.025901
## iter  20 value 12.964212
## iter  30 value 11.297203
## iter  40 value 9.954257
## iter  50 value 9.037558
## iter  60 value 8.973998
## iter  70 value 8.972601
## iter  80 value 8.324737
## iter  90 value 8.319041
## final  value 8.317626 
## converged
## # weights:  83
## initial  value 392.915483 
## iter  10 value 89.701773
## iter  20 value 68.413540
## iter  30 value 46.177130
## iter  40 value 35.438784
## iter  50 value 32.406963
## iter  60 value 26.340024
## iter  70 value 22.632118
## iter  80 value 21.689153
## iter  90 value 21.589338
## iter 100 value 21.580986
## final  value 21.580986 
## stopped after 100 iterations
## # weights:  247
## initial  value 325.335884 
## iter  10 value 69.473127
## iter  20 value 33.660683
## iter  30 value 21.240532
## iter  40 value 14.872928
## iter  50 value 13.797031
## iter  60 value 13.161008
## iter  70 value 12.528829
## iter  80 value 12.428804
## iter  90 value 12.401363
## iter 100 value 12.392418
## final  value 12.392418 
## stopped after 100 iterations
## # weights:  411
## initial  value 353.835320 
## iter  10 value 122.696207
## iter  20 value 89.558816
## iter  30 value 55.887725
## iter  40 value 28.341546
## iter  50 value 15.308638
## iter  60 value 12.562383
## iter  70 value 11.791538
## iter  80 value 11.512743
## iter  90 value 11.376500
## iter 100 value 11.190836
## final  value 11.190836 
## stopped after 100 iterations
## # weights:  83
## initial  value 328.453160 
## iter  10 value 74.848758
## iter  20 value 43.862520
## iter  30 value 33.091587
## iter  40 value 32.846212
## iter  50 value 32.842331
## iter  60 value 32.835865
## iter  70 value 32.827368
## iter  80 value 30.169689
## iter  90 value 29.647091
## iter 100 value 29.644096
## final  value 29.644096 
## stopped after 100 iterations
## # weights:  247
## initial  value 483.674462 
## iter  10 value 33.793108
## iter  20 value 19.208429
## iter  30 value 11.854500
## iter  40 value 9.717876
## iter  50 value 7.877034
## iter  60 value 7.704249
## iter  70 value 7.046863
## iter  80 value 7.034829
## iter  90 value 6.281851
## iter 100 value 5.585036
## final  value 5.585036 
## stopped after 100 iterations
## # weights:  411
## initial  value 337.598349 
## iter  10 value 47.603911
## iter  20 value 23.924252
## iter  30 value 19.537631
## iter  40 value 17.288119
## iter  50 value 15.515339
## iter  60 value 10.101210
## iter  70 value 4.198891
## iter  80 value 3.069069
## iter  90 value 2.690411
## iter 100 value 2.632615
## final  value 2.632615 
## stopped after 100 iterations
## # weights:  83
## initial  value 440.007313 
## iter  10 value 51.768164
## iter  20 value 47.345902
## iter  30 value 46.438616
## iter  40 value 40.472296
## iter  50 value 40.404240
## iter  60 value 40.399679
## iter  70 value 37.128505
## iter  80 value 37.127939
## iter  90 value 37.127831
## iter  90 value 37.127831
## iter  90 value 37.127831
## final  value 37.127831 
## converged

Resultados de Modelo

resultados_train_rn = predict(modelo_rn, train_set)
resultados_test_rn = predict(modelo_rn, test_set)

Matriz de Confusión

##### ENTRENAMIENTO ######
MCRE_rn = confusionMatrix(resultados_train_rn, train_set$Class) # MCRE - Matriz de Confusión de Resultados de Entrenamiento.
#MCRE_rn

##### PRUEBA #####
MCRP_rn = confusionMatrix(resultados_test_rn, test_set$Class) # MCRE - Matriz de Confusión de Resultados de Prueba.
MCRP_rn
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign        84         3
##   malignant      4        44
##                                           
##                Accuracy : 0.9481          
##                  95% CI : (0.8961, 0.9789)
##     No Information Rate : 0.6519          
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.8863          
##                                           
##  Mcnemar's Test P-Value : 1               
##                                           
##             Sensitivity : 0.9545          
##             Specificity : 0.9362          
##          Pos Pred Value : 0.9655          
##          Neg Pred Value : 0.9167          
##              Prevalence : 0.6519          
##          Detection Rate : 0.6222          
##    Detection Prevalence : 0.6444          
##       Balanced Accuracy : 0.9454          
##                                           
##        'Positive' Class : benign          
## 

Random Forests

Entrenamiento de Modelo

modelo_rf = train(Class ~., data = train_set,
                    method = "rf",
                    preProcess = c("scale", "center"),
                    trControl = trainControl(method = "cv", number =10),
                    tuneGrid = expand.grid(mtry =c(2,4,6))
                    )

Resultados de Modelo

resultados_train_rf = predict(modelo_rf, train_set)
resultados_test_rf = predict(modelo_rf, test_set)

Matriz de Confusión

##### ENTRENAMIENTO ######
MCRE_rf = confusionMatrix(resultados_train_rf, train_set$Class) # MCRE - Matriz de Confusión de Resultados de Entrenamiento.
#MCRE_rf

##### PRUEBA #####
MCRP_rf = confusionMatrix(resultados_test_rf, test_set$Class) # MCRE - Matriz de Confusión de Resultados de Prueba.
MCRP_rf
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign        85         3
##   malignant      3        44
##                                           
##                Accuracy : 0.9556          
##                  95% CI : (0.9058, 0.9835)
##     No Information Rate : 0.6519          
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.9021          
##                                           
##  Mcnemar's Test P-Value : 1               
##                                           
##             Sensitivity : 0.9659          
##             Specificity : 0.9362          
##          Pos Pred Value : 0.9659          
##          Neg Pred Value : 0.9362          
##              Prevalence : 0.6519          
##          Detection Rate : 0.6296          
##    Detection Prevalence : 0.6519          
##       Balanced Accuracy : 0.9510          
##                                           
##        'Positive' Class : benign          
## 

Comparativa entre Modelos

resultados = data.frame(
  "svmLinear" = c(MCRE_svml$overall["Accuracy"],MCRP_svml$overall["Accuracy"]),
  "svmRadial" = c(MCRE_svmr$overall["Accuracy"],MCRP_svmr$overall["Accuracy"]),
  "svmPoly" = c(MCRE_svmp$overall["Accuracy"],MCRP_svmp$overall["Accuracy"]),
  "Arboles" = c(MCRE_ad$overall["Accuracy"],MCRP_ad$overall["Accuracy"]),
  "Redes" = c(MCRE_rn$overall["Accuracy"],MCRP_rn$overall["Accuracy"]),
  "RandomForest" = c(MCRE_rf$overall["Accuracy"],MCRP_rf$overall["Accuracy"])
)

rownames(resultados) = c("Precisión de entrenamiento", "Precisión de prueba")
resultados
##                            svmLinear svmRadial   svmPoly   Arboles     Redes
## Precisión de entrenamiento 1.0000000 1.0000000 1.0000000 0.9580292 0.9854015
## Precisión de prueba        0.9111111 0.6962963 0.9111111 0.9407407 0.9481481
##                            RandomForest
## Precisión de entrenamiento    0.9963504
## Precisión de prueba           0.9555556
Metodo<-c('SVM Linear','SVM Radial', 'SVM Poly', 'Árboles de decisión', 'Redes Neuronales', 'Random Forest')
ACC_Train<-c(MCRE_svml$overall["Accuracy"], MCRE_svmr$overall["Accuracy"], MCRE_svmp$overall["Accuracy"], MCRE_ad$overall["Accuracy"],MCRE_rn$overall["Accuracy"],MCRE_rf$overall["Accuracy"])
ACC_Test<-c(MCRP_svml$overall["Accuracy"], MCRP_svmr$overall["Accuracy"], MCRP_svmp$overall["Accuracy"], MCRP_ad$overall["Accuracy"],MCRP_rn$overall["Accuracy"],MCRP_rf$overall["Accuracy"])
RMSE_df<-data.frame(Metodo,ACC_Train, ACC_Test)
RMSE_df %>%
  kbl() %>%
  kable_styling()
Metodo ACC_Train ACC_Test
SVM Linear 1.0000000 0.9111111
SVM Radial 1.0000000 0.6962963
SVM Poly 1.0000000 0.9111111
Árboles de decisión 0.9580292 0.9407407
Redes Neuronales 0.9854015 0.9481481
Random Forest 0.9963504 0.9555556