#ARBOL DE DESICIÓN
##Base de Datos Diabetes
diabetes <- read.csv("C:/Users/Dolly/Desktop/Universidad UA/VII ciclo/Data Mining/base de datos/diabetes_m.csv.txt", sep=";")
head(diabetes)
## n NumeroEmbarazos Concentrac.blucosa.plama Presión.arterial.diastólica
## 1 1 6 148 72
## 2 2 1 85 66
## 3 3 8 183 64
## 4 4 1 89 NA
## 5 5 0 137 40
## 6 6 5 116 74
## Tríceps.espesor.del.pliegue.cutáneo X2.horas.suero.insulina
## 1 35 0
## 2 29 0
## 3 0 0
## 4 23 94
## 5 NA 168
## 6 0 0
## Índice.de.masa.corporal Función.pedigrí.de.la.diabetes edad resultado
## 1 33.6 0.627 50 Positivo
## 2 26.6 0.351 31 Negativo
## 3 23.3 0.672 32 Positivo
## 4 28.1 0.167 21 Negativo
## 5 43.1 2.288 33 Positivo
## 6 25.6 0.201 30 Negativo
summary(diabetes)
## n NumeroEmbarazos Concentrac.blucosa.plama
## Min. : 1.0 Min. : 0.000 Min. : 0.0
## 1st Qu.:192.8 1st Qu.: 1.000 1st Qu.: 99.0
## Median :384.5 Median : 3.000 Median :117.0
## Mean :384.5 Mean : 3.845 Mean :120.9
## 3rd Qu.:576.2 3rd Qu.: 6.000 3rd Qu.:140.2
## Max. :768.0 Max. :17.000 Max. :199.0
##
## Presión.arterial.diastólica Tríceps.espesor.del.pliegue.cutáneo
## Min. : 0.00 Min. : 0.00
## 1st Qu.: 62.00 1st Qu.: 0.00
## Median : 72.00 Median :23.00
## Mean : 69.05 Mean :20.41
## 3rd Qu.: 80.00 3rd Qu.:32.00
## Max. :122.00 Max. :99.00
## NA's :84 NA's :66
## X2.horas.suero.insulina Índice.de.masa.corporal
## Min. : 0.00 Min. : 0.00
## 1st Qu.: 0.00 1st Qu.:27.30
## Median : 24.00 Median :32.00
## Mean : 78.23 Mean :31.99
## 3rd Qu.:127.75 3rd Qu.:36.60
## Max. :680.00 Max. :67.10
## NA's :70
## Función.pedigrí.de.la.diabetes edad resultado
## Min. :0.0780 Min. :21.00 Negativo:500
## 1st Qu.:0.2437 1st Qu.:24.00 Positivo:268
## Median :0.3725 Median :29.00
## Mean :0.4719 Mean :33.24
## 3rd Qu.:0.6262 3rd Qu.:41.00
## Max. :2.4200 Max. :81.00
##
##Observamos que existe valores NA's en tres campos de la base de datos, por lo tanto se procede a realizar un analisis de estos.
### Para ello utilizamos la libreria de Amelia.
library(Amelia)
###El 3% de los datos son missing.
missmap(diabetes)

library(VIM)
###En este gráfico se calcula la cantidad de valores faltantes.
miss=aggr(diabetes)

###De acuerdo a los resultados se propone como metodo de corrección vecinos más cercanos
summary(miss)
##
## Missings per variable:
## Variable Count
## n 0
## NumeroEmbarazos 0
## Concentrac.blucosa.plama 0
## Presión.arterial.diastólica 84
## Tríceps.espesor.del.pliegue.cutáneo 66
## X2.horas.suero.insulina 70
## Índice.de.masa.corporal 0
## Función.pedigrí.de.la.diabetes 0
## edad 0
## resultado 0
##
## Missings in combinations of variables:
## Combinations Count Percent
## 0:0:0:0:0:0:0:0:0:0 569 74.0885417
## 0:0:0:0:0:1:0:0:0:0 55 7.1614583
## 0:0:0:0:1:0:0:0:0:0 52 6.7708333
## 0:0:0:0:1:1:0:0:0:0 8 1.0416667
## 0:0:0:1:0:0:0:0:0:0 71 9.2447917
## 0:0:0:1:0:1:0:0:0:0 7 0.9114583
## 0:0:0:1:1:0:0:0:0:0 6 0.7812500
library(DMwR)
###se crea una nueva base de datos en donde se completa todos los valores de NA utilizando los valores vecinos más cercanos de cada caso.
diabetes_im=knnImputation(diabetes)
summary(diabetes_im)
## n NumeroEmbarazos Concentrac.blucosa.plama
## Min. : 1.0 Min. : 0.000 Min. : 0.0
## 1st Qu.:192.8 1st Qu.: 1.000 1st Qu.: 99.0
## Median :384.5 Median : 3.000 Median :117.0
## Mean :384.5 Mean : 3.845 Mean :120.9
## 3rd Qu.:576.2 3rd Qu.: 6.000 3rd Qu.:140.2
## Max. :768.0 Max. :17.000 Max. :199.0
## Presión.arterial.diastólica Tríceps.espesor.del.pliegue.cutáneo
## Min. : 0.00 Min. : 0.00
## 1st Qu.: 63.34 1st Qu.: 0.00
## Median : 71.26 Median :22.93
## Mean : 68.89 Mean :20.48
## 3rd Qu.: 78.15 3rd Qu.:32.00
## Max. :122.00 Max. :99.00
## X2.horas.suero.insulina Índice.de.masa.corporal
## Min. : 0.00 Min. : 0.00
## 1st Qu.: 0.00 1st Qu.:27.30
## Median : 42.78 Median :32.00
## Mean : 79.21 Mean :31.99
## 3rd Qu.:127.55 3rd Qu.:36.60
## Max. :680.00 Max. :67.10
## Función.pedigrí.de.la.diabetes edad resultado
## Min. :0.0780 Min. :21.00 Negativo:500
## 1st Qu.:0.2437 1st Qu.:24.00 Positivo:268
## Median :0.3725 Median :29.00
## Mean :0.4719 Mean :33.24
## 3rd Qu.:0.6262 3rd Qu.:41.00
## Max. :2.4200 Max. :81.00
##Train y Test
library(caret)
###Semilla, Establece el numero aleatorio en R
set.seed(111)
particio=createDataPartition(y=diabetes_im$resultado, p=0.7, list = F,times = 1)
###Repartir el porcentaje en los para los train y test
train=diabetes_im[particio,]
test=diabetes_im[-particio,]
###Dimensiones
dim(diabetes_im)
## [1] 768 10
dim(train)
## [1] 538 10
dim(test)
## [1] 230 10
##Modelo Árbol
library(rpart)
modelo1=rpart(resultado~.,data=train, method = "class")
modelo1
## n= 538
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 538 188 Negativo (0.65055762 0.34944238)
## 2) Concentrac.blucosa.plama< 123.5 332 63 Negativo (0.81024096 0.18975904)
## 4) edad< 28.5 183 13 Negativo (0.92896175 0.07103825) *
## 5) edad>=28.5 149 50 Negativo (0.66442953 0.33557047)
## 10) Índice.de.masa.corporal< 26.35 30 0 Negativo (1.00000000 0.00000000) *
## 11) Índice.de.masa.corporal>=26.35 119 50 Negativo (0.57983193 0.42016807)
## 22) Concentrac.blucosa.plama< 103.5 59 15 Negativo (0.74576271 0.25423729)
## 44) Función.pedigrí.de.la.diabetes< 0.6355 48 8 Negativo (0.83333333 0.16666667) *
## 45) Función.pedigrí.de.la.diabetes>=0.6355 11 4 Positivo (0.36363636 0.63636364) *
## 23) Concentrac.blucosa.plama>=103.5 60 25 Positivo (0.41666667 0.58333333)
## 46) NumeroEmbarazos< 6.5 42 20 Negativo (0.52380952 0.47619048)
## 92) X2.horas.suero.insulina< 140 30 11 Negativo (0.63333333 0.36666667)
## 184) Índice.de.masa.corporal>=33.75 16 3 Negativo (0.81250000 0.18750000) *
## 185) Índice.de.masa.corporal< 33.75 14 6 Positivo (0.42857143 0.57142857) *
## 93) X2.horas.suero.insulina>=140 12 3 Positivo (0.25000000 0.75000000) *
## 47) NumeroEmbarazos>=6.5 18 3 Positivo (0.16666667 0.83333333) *
## 3) Concentrac.blucosa.plama>=123.5 206 81 Positivo (0.39320388 0.60679612)
## 6) Índice.de.masa.corporal< 29.95 62 22 Negativo (0.64516129 0.35483871)
## 12) edad< 26.5 17 1 Negativo (0.94117647 0.05882353) *
## 13) edad>=26.5 45 21 Negativo (0.53333333 0.46666667)
## 26) edad>=56 9 0 Negativo (1.00000000 0.00000000) *
## 27) edad< 56 36 15 Positivo (0.41666667 0.58333333)
## 54) Índice.de.masa.corporal>=28.8 10 2 Negativo (0.80000000 0.20000000) *
## 55) Índice.de.masa.corporal< 28.8 26 7 Positivo (0.26923077 0.73076923) *
## 7) Índice.de.masa.corporal>=29.95 144 41 Positivo (0.28472222 0.71527778)
## 14) edad< 28.5 51 24 Positivo (0.47058824 0.52941176)
## 28) Concentrac.blucosa.plama< 165.5 38 15 Negativo (0.60526316 0.39473684)
## 56) Presión.arterial.diastólica>=72.86945 15 2 Negativo (0.86666667 0.13333333) *
## 57) Presión.arterial.diastólica< 72.86945 23 10 Positivo (0.43478261 0.56521739)
## 114) NumeroEmbarazos>=0.5 14 5 Negativo (0.64285714 0.35714286) *
## 115) NumeroEmbarazos< 0.5 9 1 Positivo (0.11111111 0.88888889) *
## 29) Concentrac.blucosa.plama>=165.5 13 1 Positivo (0.07692308 0.92307692) *
## 15) edad>=28.5 93 17 Positivo (0.18279570 0.81720430) *
library(partykit)
###Gráfico del arbol de desición
plot(as.party(modelo1))

#Realizar la predicción
predichos=predict(modelo1, test, type = "class")
predichos
## 2 8 12 14 29 34 36 39
## Negativo Positivo Positivo Positivo Negativo Negativo Negativo Negativo
## 42 44 46 48 49 58 60 62
## Positivo Positivo Positivo Negativo Negativo Positivo Negativo Positivo
## 63 64 65 66 71 75 78 82
## Negativo Negativo Positivo Negativo Negativo Negativo Negativo Negativo
## 87 89 94 96 98 101 102 106
## Positivo Positivo Negativo Positivo Negativo Positivo Negativo Negativo
## 110 111 114 116 117 121 122 124
## Negativo Positivo Negativo Positivo Positivo Negativo Negativo Negativo
## 125 126 131 134 135 136 140 149
## Negativo Negativo Negativo Negativo Negativo Positivo Negativo Positivo
## 150 151 152 155 158 164 165 167
## Negativo Negativo Negativo Positivo Negativo Negativo Positivo Negativo
## 168 169 170 175 176 182 185 188
## Positivo Positivo Positivo Negativo Positivo Negativo Positivo Positivo
## 190 192 195 206 208 210 216 218
## Negativo Positivo Negativo Negativo Positivo Positivo Positivo Positivo
## 224 225 228 232 234 241 244 245
## Negativo Negativo Negativo Positivo Negativo Negativo Positivo Positivo
## 247 249 250 252 253 257 262 264
## Positivo Positivo Negativo Positivo Negativo Positivo Negativo Positivo
## 266 268 278 279 282 283 284 286
## Positivo Negativo Negativo Negativo Positivo Positivo Positivo Positivo
## 287 290 291 292 294 297 299 301
## Positivo Negativo Negativo Negativo Negativo Positivo Negativo Positivo
## 305 312 319 320 329 332 335 338
## Positivo Negativo Negativo Negativo Negativo Negativo Negativo Positivo
## 339 340 346 347 355 356 357 359
## Positivo Positivo Positivo Negativo Negativo Positivo Negativo Negativo
## 364 369 376 377 379 380 383 384
## Positivo Negativo Positivo Negativo Positivo Positivo Negativo Negativo
## 386 390 399 402 420 427 433 439
## Negativo Negativo Negativo Positivo Positivo Negativo Negativo Negativo
## 443 446 450 451 452 453 456 458
## Negativo Positivo Negativo Negativo Negativo Negativo Positivo Negativo
## 466 470 471 478 480 492 494 506
## Negativo Negativo Negativo Negativo Negativo Negativo Negativo Negativo
## 509 517 518 528 529 536 539 555
## Negativo Positivo Positivo Negativo Negativo Negativo Negativo Negativo
## 556 558 562 572 575 576 577 579
## Positivo Positivo Positivo Negativo Negativo Negativo Negativo Positivo
## 580 581 583 586 587 590 596 603
## Positivo Negativo Positivo Negativo Positivo Negativo Positivo Positivo
## 607 610 613 615 619 622 623 627
## Positivo Negativo Positivo Positivo Positivo Negativo Positivo Negativo
## 628 629 631 633 634 637 638 639
## Negativo Positivo Positivo Negativo Negativo Positivo Negativo Positivo
## 646 657 659 667 671 675 676 678
## Positivo Negativo Positivo Positivo Positivo Negativo Positivo Negativo
## 682 684 685 687 688 689 695 696
## Negativo Negativo Negativo Negativo Positivo Negativo Negativo Positivo
## 697 699 700 704 707 708 710 713
## Negativo Negativo Negativo Positivo Negativo Negativo Negativo Positivo
## 716 717 719 722 725 736 743 745
## Positivo Positivo Negativo Negativo Positivo Negativo Negativo Positivo
## 747 748 751 752 759 762
## Negativo Positivo Negativo Negativo Negativo Positivo
## Levels: Negativo Positivo
##Matriz de confusion
table(predichos, test$resultado)
##
## predichos Negativo Positivo
## Negativo 105 29
## Positivo 45 51
##Indicadores
library(caret)
str(test$resultado)
## Factor w/ 2 levels "Negativo","Positivo": 1 1 2 2 1 1 1 2 1 2 ...
str(predichos)
## Factor w/ 2 levels "Negativo","Positivo": 1 2 2 2 1 1 1 1 2 2 ...
## - attr(*, "names")= chr [1:230] "2" "8" "12" "14" ...
test$resultado=as.factor(test$resultado)
indicadores=confusionMatrix(predichos,test$resultado)
indicadores
## Confusion Matrix and Statistics
##
## Reference
## Prediction Negativo Positivo
## Negativo 105 29
## Positivo 45 51
##
## Accuracy : 0.6783
## 95% CI : (0.6137, 0.7382)
## No Information Rate : 0.6522
## P-Value [Acc > NIR] : 0.22411
##
## Kappa : 0.3225
##
## Mcnemar's Test P-Value : 0.08121
##
## Sensitivity : 0.7000
## Specificity : 0.6375
## Pos Pred Value : 0.7836
## Neg Pred Value : 0.5312
## Prevalence : 0.6522
## Detection Rate : 0.4565
## Detection Prevalence : 0.5826
## Balanced Accuracy : 0.6687
##
## 'Positive' Class : Negativo
##
#REDES NEURONALES
##Base de Datos Diabetes
diabetesm <- read.csv("C:/Users/Dolly/Desktop/Universidad UA/VII ciclo/Data Mining/base de datos/diabetes_m.csv.txt", sep=";")
head(diabetesm)
## n NumeroEmbarazos Concentrac.blucosa.plama Presión.arterial.diastólica
## 1 1 6 148 72
## 2 2 1 85 66
## 3 3 8 183 64
## 4 4 1 89 NA
## 5 5 0 137 40
## 6 6 5 116 74
## Tríceps.espesor.del.pliegue.cutáneo X2.horas.suero.insulina
## 1 35 0
## 2 29 0
## 3 0 0
## 4 23 94
## 5 NA 168
## 6 0 0
## Índice.de.masa.corporal Función.pedigrí.de.la.diabetes edad resultado
## 1 33.6 0.627 50 Positivo
## 2 26.6 0.351 31 Negativo
## 3 23.3 0.672 32 Positivo
## 4 28.1 0.167 21 Negativo
## 5 43.1 2.288 33 Positivo
## 6 25.6 0.201 30 Negativo
summary(diabetesm)
## n NumeroEmbarazos Concentrac.blucosa.plama
## Min. : 1.0 Min. : 0.000 Min. : 0.0
## 1st Qu.:192.8 1st Qu.: 1.000 1st Qu.: 99.0
## Median :384.5 Median : 3.000 Median :117.0
## Mean :384.5 Mean : 3.845 Mean :120.9
## 3rd Qu.:576.2 3rd Qu.: 6.000 3rd Qu.:140.2
## Max. :768.0 Max. :17.000 Max. :199.0
##
## Presión.arterial.diastólica Tríceps.espesor.del.pliegue.cutáneo
## Min. : 0.00 Min. : 0.00
## 1st Qu.: 62.00 1st Qu.: 0.00
## Median : 72.00 Median :23.00
## Mean : 69.05 Mean :20.41
## 3rd Qu.: 80.00 3rd Qu.:32.00
## Max. :122.00 Max. :99.00
## NA's :84 NA's :66
## X2.horas.suero.insulina Índice.de.masa.corporal
## Min. : 0.00 Min. : 0.00
## 1st Qu.: 0.00 1st Qu.:27.30
## Median : 24.00 Median :32.00
## Mean : 78.23 Mean :31.99
## 3rd Qu.:127.75 3rd Qu.:36.60
## Max. :680.00 Max. :67.10
## NA's :70
## Función.pedigrí.de.la.diabetes edad resultado
## Min. :0.0780 Min. :21.00 Negativo:500
## 1st Qu.:0.2437 1st Qu.:24.00 Positivo:268
## Median :0.3725 Median :29.00
## Mean :0.4719 Mean :33.24
## 3rd Qu.:0.6262 3rd Qu.:41.00
## Max. :2.4200 Max. :81.00
##
###Borramos la primera columna de la base de datos
diabetesm<-diabetesm[,2:10]
###Usamos la libreria DMwR para usar el comando KNNIMPUTATION
library(DMwR)
###se crea una nueva base de datos en donde se completa todos los valores de NA utilizando los valores vecinos más cercanos de cada caso.
diabetesm=knnImputation(diabetesm)
summary(diabetesm)
## NumeroEmbarazos Concentrac.blucosa.plama Presión.arterial.diastólica
## Min. : 0.000 Min. : 0.0 Min. : 0.00
## 1st Qu.: 1.000 1st Qu.: 99.0 1st Qu.: 63.02
## Median : 3.000 Median :117.0 Median : 71.21
## Mean : 3.845 Mean :120.9 Mean : 68.94
## 3rd Qu.: 6.000 3rd Qu.:140.2 3rd Qu.: 79.06
## Max. :17.000 Max. :199.0 Max. :122.00
## Tríceps.espesor.del.pliegue.cutáneo X2.horas.suero.insulina
## Min. : 0.0 Min. : 0.00
## 1st Qu.: 0.0 1st Qu.: 0.00
## Median :23.0 Median : 42.39
## Mean :20.5 Mean : 78.57
## 3rd Qu.:32.0 3rd Qu.:126.55
## Max. :99.0 Max. :680.00
## Índice.de.masa.corporal Función.pedigrí.de.la.diabetes edad
## Min. : 0.00 Min. :0.0780 Min. :21.00
## 1st Qu.:27.30 1st Qu.:0.2437 1st Qu.:24.00
## Median :32.00 Median :0.3725 Median :29.00
## Mean :31.99 Mean :0.4719 Mean :33.24
## 3rd Qu.:36.60 3rd Qu.:0.6262 3rd Qu.:41.00
## Max. :67.10 Max. :2.4200 Max. :81.00
## resultado
## Negativo:500
## Positivo:268
##
##
##
##
library(nnet)
###Sample, toma una muestra del tamaño especificado de los elementos.
muestra=sample(537,231)
###Repartir el porcentaje de Train y Test
###Train en donde entrenamos a nuestra base de datos
###Test tiene que ser más cercano a la realidad
train=diabetesm[-muestra,]
test=diabetesm[muestra,]
###as.factor se usa para codificar un vector como factor, convertir el int en chart.
###pasar en factor todos las bases de datos con el campo resultado
diabetesm$resultado=as.factor(diabetesm$resultado)
train$resultado=as.factor(train$resultado)
test$resultado=as.factor(test$resultado)
##Modelo de Redes Neuronales
modelo_diabetesm=nnet(resultado~.,data=train,size=80)
## # weights: 801
## initial value 366.488429
## iter 10 value 315.533691
## iter 20 value 304.985276
## iter 30 value 292.749826
## iter 40 value 280.193861
## iter 50 value 264.482516
## iter 60 value 247.513928
## iter 70 value 234.258751
## iter 80 value 221.190361
## iter 90 value 212.178908
## iter 100 value 194.163020
## final value 194.163020
## stopped after 100 iterations
###Realizamos la predicción
predichos_diabetesm=predict(modelo_diabetesm,test,type = "class")
predichos_diabetesm
## [1] "Negativo" "Negativo" "Negativo" "Positivo" "Negativo" "Negativo"
## [7] "Negativo" "Negativo" "Negativo" "Negativo" "Negativo" "Positivo"
## [13] "Negativo" "Negativo" "Negativo" "Positivo" "Positivo" "Positivo"
## [19] "Negativo" "Negativo" "Negativo" "Negativo" "Positivo" "Negativo"
## [25] "Negativo" "Positivo" "Negativo" "Negativo" "Negativo" "Positivo"
## [31] "Negativo" "Positivo" "Negativo" "Negativo" "Positivo" "Positivo"
## [37] "Positivo" "Negativo" "Positivo" "Negativo" "Negativo" "Negativo"
## [43] "Negativo" "Positivo" "Negativo" "Negativo" "Negativo" "Negativo"
## [49] "Negativo" "Negativo" "Negativo" "Positivo" "Positivo" "Positivo"
## [55] "Negativo" "Positivo" "Positivo" "Negativo" "Positivo" "Negativo"
## [61] "Negativo" "Negativo" "Positivo" "Negativo" "Negativo" "Negativo"
## [67] "Negativo" "Negativo" "Negativo" "Negativo" "Positivo" "Positivo"
## [73] "Negativo" "Positivo" "Negativo" "Positivo" "Negativo" "Negativo"
## [79] "Positivo" "Negativo" "Positivo" "Negativo" "Negativo" "Negativo"
## [85] "Positivo" "Negativo" "Positivo" "Negativo" "Positivo" "Negativo"
## [91] "Negativo" "Negativo" "Negativo" "Negativo" "Positivo" "Positivo"
## [97] "Positivo" "Negativo" "Negativo" "Negativo" "Negativo" "Negativo"
## [103] "Positivo" "Positivo" "Positivo" "Negativo" "Negativo" "Negativo"
## [109] "Positivo" "Negativo" "Negativo" "Positivo" "Positivo" "Negativo"
## [115] "Negativo" "Positivo" "Negativo" "Negativo" "Positivo" "Negativo"
## [121] "Negativo" "Negativo" "Negativo" "Negativo" "Negativo" "Negativo"
## [127] "Negativo" "Negativo" "Positivo" "Positivo" "Negativo" "Positivo"
## [133] "Negativo" "Positivo" "Negativo" "Negativo" "Negativo" "Negativo"
## [139] "Negativo" "Negativo" "Negativo" "Positivo" "Positivo" "Positivo"
## [145] "Negativo" "Negativo" "Negativo" "Negativo" "Negativo" "Negativo"
## [151] "Negativo" "Positivo" "Positivo" "Negativo" "Negativo" "Positivo"
## [157] "Negativo" "Positivo" "Positivo" "Negativo" "Negativo" "Positivo"
## [163] "Negativo" "Negativo" "Positivo" "Negativo" "Positivo" "Negativo"
## [169] "Negativo" "Negativo" "Positivo" "Positivo" "Negativo" "Positivo"
## [175] "Positivo" "Negativo" "Positivo" "Negativo" "Negativo" "Negativo"
## [181] "Negativo" "Negativo" "Positivo" "Negativo" "Positivo" "Positivo"
## [187] "Negativo" "Negativo" "Negativo" "Positivo" "Positivo" "Negativo"
## [193] "Negativo" "Positivo" "Positivo" "Positivo" "Positivo" "Negativo"
## [199] "Negativo" "Positivo" "Negativo" "Negativo" "Positivo" "Negativo"
## [205] "Negativo" "Positivo" "Positivo" "Negativo" "Negativo" "Negativo"
## [211] "Positivo" "Negativo" "Negativo" "Negativo" "Negativo" "Negativo"
## [217] "Positivo" "Positivo" "Negativo" "Negativo" "Negativo" "Negativo"
## [223] "Negativo" "Negativo" "Negativo" "Negativo" "Negativo" "Negativo"
## [229] "Negativo" "Negativo" "Positivo"
comparando=as.data.frame(cbind(test$resultado, predichos_diabetesm))
##Matriz de Confusión
table(test$resultado, predichos_diabetesm)
## predichos_diabetesm
## Negativo Positivo
## Negativo 110 36
## Positivo 43 42
library(caret)
str(predichos_diabetesm)
## chr [1:231] "Negativo" "Negativo" "Negativo" "Positivo" "Negativo" ...
predichos_diabetesm=as.factor(predichos_diabetesm)
##Indicadores
indicadores_diabebetesm=confusionMatrix(predichos_diabetesm,test$resultado)
indicadores_diabebetesm
## Confusion Matrix and Statistics
##
## Reference
## Prediction Negativo Positivo
## Negativo 110 43
## Positivo 36 42
##
## Accuracy : 0.658
## 95% CI : (0.5929, 0.719)
## No Information Rate : 0.632
## P-Value [Acc > NIR] : 0.2273
##
## Kappa : 0.2519
##
## Mcnemar's Test P-Value : 0.4996
##
## Sensitivity : 0.7534
## Specificity : 0.4941
## Pos Pred Value : 0.7190
## Neg Pred Value : 0.5385
## Prevalence : 0.6320
## Detection Rate : 0.4762
## Detection Prevalence : 0.6623
## Balanced Accuracy : 0.6238
##
## 'Positive' Class : Negativo
##
predichos_pro=predict(modelo_diabetesm,test,type = "raw")
predichos_pro
## [,1]
## 255 0.0015838849
## 107 0.0108780899
## 217 0.0230089419
## 108 0.6839026432
## 291 0.0951875573
## 120 0.0054721506
## 231 0.0037117805
## 520 0.0018093284
## 316 0.0398020649
## 513 0.0011767897
## 409 0.4796723131
## 326 0.6894366741
## 23 0.1468266915
## 444 0.2521386326
## 253 0.0003896850
## 473 0.5900558991
## 534 0.5475504174
## 536 0.7655059147
## 175 0.1733817482
## 398 0.0681718765
## 172 0.0357979059
## 206 0.0646049577
## 133 0.9072324447
## 382 0.0423631222
## 128 0.1724245606
## 96 0.9064681286
## 477 0.4709290874
## 30 0.3977553050
## 498 0.0019200791
## 57 0.9446374670
## 269 0.0235958816
## 236 0.8304187985
## 27 0.3006554970
## 384 0.1736748257
## 89 0.9119370734
## 207 0.9064681286
## 323 0.7304229284
## 180 0.2134784108
## 115 0.5178847872
## 37 0.0953029764
## 418 0.2499029957
## 2 0.4570016128
## 177 0.0265693800
## 220 0.5612731885
## 297 0.1982695936
## 68 0.2196928235
## 351 0.2177969131
## 229 0.3757290859
## 500 0.2244553866
## 292 0.1725236442
## 233 0.0227600027
## 140 0.6080492942
## 479 0.7564975332
## 420 0.6062499179
## 294 0.4563329222
## 376 0.9064681286
## 267 0.8447213874
## 317 0.0002386892
## 195 0.7565156327
## 12 0.3432376458
## 84 0.0149399470
## 516 0.1982700776
## 54 0.9064681286
## 288 0.4555217684
## 238 0.0725523440
## 408 0.3258645714
## 53 0.0646268954
## 349 0.0339532231
## 433 0.0026008039
## 127 0.0088349296
## 228 0.9604248849
## 456 0.9977313122
## 395 0.2413500169
## 357 0.8680626661
## 483 0.1645020488
## 311 0.5517964542
## 202 0.0137646310
## 480 0.4678709765
## 213 0.9955981110
## 197 0.0134410737
## 488 0.9064681286
## 486 0.0209690521
## 410 0.0088022158
## 123 0.3102750005
## 393 0.7865241880
## 169 0.0369195279
## 60 0.7124610932
## 535 0.1737108029
## 490 0.6811167164
## 226 0.3261544858
## 159 0.0014219729
## 388 0.0437519005
## 526 0.0163940190
## 399 0.0445676063
## 230 0.6710921011
## 65 0.9417329881
## 459 0.9064681286
## 182 0.1724243992
## 367 0.0072102689
## 88 0.4418965073
## 136 0.1148687060
## 137 0.0824601131
## 379 0.5800930930
## 264 0.8224964920
## 76 0.9715514840
## 303 0.0231805155
## 482 0.0130036336
## 119 0.1030077797
## 504 0.6750345141
## 117 0.1264224830
## 265 0.3009413501
## 46 0.9685279688
## 372 0.9003856837
## 111 0.3712108920
## 7 0.0287747284
## 41 0.5972166864
## 365 0.1982691411
## 313 0.4642783904
## 246 0.9836358926
## 489 0.0064125472
## 148 0.4303474582
## 478 0.0180081967
## 11 0.3324212039
## 506 0.0266070867
## 309 0.4793550681
## 505 0.0699664431
## 33 0.0195606623
## 271 0.0131600606
## 391 0.9065324939
## 40 0.8313363478
## 284 0.3195723150
## 310 0.6765161907
## 368 0.0642117189
## 412 0.8671784225
## 51 0.0127317945
## 404 0.0039450919
## 362 0.2064430005
## 455 0.0545037706
## 443 0.0114291424
## 6 0.2339801837
## 55 0.1982691411
## 29 0.6808277773
## 338 0.8161011973
## 176 0.8727252459
## 201 0.0068280343
## 447 0.0024519094
## 533 0.0938995691
## 93 0.0231894686
## 97 0.0025833066
## 450 0.4747040499
## 285 0.1561323574
## 152 0.9715202681
## 32 0.9030316704
## 468 0.0105215563
## 77 0.0333893561
## 425 0.7446809166
## 347 0.4793573384
## 141 0.8153696645
## 106 0.8380703159
## 434 0.0069685285
## 432 0.0021216450
## 331 0.9714500175
## 56 0.4932260911
## 42 0.1310144293
## 360 0.9249931553
## 36 0.2727747828
## 503 0.9945962592
## 69 0.0018523819
## 200 0.1982691411
## 209 0.3649330382
## 257 0.6938069481
## 312 0.7318453493
## 268 0.0397772162
## 144 0.5386482370
## 237 0.6337381022
## 414 0.1658901252
## 415 0.9179461980
## 308 0.3849836811
## 83 0.0225037335
## 252 0.0912084492
## 165 0.3325883941
## 210 0.1463444200
## 343 0.9994373484
## 78 0.0337534550
## 45 0.6362203575
## 436 0.8409614806
## 168 0.0492336870
## 278 0.1055126055
## 491 0.1736748937
## 245 0.8677301818
## 205 0.9723535251
## 346 0.1745858326
## 52 0.1453852385
## 406 0.5087230657
## 260 0.8565699523
## 221 0.9445773921
## 26 0.8047355523
## 48 0.0096946333
## 10 0.0184078054
## 99 0.5336970725
## 225 0.4305878804
## 386 0.1235540180
## 401 0.7830826264
## 72 0.4120847553
## 82 0.0205507111
## 47 0.8181127908
## 222 0.7616286130
## 361 0.1982691411
## 240 0.0461864134
## 363 0.0276362733
## 293 0.8677430823
## 147 0.0379085884
## 135 0.0024610369
## 190 0.3435189614
## 192 0.2447266118
## 497 0.1250515487
## 15 0.6256470158
## 166 0.7596637730
## 364 0.0198435878
## 419 0.0457287817
## 366 0.0549962612
## 132 0.1502271504
## 472 0.0672095027
## 87 0.0133700488
## 322 0.0066151131
## 34 0.0047352418
## 279 0.3584292258
## 423 0.1724260749
## 79 0.1842437198
## 314 0.0267823049
## 277 0.9471513244
library(ROCR)
prediccion1=prediction(predichos_pro,test$resultado)
prediccion2=performance(prediccion1, "tpr","fpr")
#Gráfico
plot(prediccion2, colorize=T)
lines(x=c(0,1), y=c(0,1))

###En este caso, comparando el árbol de desición con las redes neuronales, más factible seria realizar el modelo de árbol.