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