Ejercicio1. Modelo de Aprendizaje Automático

#install.packages(“mlbench”)

library(mlbench)
library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
data(BreastCancer)

#Incluir funciones para evaluación y comparación de modelos: resamples() dotplot()

df <- BreastCancer

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  
##                 
##                 
##                 
##                 
## 
str(df)
## '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)
df <- df[, -which(names(df) == "Id")]
df <- na.omit(df)  # Eliminar filas con valores NA
df$Cl.thickness <- as.numeric(as.character(df$Cl.thickness))
df$Cell.size   <- as.numeric(as.character(df$Cell.size))
df$Cell.shape   <- as.numeric(as.character(df$Cell.shape))
df$Marg.adhesion   <- as.numeric(as.character(df$Marg.adhesion))
df$Epith.c.size   <- as.numeric(as.character(df$Epith.c.size))
df$Bare.nuclei   <- as.numeric(as.character(df$Bare.nuclei))
df$Bl.cromatin   <- as.numeric(as.character(df$Bl.cromatin))
df$Normal.nucleoli   <- as.numeric(as.character(df$Normal.nucleoli))
df$Mitoses   <- as.numeric(as.character(df$Mitoses))
set.seed(123)
renglones_entrenamiento <- createDataPartition(df$Class, p=0.8, list=FALSE)
entrenamiento <- df[renglones_entrenamiento, ]
prueba <- df[-renglones_entrenamiento, ]

modelo1 <- train(Class ~ ., data=entrenamiento, method = "svmLinear", preProcess=c("scale","center"), trControl = trainControl(method="cv", number=10), tuneGrind = data.frame(C=1)# cuando es svmLinear
)

resultado_entrenamiento1 <- predict(modelo1,entrenamiento)
resultado_prueba1 <- predict(modelo1,prueba)

# Matriz de Confusión

mcre1 <- confusionMatrix(resultado_entrenamiento1, entrenamiento$Class) # matriz de confusión del resultado del entrenamiento
mcre1
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign       347         7
##   malignant      9       185
##                                          
##                Accuracy : 0.9708         
##                  95% CI : (0.953, 0.9832)
##     No Information Rate : 0.6496         
##     P-Value [Acc > NIR] : <2e-16         
##                                          
##                   Kappa : 0.936          
##                                          
##  Mcnemar's Test P-Value : 0.8026         
##                                          
##             Sensitivity : 0.9747         
##             Specificity : 0.9635         
##          Pos Pred Value : 0.9802         
##          Neg Pred Value : 0.9536         
##              Prevalence : 0.6496         
##          Detection Rate : 0.6332         
##    Detection Prevalence : 0.6460         
##       Balanced Accuracy : 0.9691         
##                                          
##        'Positive' Class : benign         
## 
mcrp1 <- confusionMatrix(resultado_prueba1, prueba$Class) # matriz de confusión del resultado de la prueba
mcrp1
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign        87         2
##   malignant      1        45
##                                           
##                Accuracy : 0.9778          
##                  95% CI : (0.9364, 0.9954)
##     No Information Rate : 0.6519          
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.9508          
##                                           
##  Mcnemar's Test P-Value : 1               
##                                           
##             Sensitivity : 0.9886          
##             Specificity : 0.9574          
##          Pos Pred Value : 0.9775          
##          Neg Pred Value : 0.9783          
##              Prevalence : 0.6519          
##          Detection Rate : 0.6444          
##    Detection Prevalence : 0.6593          
##       Balanced Accuracy : 0.9730          
##                                           
##        'Positive' Class : benign          
## 

2. Modelo con metodo svmradial

modelo2 <- train(Class ~ ., data=entrenamiento, method = "svmRadial", preProcess=c("scale","center"), trControl = trainControl(method="cv", number=10), tuneGrind = data.frame(sigma=1, C=1)# cuando es svmradial
                )

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

# Matriz de Confusión
mcre2 <- confusionMatrix(resultado_entrenamiento2, entrenamiento$Class) # matriz de confusión del resultado del entrenamiento
mcre2
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign       349         1
##   malignant      7       191
##                                           
##                Accuracy : 0.9854          
##                  95% CI : (0.9714, 0.9937)
##     No Information Rate : 0.6496          
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.9682          
##                                           
##  Mcnemar's Test P-Value : 0.0771          
##                                           
##             Sensitivity : 0.9803          
##             Specificity : 0.9948          
##          Pos Pred Value : 0.9971          
##          Neg Pred Value : 0.9646          
##              Prevalence : 0.6496          
##          Detection Rate : 0.6369          
##    Detection Prevalence : 0.6387          
##       Balanced Accuracy : 0.9876          
##                                           
##        'Positive' Class : benign          
## 
mcrp2 <- confusionMatrix(resultado_prueba2, prueba$Class) # matriz de confusión del resultado de la prueba
mcrp2
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign        83         0
##   malignant      5        47
##                                           
##                Accuracy : 0.963           
##                  95% CI : (0.9157, 0.9879)
##     No Information Rate : 0.6519          
##     P-Value [Acc > NIR] : < 2e-16         
##                                           
##                   Kappa : 0.9204          
##                                           
##  Mcnemar's Test P-Value : 0.07364         
##                                           
##             Sensitivity : 0.9432          
##             Specificity : 1.0000          
##          Pos Pred Value : 1.0000          
##          Neg Pred Value : 0.9038          
##              Prevalence : 0.6519          
##          Detection Rate : 0.6148          
##    Detection Prevalence : 0.6148          
##       Balanced Accuracy : 0.9716          
##                                           
##        'Positive' Class : benign          
## 

3. Modelo con metodo svmPoly

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

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

# Matriz de Confusión
mcre3 <- confusionMatrix(resultado_entrenamiento3, entrenamiento$Class) # matriz de confusión del resultado del entrenamiento
mcre3
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign       347         7
##   malignant      9       185
##                                          
##                Accuracy : 0.9708         
##                  95% CI : (0.953, 0.9832)
##     No Information Rate : 0.6496         
##     P-Value [Acc > NIR] : <2e-16         
##                                          
##                   Kappa : 0.936          
##                                          
##  Mcnemar's Test P-Value : 0.8026         
##                                          
##             Sensitivity : 0.9747         
##             Specificity : 0.9635         
##          Pos Pred Value : 0.9802         
##          Neg Pred Value : 0.9536         
##              Prevalence : 0.6496         
##          Detection Rate : 0.6332         
##    Detection Prevalence : 0.6460         
##       Balanced Accuracy : 0.9691         
##                                          
##        'Positive' Class : benign         
## 
mcrp3 <- confusionMatrix(resultado_prueba3, prueba$Class) # matriz de confusión del resultado de la prueba
mcrp3
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign        86         2
##   malignant      2        45
##                                           
##                Accuracy : 0.9704          
##                  95% CI : (0.9259, 0.9919)
##     No Information Rate : 0.6519          
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.9347          
##                                           
##  Mcnemar's Test P-Value : 1               
##                                           
##             Sensitivity : 0.9773          
##             Specificity : 0.9574          
##          Pos Pred Value : 0.9773          
##          Neg Pred Value : 0.9574          
##              Prevalence : 0.6519          
##          Detection Rate : 0.6370          
##    Detection Prevalence : 0.6519          
##       Balanced Accuracy : 0.9674          
##                                           
##        'Positive' Class : benign          
## 

4. Modelo con metodo rpart

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

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

# Matriz de Confusión
mcre4 <- confusionMatrix(resultado_entrenamiento4, entrenamiento$Class) # matriz de confusión del resultado del entrenamiento
mcre4
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign       345         9
##   malignant     11       183
##                                           
##                Accuracy : 0.9635          
##                  95% CI : (0.9442, 0.9776)
##     No Information Rate : 0.6496          
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.92            
##                                           
##  Mcnemar's Test P-Value : 0.8231          
##                                           
##             Sensitivity : 0.9691          
##             Specificity : 0.9531          
##          Pos Pred Value : 0.9746          
##          Neg Pred Value : 0.9433          
##              Prevalence : 0.6496          
##          Detection Rate : 0.6296          
##    Detection Prevalence : 0.6460          
##       Balanced Accuracy : 0.9611          
##                                           
##        'Positive' Class : benign          
## 
mcrp4 <- confusionMatrix(resultado_prueba4, prueba$Class) # matriz de confusión del resultado de la prueba
mcrp4
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign        87         5
##   malignant      1        42
##                                           
##                Accuracy : 0.9556          
##                  95% CI : (0.9058, 0.9835)
##     No Information Rate : 0.6519          
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.9001          
##                                           
##  Mcnemar's Test P-Value : 0.2207          
##                                           
##             Sensitivity : 0.9886          
##             Specificity : 0.8936          
##          Pos Pred Value : 0.9457          
##          Neg Pred Value : 0.9767          
##              Prevalence : 0.6519          
##          Detection Rate : 0.6444          
##    Detection Prevalence : 0.6815          
##       Balanced Accuracy : 0.9411          
##                                           
##        'Positive' Class : benign          
## 

5. Modelo con metodo nnet

modelo5 <- train(Class ~ ., data=entrenamiento,
                 method = "nnet",
                 preProcess=c("scale","center"),
                 trControl = trainControl(method="cv", number=10)
                 # cuando es nnet
                )
## # weights:  12
## initial  value 343.094303 
## iter  10 value 56.636764
## iter  20 value 53.058746
## iter  30 value 50.734511
## iter  40 value 49.946980
## iter  50 value 48.467939
## iter  60 value 48.443675
## iter  70 value 48.430363
## iter  80 value 48.429295
## iter  90 value 48.428800
## iter 100 value 48.427369
## final  value 48.427369 
## stopped after 100 iterations
## # weights:  34
## initial  value 356.826640 
## iter  10 value 32.074068
## iter  20 value 23.691591
## iter  30 value 17.857097
## iter  40 value 16.722242
## iter  50 value 16.532574
## iter  60 value 16.468285
## iter  70 value 16.465880
## iter  80 value 16.454306
## iter  90 value 16.430481
## iter 100 value 16.428145
## final  value 16.428145 
## stopped after 100 iterations
## # weights:  56
## initial  value 544.853171 
## iter  10 value 29.135965
## iter  20 value 20.054533
## iter  30 value 9.975023
## iter  40 value 7.680456
## iter  50 value 6.782733
## iter  60 value 6.232243
## iter  70 value 5.774634
## iter  80 value 4.800660
## iter  90 value 4.781704
## iter 100 value 4.781514
## final  value 4.781514 
## stopped after 100 iterations
## # weights:  12
## initial  value 307.283886 
## iter  10 value 55.748205
## iter  20 value 51.347028
## iter  30 value 50.946970
## final  value 50.946957 
## converged
## # weights:  34
## initial  value 319.882055 
## iter  10 value 68.911231
## iter  20 value 47.269852
## iter  30 value 39.983767
## iter  40 value 37.976355
## iter  50 value 37.371554
## iter  60 value 37.315749
## iter  70 value 37.204730
## iter  80 value 37.201535
## iter  80 value 37.201535
## iter  80 value 37.201535
## final  value 37.201535 
## converged
## # weights:  56
## initial  value 343.805285 
## iter  10 value 69.789182
## iter  20 value 40.273600
## iter  30 value 38.546679
## iter  40 value 37.777575
## iter  50 value 37.041389
## iter  60 value 37.014437
## iter  70 value 36.890627
## iter  80 value 36.804635
## iter  90 value 36.548635
## iter 100 value 36.541121
## final  value 36.541121 
## stopped after 100 iterations
## # weights:  12
## initial  value 331.189030 
## iter  10 value 44.828119
## iter  20 value 40.543889
## iter  30 value 40.233697
## iter  40 value 39.650642
## iter  50 value 39.637448
## final  value 39.637430 
## converged
## # weights:  34
## initial  value 482.495648 
## iter  10 value 38.269235
## iter  20 value 28.263330
## iter  30 value 22.386448
## iter  40 value 20.361023
## iter  50 value 18.693814
## iter  60 value 17.194339
## iter  70 value 16.783430
## iter  80 value 16.578976
## iter  90 value 16.541276
## iter 100 value 16.516258
## final  value 16.516258 
## stopped after 100 iterations
## # weights:  56
## initial  value 353.185438 
## iter  10 value 40.894842
## iter  20 value 32.863336
## iter  30 value 31.433372
## iter  40 value 31.214406
## iter  50 value 30.738503
## iter  60 value 30.026135
## iter  70 value 29.752462
## iter  80 value 29.598979
## iter  90 value 29.120300
## iter 100 value 28.875687
## final  value 28.875687 
## stopped after 100 iterations
## # weights:  12
## initial  value 301.863311 
## iter  10 value 43.571929
## iter  20 value 42.884141
## iter  30 value 42.564806
## iter  40 value 42.550094
## iter  50 value 42.541121
## iter  60 value 42.537610
## iter  70 value 42.535236
## iter  80 value 42.532932
## iter  90 value 42.532139
## iter 100 value 42.530604
## final  value 42.530604 
## stopped after 100 iterations
## # weights:  34
## initial  value 340.507299 
## iter  10 value 42.930729
## iter  20 value 41.979862
## iter  30 value 40.759776
## iter  40 value 39.711064
## iter  50 value 36.875053
## iter  60 value 35.652621
## iter  70 value 34.661923
## iter  80 value 32.635186
## iter  90 value 25.648925
## iter 100 value 21.103093
## final  value 21.103093 
## stopped after 100 iterations
## # weights:  56
## initial  value 297.095553 
## iter  10 value 33.302208
## iter  20 value 19.121222
## iter  30 value 13.706333
## iter  40 value 11.451945
## iter  50 value 10.955334
## iter  60 value 10.897900
## iter  70 value 10.805012
## iter  80 value 10.797258
## iter  90 value 10.773625
## iter 100 value 10.548413
## final  value 10.548413 
## stopped after 100 iterations
## # weights:  12
## initial  value 360.246313 
## iter  10 value 66.925960
## iter  20 value 54.021793
## iter  30 value 53.448151
## iter  40 value 53.270000
## final  value 53.269978 
## converged
## # weights:  34
## initial  value 299.023143 
## iter  10 value 66.440903
## iter  20 value 45.264453
## iter  30 value 43.480582
## iter  40 value 43.462397
## iter  50 value 42.765503
## iter  60 value 41.865365
## iter  70 value 40.985002
## iter  80 value 40.969761
## final  value 40.969745 
## converged
## # weights:  56
## initial  value 386.343749 
## iter  10 value 48.162365
## iter  20 value 42.844680
## iter  30 value 41.212715
## iter  40 value 40.327318
## iter  50 value 38.887572
## iter  60 value 38.120384
## iter  70 value 38.005933
## final  value 38.005592 
## converged
## # weights:  12
## initial  value 308.882984 
## iter  10 value 39.956091
## iter  20 value 39.744202
## iter  30 value 36.657642
## iter  40 value 34.709321
## iter  50 value 34.623596
## iter  60 value 34.465560
## iter  70 value 34.346015
## iter  80 value 34.302765
## iter  90 value 34.263923
## iter 100 value 34.176733
## final  value 34.176733 
## stopped after 100 iterations
## # weights:  34
## initial  value 285.451531 
## iter  10 value 33.486790
## iter  20 value 27.231813
## iter  30 value 21.342308
## iter  40 value 19.042263
## iter  50 value 18.681800
## iter  60 value 18.610544
## iter  70 value 18.481554
## iter  80 value 18.334381
## iter  90 value 18.253581
## iter 100 value 18.223811
## final  value 18.223811 
## stopped after 100 iterations
## # weights:  56
## initial  value 359.077155 
## iter  10 value 33.147667
## iter  20 value 18.871371
## iter  30 value 11.599025
## iter  40 value 9.161732
## iter  50 value 8.354897
## iter  60 value 7.531120
## iter  70 value 7.381134
## iter  80 value 6.922982
## iter  90 value 6.356298
## iter 100 value 5.286015
## final  value 5.286015 
## stopped after 100 iterations
## # weights:  12
## initial  value 326.846865 
## iter  10 value 38.750173
## iter  20 value 36.259168
## iter  30 value 36.019306
## iter  40 value 34.237884
## iter  50 value 32.782650
## iter  60 value 32.776709
## iter  70 value 32.776385
## iter  80 value 32.775866
## iter  90 value 32.775774
## iter 100 value 32.775201
## final  value 32.775201 
## stopped after 100 iterations
## # weights:  34
## initial  value 316.248078 
## iter  10 value 36.945896
## iter  20 value 30.641599
## iter  30 value 28.659440
## iter  40 value 27.525186
## iter  50 value 25.638706
## iter  60 value 25.048531
## iter  70 value 24.807797
## iter  80 value 24.778579
## iter  90 value 24.773586
## iter 100 value 24.769883
## final  value 24.769883 
## stopped after 100 iterations
## # weights:  56
## initial  value 433.459424 
## iter  10 value 32.677747
## iter  20 value 22.087315
## iter  30 value 14.735582
## iter  40 value 8.479961
## iter  50 value 7.929549
## iter  60 value 7.923285
## iter  70 value 7.922234
## iter  80 value 7.921992
## final  value 7.921987 
## converged
## # weights:  12
## initial  value 331.041915 
## iter  10 value 58.491470
## iter  20 value 50.605704
## iter  30 value 50.457788
## final  value 50.457717 
## converged
## # weights:  34
## initial  value 418.113818 
## iter  10 value 45.290825
## iter  20 value 40.475041
## iter  30 value 40.214205
## iter  40 value 40.179842
## iter  50 value 40.170993
## final  value 40.170975 
## converged
## # weights:  56
## initial  value 427.123502 
## iter  10 value 118.105834
## iter  20 value 44.914641
## iter  30 value 40.218004
## iter  40 value 39.844956
## iter  50 value 39.764696
## iter  60 value 39.642973
## iter  70 value 39.641156
## iter  80 value 39.639902
## iter  90 value 39.545617
## iter 100 value 39.216055
## final  value 39.216055 
## stopped after 100 iterations
## # weights:  12
## initial  value 347.426887 
## iter  10 value 49.815956
## iter  20 value 42.887906
## iter  30 value 42.726491
## iter  40 value 42.683871
## iter  50 value 42.678635
## iter  60 value 42.677607
## iter  70 value 42.677283
## iter  80 value 42.676975
## iter  90 value 42.676808
## iter 100 value 42.676753
## final  value 42.676753 
## stopped after 100 iterations
## # weights:  34
## initial  value 307.100009 
## iter  10 value 34.710388
## iter  20 value 26.152417
## iter  30 value 20.430756
## iter  40 value 18.944733
## iter  50 value 17.915280
## iter  60 value 17.725616
## iter  70 value 17.624010
## iter  80 value 17.565745
## iter  90 value 17.493842
## iter 100 value 17.415927
## final  value 17.415927 
## stopped after 100 iterations
## # weights:  56
## initial  value 349.579451 
## iter  10 value 33.308444
## iter  20 value 18.953648
## iter  30 value 12.600243
## iter  40 value 11.567857
## iter  50 value 10.723014
## iter  60 value 9.817809
## iter  70 value 9.709208
## iter  80 value 9.603886
## iter  90 value 9.496832
## iter 100 value 9.381030
## final  value 9.381030 
## stopped after 100 iterations
## # weights:  12
## initial  value 359.248019 
## iter  10 value 61.649279
## iter  20 value 44.567652
## iter  30 value 39.731189
## iter  40 value 39.596761
## iter  50 value 39.509097
## iter  60 value 39.501253
## iter  70 value 39.491334
## iter  80 value 39.487710
## iter  90 value 39.486212
## iter 100 value 39.485235
## final  value 39.485235 
## stopped after 100 iterations
## # weights:  34
## initial  value 346.203030 
## iter  10 value 38.893342
## iter  20 value 30.671753
## iter  30 value 29.183896
## iter  40 value 27.329685
## iter  50 value 26.625875
## iter  60 value 26.424134
## iter  70 value 26.369224
## iter  80 value 26.335878
## iter  90 value 26.278457
## iter 100 value 26.237364
## final  value 26.237364 
## stopped after 100 iterations
## # weights:  56
## initial  value 318.878464 
## iter  10 value 33.475469
## iter  20 value 14.949675
## iter  30 value 11.870655
## iter  40 value 11.362993
## iter  50 value 11.202148
## iter  60 value 11.174182
## iter  70 value 11.172818
## iter  80 value 11.171722
## iter  90 value 11.170403
## iter 100 value 11.170192
## final  value 11.170192 
## stopped after 100 iterations
## # weights:  12
## initial  value 456.055575 
## iter  10 value 61.888667
## iter  20 value 53.598955
## iter  30 value 50.705412
## iter  40 value 50.363829
## final  value 50.363821 
## converged
## # weights:  34
## initial  value 307.606375 
## iter  10 value 53.656759
## iter  20 value 43.308981
## iter  30 value 42.274709
## iter  40 value 42.064556
## iter  50 value 41.965387
## final  value 41.964661 
## converged
## # weights:  56
## initial  value 389.875433 
## iter  10 value 57.414101
## iter  20 value 45.681726
## iter  30 value 42.216736
## iter  40 value 40.594840
## iter  50 value 39.621367
## iter  60 value 38.465474
## iter  70 value 38.161543
## iter  80 value 38.157623
## iter  90 value 38.157297
## iter  90 value 38.157297
## iter  90 value 38.157297
## final  value 38.157297 
## converged
## # weights:  12
## initial  value 402.025407 
## iter  10 value 44.827913
## iter  20 value 39.439357
## iter  30 value 37.914773
## iter  40 value 37.783044
## iter  50 value 37.475684
## iter  60 value 37.404140
## iter  70 value 37.404059
## final  value 37.402855 
## converged
## # weights:  34
## initial  value 441.253553 
## iter  10 value 36.184558
## iter  20 value 25.413131
## iter  30 value 22.782597
## iter  40 value 22.340736
## iter  50 value 22.020851
## iter  60 value 21.731710
## iter  70 value 21.640483
## iter  80 value 21.497367
## iter  90 value 21.425293
## iter 100 value 21.044996
## final  value 21.044996 
## stopped after 100 iterations
## # weights:  56
## initial  value 630.982760 
## iter  10 value 34.007858
## iter  20 value 25.742977
## iter  30 value 20.044865
## iter  40 value 17.537317
## iter  50 value 16.150256
## iter  60 value 15.003117
## iter  70 value 13.981581
## iter  80 value 13.508862
## iter  90 value 12.247657
## iter 100 value 11.937393
## final  value 11.937393 
## stopped after 100 iterations
## # weights:  12
## initial  value 364.801283 
## iter  10 value 46.234030
## iter  20 value 44.824368
## iter  30 value 44.767357
## iter  40 value 44.759174
## iter  50 value 44.752652
## iter  60 value 44.749017
## iter  70 value 44.747941
## iter  80 value 44.746737
## iter  90 value 44.746056
## iter 100 value 44.745096
## final  value 44.745096 
## stopped after 100 iterations
## # weights:  34
## initial  value 327.067693 
## iter  10 value 34.361113
## iter  20 value 27.203767
## iter  30 value 21.179010
## iter  40 value 20.994138
## iter  50 value 20.992999
## iter  60 value 20.992897
## iter  70 value 20.991701
## iter  80 value 20.952058
## iter  90 value 20.948934
## iter 100 value 20.912330
## final  value 20.912330 
## stopped after 100 iterations
## # weights:  56
## initial  value 353.170081 
## iter  10 value 41.962251
## iter  20 value 28.029577
## iter  30 value 23.067178
## iter  40 value 22.304488
## iter  50 value 21.716763
## iter  60 value 21.560507
## iter  70 value 21.211476
## iter  80 value 21.189275
## iter  90 value 21.047545
## iter 100 value 21.016052
## final  value 21.016052 
## stopped after 100 iterations
## # weights:  12
## initial  value 381.910600 
## iter  10 value 66.528958
## iter  20 value 51.327971
## iter  30 value 49.402082
## final  value 49.330136 
## converged
## # weights:  34
## initial  value 368.814453 
## iter  10 value 57.425839
## iter  20 value 45.442354
## iter  30 value 43.535140
## iter  40 value 41.392579
## iter  50 value 40.160522
## iter  60 value 39.730478
## iter  70 value 39.709498
## iter  80 value 39.708278
## final  value 39.708254 
## converged
## # weights:  56
## initial  value 328.618259 
## iter  10 value 44.617366
## iter  20 value 39.682079
## iter  30 value 38.083137
## iter  40 value 37.999349
## iter  50 value 37.913467
## iter  60 value 37.782631
## iter  70 value 37.771137
## final  value 37.771135 
## converged
## # weights:  12
## initial  value 429.657918 
## iter  10 value 41.472256
## iter  20 value 38.021511
## iter  30 value 37.360628
## iter  40 value 36.556770
## iter  50 value 36.143158
## iter  60 value 36.119717
## iter  70 value 36.065245
## final  value 36.051586 
## converged
## # weights:  34
## initial  value 303.901236 
## iter  10 value 49.960832
## iter  20 value 36.242893
## iter  30 value 33.207508
## iter  40 value 32.468698
## iter  50 value 32.182265
## iter  60 value 32.153825
## iter  70 value 32.109408
## iter  80 value 32.065553
## iter  90 value 32.019585
## iter 100 value 31.702077
## final  value 31.702077 
## stopped after 100 iterations
## # weights:  56
## initial  value 385.286485 
## iter  10 value 33.781321
## iter  20 value 20.307803
## iter  30 value 9.044203
## iter  40 value 7.808731
## iter  50 value 7.390546
## iter  60 value 7.137659
## iter  70 value 7.045746
## iter  80 value 7.011040
## iter  90 value 6.973686
## iter 100 value 6.934846
## final  value 6.934846 
## stopped after 100 iterations
## # weights:  12
## initial  value 315.629939 
## iter  10 value 46.801101
## iter  20 value 39.505730
## iter  30 value 37.625268
## iter  40 value 36.394424
## iter  50 value 36.327476
## iter  60 value 36.275653
## iter  70 value 36.265881
## iter  80 value 36.263940
## iter  90 value 36.263518
## iter 100 value 36.262894
## final  value 36.262894 
## stopped after 100 iterations
## # weights:  34
## initial  value 295.238119 
## iter  10 value 30.999829
## iter  20 value 25.376984
## iter  30 value 22.500262
## iter  40 value 21.826151
## iter  50 value 21.130971
## iter  60 value 20.560892
## iter  70 value 20.496442
## iter  80 value 20.486008
## iter  90 value 20.470252
## iter 100 value 20.461878
## final  value 20.461878 
## stopped after 100 iterations
## # weights:  56
## initial  value 321.267520 
## iter  10 value 28.957297
## iter  20 value 23.180012
## iter  30 value 20.644464
## iter  40 value 15.524506
## iter  50 value 12.569357
## iter  60 value 11.935946
## iter  70 value 8.093305
## iter  80 value 6.041206
## iter  90 value 3.149767
## iter 100 value 1.942067
## final  value 1.942067 
## stopped after 100 iterations
## # weights:  12
## initial  value 319.019742 
## iter  10 value 77.101553
## iter  20 value 50.928250
## iter  30 value 42.143735
## final  value 42.121119 
## converged
## # weights:  34
## initial  value 330.819317 
## iter  10 value 35.472343
## iter  20 value 33.466693
## iter  30 value 32.893997
## iter  40 value 32.851790
## final  value 32.849190 
## converged
## # weights:  56
## initial  value 380.397707 
## iter  10 value 38.363698
## iter  20 value 34.107344
## iter  30 value 32.396400
## iter  40 value 31.727546
## iter  50 value 31.419245
## iter  60 value 31.403024
## iter  70 value 31.400077
## iter  80 value 31.398889
## final  value 31.398880 
## converged
## # weights:  12
## initial  value 341.791031 
## iter  10 value 51.987861
## iter  20 value 36.592337
## iter  30 value 36.456013
## iter  40 value 36.431679
## iter  50 value 36.403768
## iter  60 value 36.400671
## iter  70 value 36.397634
## iter  80 value 36.396854
## iter  90 value 36.396781
## iter 100 value 36.396700
## final  value 36.396700 
## stopped after 100 iterations
## # weights:  34
## initial  value 329.660847 
## iter  10 value 35.848048
## iter  20 value 27.567689
## iter  30 value 22.091387
## iter  40 value 20.115656
## iter  50 value 19.225038
## iter  60 value 18.909831
## iter  70 value 18.507018
## iter  80 value 18.487255
## iter  90 value 18.452722
## iter 100 value 18.338899
## final  value 18.338899 
## stopped after 100 iterations
## # weights:  56
## initial  value 419.117607 
## iter  10 value 27.495994
## iter  20 value 20.941925
## iter  30 value 14.476167
## iter  40 value 12.048179
## iter  50 value 10.253878
## iter  60 value 7.624202
## iter  70 value 7.034610
## iter  80 value 7.019065
## iter  90 value 6.991152
## iter 100 value 6.973267
## final  value 6.973267 
## stopped after 100 iterations
## # weights:  12
## initial  value 337.082791 
## iter  10 value 41.093191
## iter  20 value 38.747003
## iter  30 value 32.842726
## iter  40 value 29.637886
## iter  50 value 29.621176
## iter  60 value 29.603753
## iter  70 value 29.600528
## iter  80 value 29.598570
## iter  90 value 29.596788
## iter 100 value 29.595872
## final  value 29.595872 
## stopped after 100 iterations
## # weights:  34
## initial  value 342.612257 
## iter  10 value 30.782661
## iter  20 value 21.401761
## iter  30 value 20.277952
## iter  40 value 19.481275
## iter  50 value 18.936903
## iter  60 value 18.789701
## iter  70 value 18.659828
## iter  80 value 18.637688
## iter  90 value 18.632417
## iter 100 value 18.631453
## final  value 18.631453 
## stopped after 100 iterations
## # weights:  56
## initial  value 318.832949 
## iter  10 value 29.006345
## iter  20 value 26.819401
## iter  30 value 24.601084
## iter  40 value 22.169173
## iter  50 value 22.032442
## iter  60 value 21.875934
## iter  70 value 21.695258
## iter  80 value 21.639906
## iter  90 value 21.487458
## iter 100 value 21.180143
## final  value 21.180143 
## stopped after 100 iterations
## # weights:  12
## initial  value 366.243295 
## iter  10 value 68.290228
## iter  20 value 46.105756
## iter  30 value 45.876065
## final  value 45.842733 
## converged
## # weights:  34
## initial  value 429.299172 
## iter  10 value 51.387802
## iter  20 value 42.108297
## iter  30 value 38.264316
## iter  40 value 36.710112
## iter  50 value 35.857503
## iter  60 value 35.326832
## iter  70 value 35.277046
## iter  80 value 35.270288
## final  value 35.270260 
## converged
## # weights:  56
## initial  value 348.622565 
## iter  10 value 60.267360
## iter  20 value 37.833463
## iter  30 value 36.275569
## iter  40 value 34.859005
## iter  50 value 34.325934
## iter  60 value 34.274962
## iter  70 value 34.208440
## iter  80 value 34.178294
## final  value 34.178293 
## converged
## # weights:  12
## initial  value 338.509067 
## iter  10 value 36.411955
## iter  20 value 29.952912
## iter  30 value 29.714104
## iter  40 value 29.701216
## iter  50 value 29.696500
## iter  60 value 29.693649
## iter  70 value 29.693081
## iter  80 value 29.692969
## final  value 29.692930 
## converged
## # weights:  34
## initial  value 467.984092 
## iter  10 value 24.310094
## iter  20 value 21.555697
## iter  30 value 20.038811
## iter  40 value 16.784191
## iter  50 value 16.418548
## iter  60 value 16.278828
## iter  70 value 16.213228
## iter  80 value 16.179492
## iter  90 value 16.149731
## iter 100 value 16.075770
## final  value 16.075770 
## stopped after 100 iterations
## # weights:  56
## initial  value 333.033534 
## iter  10 value 28.095630
## iter  20 value 19.609004
## iter  30 value 15.649139
## iter  40 value 9.784246
## iter  50 value 8.613313
## iter  60 value 7.874408
## iter  70 value 7.747344
## iter  80 value 7.626360
## iter  90 value 6.793278
## iter 100 value 5.802881
## final  value 5.802881 
## stopped after 100 iterations
## # weights:  12
## initial  value 350.507819 
## iter  10 value 42.151537
## iter  20 value 39.843738
## iter  30 value 39.712886
## iter  40 value 39.569480
## iter  50 value 39.475784
## final  value 39.475627 
## converged
## # weights:  34
## initial  value 337.529638 
## iter  10 value 45.361427
## iter  20 value 40.098899
## iter  30 value 35.415620
## iter  40 value 32.212177
## iter  50 value 31.233412
## iter  60 value 30.752763
## iter  70 value 27.807388
## iter  80 value 27.251776
## iter  90 value 27.087158
## iter 100 value 27.032602
## final  value 27.032602 
## stopped after 100 iterations
## # weights:  56
## initial  value 366.608305 
## iter  10 value 30.266184
## iter  20 value 16.167084
## iter  30 value 12.848775
## iter  40 value 12.648193
## iter  50 value 12.643078
## final  value 12.643057 
## converged
## # weights:  12
## initial  value 312.789982 
## iter  10 value 63.443722
## iter  20 value 50.119939
## iter  30 value 49.912730
## final  value 49.912724 
## converged
## # weights:  34
## initial  value 426.806857 
## iter  10 value 57.712598
## iter  20 value 45.659152
## iter  30 value 42.848832
## iter  40 value 41.414863
## iter  50 value 39.953397
## iter  60 value 39.602961
## iter  70 value 39.495716
## iter  80 value 39.477708
## final  value 39.477707 
## converged
## # weights:  56
## initial  value 409.658009 
## iter  10 value 65.856347
## iter  20 value 42.335663
## iter  30 value 38.847240
## iter  40 value 37.991475
## iter  50 value 37.660651
## iter  60 value 37.519549
## iter  70 value 37.517250
## final  value 37.517246 
## converged
## # weights:  12
## initial  value 360.673122 
## iter  10 value 50.486502
## iter  20 value 38.691959
## iter  30 value 37.080744
## iter  40 value 36.371937
## iter  50 value 36.344385
## iter  60 value 36.304465
## iter  70 value 36.299232
## iter  80 value 36.292219
## iter  90 value 36.290972
## iter 100 value 36.290729
## final  value 36.290729 
## stopped after 100 iterations
## # weights:  34
## initial  value 314.249265 
## iter  10 value 31.806458
## iter  20 value 18.007996
## iter  30 value 16.008372
## iter  40 value 15.974089
## iter  50 value 15.935297
## iter  60 value 15.007007
## iter  70 value 14.871113
## iter  80 value 14.835302
## iter  90 value 14.818615
## iter 100 value 14.797954
## final  value 14.797954 
## stopped after 100 iterations
## # weights:  56
## initial  value 282.994652 
## iter  10 value 32.863933
## iter  20 value 25.242699
## iter  30 value 21.848654
## iter  40 value 20.903148
## iter  50 value 20.089602
## iter  60 value 18.145394
## iter  70 value 17.310628
## iter  80 value 15.757893
## iter  90 value 12.838701
## iter 100 value 10.738107
## final  value 10.738107 
## stopped after 100 iterations
## # weights:  12
## initial  value 310.662028 
## iter  10 value 45.067251
## iter  20 value 42.107726
## iter  30 value 40.785565
## iter  40 value 39.403425
## iter  50 value 39.095524
## iter  60 value 39.068557
## iter  70 value 38.842371
## iter  80 value 38.763954
## iter  90 value 38.756277
## iter 100 value 38.699425
## final  value 38.699425 
## stopped after 100 iterations
## # weights:  34
## initial  value 316.398936 
## iter  10 value 40.499949
## iter  20 value 31.303517
## iter  30 value 24.999740
## iter  40 value 21.439108
## iter  50 value 20.366338
## iter  60 value 20.062327
## iter  70 value 19.957262
## iter  80 value 19.700825
## iter  90 value 19.623871
## iter 100 value 19.605032
## final  value 19.605032 
## stopped after 100 iterations
## # weights:  56
## initial  value 389.723233 
## iter  10 value 45.318806
## iter  20 value 33.639508
## iter  30 value 25.749148
## iter  40 value 20.857779
## iter  50 value 19.809630
## iter  60 value 19.399449
## iter  70 value 19.088599
## iter  80 value 19.025030
## iter  90 value 18.983287
## iter 100 value 18.455398
## final  value 18.455398 
## stopped after 100 iterations
## # weights:  12
## initial  value 327.343382 
## iter  10 value 65.937652
## iter  20 value 56.905788
## iter  30 value 52.577441
## iter  40 value 52.533098
## iter  40 value 52.533098
## iter  40 value 52.533098
## final  value 52.533098 
## converged
## # weights:  34
## initial  value 317.243132 
## iter  10 value 48.395739
## iter  20 value 44.782081
## iter  30 value 42.471894
## iter  40 value 41.428641
## iter  50 value 41.325394
## final  value 41.325034 
## converged
## # weights:  56
## initial  value 341.538824 
## iter  10 value 44.119492
## iter  20 value 40.764450
## iter  30 value 39.780792
## iter  40 value 39.585517
## iter  50 value 38.512155
## iter  60 value 37.672191
## iter  70 value 37.415716
## iter  80 value 37.305387
## iter  90 value 37.304534
## final  value 37.304532 
## converged
## # weights:  12
## initial  value 414.666382 
## iter  10 value 55.741794
## iter  20 value 55.142215
## iter  30 value 47.865734
## iter  40 value 44.482343
## iter  50 value 42.141879
## iter  60 value 40.792507
## iter  70 value 40.727730
## iter  80 value 40.708180
## iter  90 value 40.705045
## iter 100 value 40.699397
## final  value 40.699397 
## stopped after 100 iterations
## # weights:  34
## initial  value 454.871632 
## iter  10 value 47.867312
## iter  20 value 35.073665
## iter  30 value 29.736968
## iter  40 value 26.233819
## iter  50 value 24.826561
## iter  60 value 24.706896
## iter  70 value 24.651675
## iter  80 value 24.606194
## iter  90 value 24.573879
## iter 100 value 24.562107
## final  value 24.562107 
## stopped after 100 iterations
## # weights:  56
## initial  value 506.277261 
## iter  10 value 45.324173
## iter  20 value 31.325272
## iter  30 value 24.083766
## iter  40 value 21.825120
## iter  50 value 20.339440
## iter  60 value 19.310397
## iter  70 value 18.576259
## iter  80 value 18.236524
## iter  90 value 17.997800
## iter 100 value 17.619298
## final  value 17.619298 
## stopped after 100 iterations
## # weights:  12
## initial  value 318.274175 
## iter  10 value 44.351135
## iter  20 value 39.860956
## iter  30 value 39.483856
## iter  40 value 39.481330
## iter  50 value 39.479959
## iter  60 value 39.473889
## iter  60 value 39.473889
## final  value 39.473889 
## converged
## # weights:  34
## initial  value 364.502703 
## iter  10 value 33.983418
## iter  20 value 31.631476
## iter  30 value 29.560057
## iter  40 value 23.521756
## iter  50 value 22.125949
## iter  60 value 20.852489
## iter  70 value 20.482701
## iter  80 value 20.463065
## iter  90 value 20.453655
## iter 100 value 20.392042
## final  value 20.392042 
## stopped after 100 iterations
## # weights:  56
## initial  value 330.050646 
## iter  10 value 34.624621
## iter  20 value 21.144637
## iter  30 value 14.033838
## iter  40 value 11.989197
## iter  50 value 11.422714
## iter  60 value 7.955143
## iter  70 value 7.038181
## iter  80 value 6.695444
## iter  90 value 6.578629
## iter 100 value 6.465123
## final  value 6.465123 
## stopped after 100 iterations
## # weights:  12
## initial  value 342.456337 
## iter  10 value 81.247087
## iter  20 value 52.934073
## iter  30 value 47.307460
## iter  40 value 47.130093
## final  value 47.130083 
## converged
## # weights:  34
## initial  value 428.768248 
## iter  10 value 56.828014
## iter  20 value 38.680476
## iter  30 value 36.873760
## iter  40 value 36.790497
## iter  50 value 36.783313
## final  value 36.783232 
## converged
## # weights:  56
## initial  value 359.221014 
## iter  10 value 42.006330
## iter  20 value 36.994019
## iter  30 value 36.116931
## iter  40 value 35.922179
## iter  50 value 35.187883
## iter  60 value 35.155331
## iter  70 value 34.840015
## iter  80 value 33.640131
## iter  90 value 33.576472
## final  value 33.576227 
## converged
## # weights:  12
## initial  value 373.358462 
## iter  10 value 51.078115
## iter  20 value 42.532985
## iter  30 value 39.595553
## iter  40 value 39.564149
## iter  50 value 39.560391
## iter  60 value 39.558739
## iter  70 value 39.557458
## iter  80 value 39.556938
## iter  90 value 39.556513
## iter 100 value 39.555706
## final  value 39.555706 
## stopped after 100 iterations
## # weights:  34
## initial  value 333.215449 
## iter  10 value 40.640566
## iter  20 value 40.492335
## iter  30 value 39.220100
## iter  40 value 37.219605
## iter  50 value 37.097285
## iter  60 value 36.819867
## iter  70 value 36.571810
## iter  80 value 36.483523
## iter  90 value 36.183805
## iter 100 value 35.994196
## final  value 35.994196 
## stopped after 100 iterations
## # weights:  56
## initial  value 324.028080 
## iter  10 value 32.385498
## iter  20 value 23.511749
## iter  30 value 18.221299
## iter  40 value 16.840219
## iter  50 value 16.635077
## iter  60 value 16.421890
## iter  70 value 16.104300
## iter  80 value 15.918981
## iter  90 value 15.827826
## iter 100 value 15.729256
## final  value 15.729256 
## stopped after 100 iterations
## # weights:  12
## initial  value 372.917410 
## iter  10 value 56.345154
## iter  20 value 48.675054
## iter  30 value 45.343551
## iter  40 value 43.739521
## iter  50 value 43.726130
## iter  60 value 43.721540
## iter  70 value 43.719900
## iter  80 value 43.719231
## iter  90 value 43.719122
## iter 100 value 43.719028
## final  value 43.719028 
## stopped after 100 iterations
resultado_entrenamiento5 <- predict(modelo5,entrenamiento)
resultado_prueba5 <- predict(modelo5,prueba)

# Matriz de Confusión
mcre5 <- confusionMatrix(resultado_entrenamiento5, entrenamiento$Class) # matriz de confusión del resultado del entrenamiento
mcre5
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign       347         1
##   malignant      9       191
##                                           
##                Accuracy : 0.9818          
##                  95% CI : (0.9667, 0.9912)
##     No Information Rate : 0.6496          
##     P-Value [Acc > NIR] : < 2e-16         
##                                           
##                   Kappa : 0.9603          
##                                           
##  Mcnemar's Test P-Value : 0.02686         
##                                           
##             Sensitivity : 0.9747          
##             Specificity : 0.9948          
##          Pos Pred Value : 0.9971          
##          Neg Pred Value : 0.9550          
##              Prevalence : 0.6496          
##          Detection Rate : 0.6332          
##    Detection Prevalence : 0.6350          
##       Balanced Accuracy : 0.9848          
##                                           
##        'Positive' Class : benign          
## 
mcrp5 <- confusionMatrix(resultado_prueba5, prueba$Class) # matriz de confusión del resultado de la prueba
mcrp5
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign        85         0
##   malignant      3        47
##                                           
##                Accuracy : 0.9778          
##                  95% CI : (0.9364, 0.9954)
##     No Information Rate : 0.6519          
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.9518          
##                                           
##  Mcnemar's Test P-Value : 0.2482          
##                                           
##             Sensitivity : 0.9659          
##             Specificity : 1.0000          
##          Pos Pred Value : 1.0000          
##          Neg Pred Value : 0.9400          
##              Prevalence : 0.6519          
##          Detection Rate : 0.6296          
##    Detection Prevalence : 0.6296          
##       Balanced Accuracy : 0.9830          
##                                           
##        'Positive' Class : benign          
## 

6. Modelo con metodo rf

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

resultado_entrenamiento6  <- predict(modelo6,entrenamiento)
resultado_prueba6 <- predict(modelo6,prueba)

# Matriz de Confusión
mcre6 <- confusionMatrix(resultado_entrenamiento6, entrenamiento$Class) # matriz de confusión del resultado del entrenamiento
mcre6
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign       356         0
##   malignant      0       192
##                                      
##                Accuracy : 1          
##                  95% CI : (0.9933, 1)
##     No Information Rate : 0.6496     
##     P-Value [Acc > NIR] : < 2.2e-16  
##                                      
##                   Kappa : 1          
##                                      
##  Mcnemar's Test P-Value : NA         
##                                      
##             Sensitivity : 1.0000     
##             Specificity : 1.0000     
##          Pos Pred Value : 1.0000     
##          Neg Pred Value : 1.0000     
##              Prevalence : 0.6496     
##          Detection Rate : 0.6496     
##    Detection Prevalence : 0.6496     
##       Balanced Accuracy : 1.0000     
##                                      
##        'Positive' Class : benign     
## 
mcrp6 <- confusionMatrix(resultado_prueba6, prueba$Class) # matriz de confusión del resultado de la prueba
mcrp6
## Confusion Matrix and Statistics
## 
##            Reference
## Prediction  benign malignant
##   benign        85         1
##   malignant      3        46
##                                           
##                Accuracy : 0.9704          
##                  95% CI : (0.9259, 0.9919)
##     No Information Rate : 0.6519          
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.9354          
##                                           
##  Mcnemar's Test P-Value : 0.6171          
##                                           
##             Sensitivity : 0.9659          
##             Specificity : 0.9787          
##          Pos Pred Value : 0.9884          
##          Neg Pred Value : 0.9388          
##              Prevalence : 0.6519          
##          Detection Rate : 0.6296          
##    Detection Prevalence : 0.6370          
##       Balanced Accuracy : 0.9723          
##                                           
##        'Positive' Class : benign          
## 

Resumen de Resultados

resultados <- data.frame(
  "svmLinear" = c(mcre1$overall["Acurracy"], mcrp1$overall["Acurracy"]),
  "svmRadial" = c(mcre2$overall["Acurracy"], mcrp2$overall["Acurracy"]),
  "svmpoly" = c(mcre3$overall["Acurracy"], mcrp3$overall["Acurracy"]),
  "rpart" = c(mcre4$overall["Acurracy"], mcrp4$overall["Acurracy"]),
  "nnet" = c(mcre5$overall["Acurracy"], mcrp5$overall["Acurracy"]),
  "rf" = c(mcre6$overall["Acurracy"], mcrp6$overall["Acurracy"])
)
rownames(resultados) <- c("Precision de entrenamiento", "Precision de prueba")
resultados
##                            svmLinear svmRadial svmpoly rpart nnet rf
## Precision de entrenamiento        NA        NA      NA    NA   NA NA
## Precision de prueba               NA        NA      NA    NA   NA NA

Conclusiones

##Basándonos únicamente en la precisión, el modelo de Random Forest parece tener el mejor rendimiento en el conjunto de entrenamiento, ya que alcanza una precisión del 100%. Sin embargo, debemos tener en cuenta que esto podría indicar un sobreajuste al conjunto de entrenamiento.

##En cuanto a los modelos SVM, aunque el SVM Radial tiene una precisión ligeramente más baja en el conjunto de prueba en comparación con el SVM Linear y el SVM Polinomial, parece generalizar mejor, ya que su precisión de entrenamiento y prueba son comparativamente altas y cercanas.