SESIÓN ARBOLES

##DATA DIABETES
diabetes=read.csv("https://raw.githubusercontent.com/VictorGuevaraP/Mineria-de-datos-2019-2/master/diabetes_m.csv", sep=";" )

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                 
## 
library(Amelia)
missmap(diabetes)
library(VIM)

miss=aggr(diabetes)

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
####DE ACUERDO A LOS RESULTADOS SE PROPONE COMO METODO DE CORRECCION
####VECINOS MAS CERCANOS
library(DMwR)
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)
set.seed(111)
particion=createDataPartition(y=diabetes_im$resultado, p=0.7,list = F, times = 1)
train=diabetes_im[particion,]
test=diabetes_im[-particion,]
head(particion)
##      Resample1
## [1,]         1
## [2,]         2
## [3,]         3
## [4,]         6
## [5,]         7
## [6,]         8
dim(diabetes_im)
## [1] 768  10
dim(train)
## [1] 538  10
dim(test)
## [1] 230  10
###########################
#Modelo Arbol
set.seed(111)
library(rpart)
modelo1=rpart(resultado~.,data=train, method = "class")
library(partykit)
plot(as.party(modelo1))

###PREDECIMOS
predichos=predict(modelo1, test, type="class")
predichos
##        4        5       14       16       18       21       25       26 
## Negativo Positivo Positivo Negativo Positivo Negativo Negativo Negativo 
##       28       29       30       31       32       37       41       42 
## Negativo Negativo Positivo Positivo Positivo Positivo Positivo Positivo 
##       46       49       55       56       57       69       74       89 
## Positivo Negativo Positivo Negativo Positivo Negativo Negativo Negativo 
##       93       98      103      104      105      107      110      113 
## Negativo Negativo Negativo Negativo Negativo Negativo Negativo Negativo 
##      115      119      124      126      127      128      129      133 
## Positivo Negativo Negativo Negativo Negativo Negativo Negativo Positivo 
##      134      136      138      143      150      151      152      154 
## Negativo Negativo Negativo Negativo Negativo Positivo Negativo Positivo 
##      158      163      167      169      173      180      181      185 
## Negativo Negativo Negativo Positivo Negativo Positivo Negativo Positivo 
##      190      196      198      199      202      203      210      221 
## Negativo Positivo Negativo Negativo Negativo Positivo Positivo Positivo 
##      225      227      233      234      236      240      248      250 
## Negativo Negativo Negativo Positivo Positivo Negativo Positivo Negativo 
##      260      274      279      280      286      287      291      293 
## Positivo Negativo Negativo Negativo Positivo Positivo Negativo Positivo 
##      294      295      296      299      300      306      307      311 
## Negativo Negativo Positivo Negativo Negativo Negativo Positivo Negativo 
##      316      322      323      325      327      331      348      349 
## Negativo Negativo Negativo Negativo Positivo Negativo Negativo Negativo 
##      358      359      372      373      377      378      379      380 
## Negativo Negativo Negativo Negativo Negativo Negativo Positivo Negativo 
##      382      391      392      395      401      402      405      407 
## Negativo Negativo Positivo Positivo Negativo Positivo Positivo Negativo 
##      410      413      419      420      422      423      428      431 
## Positivo Positivo Negativo Negativo Negativo Negativo Positivo Negativo 
##      434      438      442      444      445      449      450      455 
## Positivo Positivo Negativo Negativo Negativo Negativo Negativo Negativo 
##      456      462      469      470      474      476      479      481 
## Positivo Negativo Negativo Positivo Negativo Negativo Negativo Positivo 
##      485      489      494      496      498      501      502      505 
## Positivo Negativo Positivo Negativo Negativo Negativo Negativo Negativo 
##      508      515      516      517      522      523      528      529 
## Negativo Negativo Positivo Positivo Negativo Negativo Negativo Negativo 
##      531      535      536      543      548      549      554      557 
## Negativo Negativo Negativo Negativo Negativo Positivo Negativo Negativo 
##      560      562      563      564      572      582      585      587 
## Negativo Positivo Negativo Negativo Negativo Negativo Positivo Negativo 
##      590      593      595      598      601      602      603      604 
## Negativo Positivo Positivo Negativo Negativo Negativo Negativo Positivo 
##      605      609      611      612      620      624      626      628 
## Negativo Positivo Negativo Positivo Negativo Negativo Negativo Negativo 
##      631      637      639      647      648      650      652      655 
## Negativo Negativo Negativo Negativo Positivo Negativo Negativo Negativo 
##      656      659      668      673      674      679      680      684 
## Negativo Negativo Negativo Negativo Negativo Negativo Negativo Negativo 
##      686      687      692      699      700      705      711      712 
## Negativo Negativo Positivo Negativo Negativo Negativo Positivo Negativo 
##      716      717      721      723      724      726      728      731 
## Positivo Positivo Negativo Negativo Negativo Negativo Positivo Negativo 
##      734      735      737      738      743      745      747      750 
## Negativo Negativo Negativo Negativo Negativo Positivo Positivo Negativo 
##      752      753      754      756      761      767 
## Negativo Negativo Positivo Positivo Negativo Negativo 
## Levels: Negativo Positivo
##############
##Matriz de Confusion
table(predichos, test$resultado)
##           
## predichos  Negativo Positivo
##   Negativo      123       39
##   Positivo       27       41
#Indicadores
library(caret)
str(test$resultado)
##  Factor w/ 2 levels "Negativo","Positivo": 1 2 2 2 2 1 2 2 1 1 ...
str(predichos)
##  Factor w/ 2 levels "Negativo","Positivo": 1 2 2 1 2 1 1 1 1 1 ...
##  - attr(*, "names")= chr [1:230] "4" "5" "14" "16" ...
test$resultado=as.factor(test$resultado)

indicadores=confusionMatrix(predichos,test$resultado)
indicadores
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction Negativo Positivo
##   Negativo      123       39
##   Positivo       27       41
##                                           
##                Accuracy : 0.713           
##                  95% CI : (0.6499, 0.7706)
##     No Information Rate : 0.6522          
##     P-Value [Acc > NIR] : 0.02944         
##                                           
##                   Kappa : 0.3446          
##                                           
##  Mcnemar's Test P-Value : 0.17573         
##                                           
##             Sensitivity : 0.8200          
##             Specificity : 0.5125          
##          Pos Pred Value : 0.7593          
##          Neg Pred Value : 0.6029          
##              Prevalence : 0.6522          
##          Detection Rate : 0.5348          
##    Detection Prevalence : 0.7043          
##       Balanced Accuracy : 0.6663          
##                                           
##        'Positive' Class : Negativo        
##