#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.