La función caret (Clasification And REgression Training) es un paquete integral con una amplia variedad de algoritmos para el aprendizaje automático.
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
library(kernlab)
##
## Attaching package: 'kernlab'
## The following object is masked from 'package:ggplot2':
##
## alpha
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.3 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ kernlab::alpha() masks ggplot2::alpha()
## ✖ purrr::cross() masks kernlab::cross()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ✖ purrr::lift() masks caret::lift()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(kableExtra)
##
## Attaching package: 'kableExtra'
##
## The following object is masked from 'package:dplyr':
##
## group_rows
library(mlbench)
library(dplyr)
# Base de datos original
data(BreastCancer)
df = BreastCancer
# Base de datos con variables seleccionadas
df_c <- df %>%
select(-Id) %>%
rename(Tipo = Class)
# Base de datos con variables continuas
df_cc <- df_c %>%
mutate(across(where(is.factor), as.numeric))
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) # 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)
# Tratar registros con NAs
df_c <- na.omit(df_c)
plot_boxplot(df_cc, by = "Tipo")
## Warning: Removed 16 rows containing non-finite values (`stat_boxplot()`).
plot_bar(df)
## 1 columns ignored with more than 50 categories.
## Id: 645 categories
plot_correlation(df_cc)
## Warning: Removed 18 rows containing missing values (`geom_text()`).
set.seed(123)
DataPart= createDataPartition(df_c$Tipo, p=0.8, list = FALSE)
train_set= df_c[DataPart,]
test_set = df_c[-DataPart,]
Los métodos más utilizados para modelar aprendixaje automático son:
modelo_svml = train(Tipo ~., 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_train_svml = predict(modelo_svml, train_set)
resultados_test_svml = predict(modelo_svml, test_set)
##### ENTRENAMIENTO ######
MCRE_svml = confusionMatrix(resultados_train_svml, train_set$Tipo) # MCRE - Matriz de Confusión de Resultados de Entrenamiento.
#MCRE_svml
##### PRUEBA #####
MCRP_svml = confusionMatrix(resultados_test_svml, test_set$Tipo) # 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
##
modelo_svmr = train(Tipo ~., 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_train_svmr = predict(modelo_svmr, train_set)
resultados_test_svmr = predict(modelo_svmr, test_set)
##### ENTRENAMIENTO ######
MCRE_svmr = confusionMatrix(resultados_train_svmr, train_set$Tipo) # MCRE - Matriz de Confusión de Resultados de Entrenamiento.
#MCRE_svmr
##### PRUEBA #####
MCRP_svmr = confusionMatrix(resultados_test_svmr, test_set$Tipo) # 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
##
modelo_svmp = train(Tipo ~., 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_train_svmp = predict(modelo_svmp, train_set)
resultados_test_svmp = predict(modelo_svmp, test_set)
##### ENTRENAMIENTO ######
MCRE_svmp = confusionMatrix(resultados_train_svmp, train_set$Tipo) # MCRE - Matriz de Confusión de Resultados de Entrenamiento.
#MCRE_svmp
##### PRUEBA #####
MCRP_svmp = confusionMatrix(resultados_test_svmp, test_set$Tipo) # 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
##
modelo_ad = train(Tipo ~., 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_train_ad = predict(modelo_ad, train_set)
resultados_test_ad = predict(modelo_ad, test_set)
##### ENTRENAMIENTO ######
MCRE_ad = confusionMatrix(resultados_train_ad, train_set$Tipo) # MCRE - Matriz de Confusión de Resultados de Entrenamiento.
#MCRE_ad
##### PRUEBA #####
MCRP_ad = confusionMatrix(resultados_test_ad, test_set$Tipo) # 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
##
modelo_rn = train(Tipo ~., data = train_set,
method = "nnet",
preProcess = c("scale", "center"),
trControl = trainControl(method = "cv", number =10)
)
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## # 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
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## # 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
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## # 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
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## # 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
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## # 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
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## # 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
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## # 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
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## # 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
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## # 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_train_rn = predict(modelo_rn, train_set)
resultados_test_rn = predict(modelo_rn, test_set)
##### ENTRENAMIENTO ######
MCRE_rn = confusionMatrix(resultados_train_rn, train_set$Tipo) # MCRE - Matriz de Confusión de Resultados de Entrenamiento.
#MCRE_rn
##### PRUEBA #####
MCRP_rn = confusionMatrix(resultados_test_rn, test_set$Tipo) # 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
##
modelo_rf = train(Tipo ~., data = train_set,
method = "rf",
preProcess = c("scale", "center"),
trControl = trainControl(method = "cv", number =10),
tuneGrid = expand.grid(mtry =c(2,4,6))
)
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
## Warning in preProcess.default(thresh = 0.95, k = 5, freqCut = 19, uniqueCut =
## 10, : These variables have zero variances: Bare.nuclei6
resultados_train_rf = predict(modelo_rf, train_set)
resultados_test_rf = predict(modelo_rf, test_set)
##### ENTRENAMIENTO ######
MCRE_rf = confusionMatrix(resultados_train_rf, train_set$Tipo) # MCRE - Matriz de Confusión de Resultados de Entrenamiento.
#MCRE_rf
##### PRUEBA #####
MCRP_rf = confusionMatrix(resultados_test_rf, test_set$Tipo) # 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
##
## Creación de tabla comparativa
# MODELOS
Metodo<-c('SVM Linear','SVM Radial', 'SVM Poly', 'Árboles de decisión', 'Redes Neuronales', 'Random Forest')
#ACC TRAIN
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
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"])
#SENS
Sensitivity<-c(MCRP_svml$byClass["Sensitivity"], MCRP_svmr$byClass["Sensitivity"], MCRP_svmp$byClass["Sensitivity"], MCRP_ad$byClass["Sensitivity"], MCRP_rn$byClass["Sensitivity"], MCRP_rf$byClass["Sensitivity"])
#SPEC
Specificity<-c(MCRP_svml$byClass["Specificity"], MCRP_svmr$byClass["Specificity"], MCRP_svmp$byClass["Specificity"], MCRP_ad$byClass["Specificity"], MCRP_rn$byClass["Specificity"], MCRP_rf$byClass["Specificity"])
# Creación del dataframe
RMSE_df<-data.frame(Metodo,ACC_Train, ACC_Test,Sensitivity, Specificity)
# Ordenar el dataframe
RMSE_df<-RMSE_df[order(-ACC_Test),]
# Imprimir el dataframe
RMSE_df %>%
kbl() %>%
kable_styling()
| Metodo | ACC_Train | ACC_Test | Sensitivity | Specificity | |
|---|---|---|---|---|---|
| 6 | Random Forest | 0.9963504 | 0.9555556 | 0.9659091 | 0.9361702 |
| 5 | Redes Neuronales | 0.9854015 | 0.9481481 | 0.9545455 | 0.9361702 |
| 4 | Árboles de decisión | 0.9580292 | 0.9407407 | 0.9659091 | 0.8936170 |
| 1 | SVM Linear | 1.0000000 | 0.9111111 | 0.9431818 | 0.8510638 |
| 3 | SVM Poly | 1.0000000 | 0.9111111 | 0.9431818 | 0.8510638 |
| 2 | SVM Radial | 1.0000000 | 0.6962963 | 0.5340909 | 1.0000000 |