--- title: "Métodos de Agregación Homogéneos" author: "Mathias Bourel" date: "17/11/2018" output: pdf_document: default html_document: default --- ```{r} rm(list=ls()) ``` #1 - Paquetes que vamos/podemos usar ```{r} library(rpart) #arboles library(ipred) #bagging library(randomForest)#random forests #library(caret)#paquete con varias cosas de machine learning ``` #2 - Regresión ```{r} data=read.csv("housing_data.csv",sep=";", dec=",", header=T) summary(data) names(data) data$CHAS=as.factor(data$CHAS) summary(data$CHAS) ``` Construir un árbol de regresión considerando las variables CRIM, ZN, CHAS, NOX, RM, DIS, TAX y PTRATIO. Hallar el arbol optimo dado por el algoritmo de la poda con el minimo error de validación cruzada. Hallar el arbol optimo dado por el algoritmo de la poda con la regla 1-SE. Hallar el arbol optimo con paramétro de costo complejidad igual a cp=0.01 (es el que devuelve la función rpart) ```{r} tree=rpart(MEDV~CRIM+ZN+CHAS+NOX+RM+DIS+TAX+PTRATIO,cp=0.01,data) cp.opt = tree$cptable[which.min(tree$cptable[,"xerror"]),"CP"] tree2=rpart(MEDV~CRIM+ZN+CHAS+NOX+RM+DIS+TAX+PTRATIO,cp=cp.opt,data) tsse=min(tree$cptable[,"xerror"])+tree$cptable[which.min(tree$cptable[,"xerror"]),"xstd"] cpopt1SE=tree$cptable[min(tree$cptable[tree$cptable[,"xerror"] 20, c("high"), c("low")) summary(data) MEDVcat=as.factor(data$MEDVcat) data=data[,-1] data=cbind(data,MEDVcat) summary(data) ``` # 3-3 Curvas ROC ```{r} library(rpart) library(rattle) # para data set library(ROCR) datos <- weather datos <- within(datos, rm("Date","Location","RISK_MM")) #borra columnas dummy set.seed(42) # fija la secuencia de numeros aleatorios sampleTrain <- sample(nrow(datos),(nrow(datos)*.6)) Train <- datos[sampleTrain,] Test <- datos[-sampleTrain,] modelo.rpart <- rpart(RainTomorrow ~ .,Train, method="class") # PREDICCION #------------------------------------------------------------------------------ predict.rpart <- predict(modelo.rpart,Test,type = "prob")[,2] #prob. clase=yes predict.rocr <- prediction (predict.rpart,Test$RainTomorrow) perf.rocr <- performance(predict.rocr,"tpr","fpr") #True y False postivie.rate # GRAFICO CURVA ROC #------------------------------------------------------------------------------ auc <- as.numeric(performance(predict.rocr ,"auc")@y.values) plot(perf.rocr,type='o', main = paste('Area Bajo la Curva =',round(auc,2))) #abline(a=0, b= 1) ```