Vender o no vender ese es el problema (II) - Árboles de...

62
Vender o no vender ese es el problema (II) Árboles de Decisión Xavi Barber Centro de Investigación Operativa. Universidad Miguel Hernández de Elche Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 1 / 58

Transcript of Vender o no vender ese es el problema (II) - Árboles de...

Page 1: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Vender o no vender ese es el problema (II)Árboles de Decisión

Xavi Barber

Centro de Investigación Operativa.Universidad Miguel Hernández de Elche

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 1 / 58

Page 2: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

1 Introducción al Concepto de Árbol

2 Los datos

3 Modelo Logístico

4 Partición Recursiva con R

5 Árboles de Regresión

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 2 / 58

Page 3: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Introducción al Concepto de Árbol

Introducción al Concepto de Árbol

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 3 / 58

Page 4: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Introducción al Concepto de Árbol

Árboles de Desición

Habitualmente llamados como Árboles de Decisión, o simplementeÁrboles. Son métodos para modelizar la predicción.

Un ejemplo clásico es “Considerar una regla para decidir que tarjeta decrédito ofrecer al cliente”:

Interés inferior al 15%Meses de carencia de pago >1Salario mensual superior a 3000eSi ya dispone de alguna tarjeta similar,. . .

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 4 / 58

Page 5: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Introducción al Concepto de Árbol

Reseña histórica

Tanto el programa comercial CART como la función rpart() estánbasados en el libro Classification and Regression TreesCART comenzó como un enorme programa en Fortran que escribió JerryFriedman y que sirvió para contrastar las ideas contenidas en el libro.Pero Fortran no es el lenguaje adecuado para un algoritmo recursivoSalford Systems©adquirió los derechos de dicho código.El paquete clásico en R se llama rpart debido a a que se registro elnombre de CART, esto ha hecho que la gente hable de “particónrecursiva” habitualmente y no de método CART.

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 5 / 58

Page 6: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Introducción al Concepto de Árbol

El Algoritmo de búsquedaPara crear un árbol usaremos un algoritmo basado en la información de losdatos. El algoritmo de búsqueda para la regla de decisión se basa en lavariables predictoras para progresivamente dividir los “casos” en pequeñosgrupos “afines”.

Los grupos finales los llamamos “hojas”.

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 6 / 58

Page 7: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Introducción al Concepto de Árbol

Tress vs. Logística

Ambos modelos necesitan información histórica, variables predictoras yuna variable OBJETIVO (Target) binaria.Ambos algoritmos usan información histórica para crear (estimar) elmodelo que relaciona a los predictores con el Target. Los modelos deregresión necesitan de una formula algebraica, mientras que losÁrboles son una secuencia de reglas.

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 7 / 58

Page 8: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Introducción al Concepto de Árbol

Tress vs. Logística

Uno y otro modelo, una vez generado, puede usar un nuevo caso parapredecir el comportamiento de la variable Target.El modelo de regresión calcula la probabilidad de que una variabletarget tome un valor “bueno” para ese caso. Se utilizarán estasprobabilidades para dividir en dos grupos.El modelo de Árbol puede saignar directamente un nuevo caso al grupodel Target.

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 8 / 58

Page 9: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Introducción al Concepto de Árbol

Ventajas y Desventajas

La interpretación del calibrado del árbol es muy sencilla, siendo muyútil su uso para audiencias no especializadas.Es más flexible que la regresión logística en las asunciones para suajuste, y se ve menos afectado por los valores perdidos.Pero los modelos de regresión pueden detectar efectos más débiles conun número menor de datos

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 9 / 58

Page 10: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Introducción al Concepto de Árbol

Diferentes tipos de modelos

Los algoritmos varían según su características, incluyendo el tipo deobjetivo , manejando la complejidad de las ramas.Utilizaremos la librería de R, rpart (recursive partitioning) (Venablesand Ripley 2002). Tambien se utilizarán las librerías party ypartykit.Más recientemente están apareciendo librerías que hacen incapie enobtener un arbol “publicable” y con técnicas más enfocadas al BigData: CORElearn, C50, etc.

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 10 / 58

Page 11: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Introducción al Concepto de Árbol

Partes de un Árbol

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 11 / 58

Page 12: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Introducción al Concepto de Árbol

Índice Gini

Definimos PI y PD com olas proporciones de el nodo original a laderecha y a la izquierda, cuyo resultado es:

PI = nSI/N

PD = nNO/N.

Definimos la porporción de un tipo (1) dentro de los subnodos derechoe izquierdo como pI y pD, dadod por:

pI = nX1A/nSI pD = nX1B /nNO.

Definimos entonces el índice GINI como medida asociada al resultadodeparticiona los datos por:

PI(pI)(1 − pI) + PD(pD)(1 − pD).

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 12 / 58

Page 13: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Introducción al Concepto de Árbol

Selección Recursiva

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 13 / 58

Page 14: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Introducción al Concepto de Árbol

Reglas de Parada

Todos los casos en un nodo tienes igual valor para los predictoresLa “profundidad”" del árbol sobrepasa el máximo establecido.El tamaño del nodo es más pequeño que el mínimo establecido.El corte de un nodo va a provocar un tamaño menor del establecido.El nodo se convierte en “puro”.etc.

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 14 / 58

Page 15: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Introducción al Concepto de Árbol

Validación del Resultado

Como en los métodos de regresión es muy importante validar el modelo:

Particionar la base de datos en dos y utilizar uan para Estimar y otrapara Validar.Realizar una validación cruzada (ajustar tantos modelos como Datos,eliminando el i-ésimo dato en el modelo i-ésimo).Utilizar Random Forest (próxima Sesión).

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 15 / 58

Page 16: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Los datos

Los datos

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 16 / 58

Page 17: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Los datos

El ejemplo

Tenemos los datos de uan encuesta alos visitantes de Terra Mítica. Losdatos contienen la siguiente información:

Si es o no visitante de fin de semana (weekend),Número de niños que le acompañan (num.cild),La distnacia desde su hogar al parque (ditance).Satisfacción general (overall),satisfacción con las atracciones(rides), juegos (games),tiempos deespera (wait) y limpieza (clean).

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 17 / 58

Page 18: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Los datos

El ejemplo

sat.df <- read.csv("http://goo.gl/HKnl74")#'sat.df <- read.csv2("~/Dropbox/xavi-umh/docencia/TEIM/2015-2016/material/sat_df.csv")str(sat.df)

## 'data.frame': 500 obs. of 8 variables:## $ weekend : Factor w/ 2 levels "no","yes": 2 2 1 2 1 1 2 1 1 2 ...## $ num.child: int 0 2 1 0 4 5 1 0 0 3 ...## $ distance : num 114.6 27 63.3 25.9 54.7 ...## $ rides : int 87 87 85 88 84 81 77 82 90 88 ...## $ games : int 73 78 80 72 87 79 73 70 88 86 ...## $ wait : int 60 76 70 66 74 48 58 70 79 55 ...## $ clean : int 89 87 88 89 87 79 85 83 95 88 ...## $ overall : int 47 65 61 37 68 27 40 30 58 36 ...

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 18 / 58

Page 19: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Los datos

El ejemplo

Vamos a categorizar la variable overall como medida que indique si uncliente está o no satisfecho.

Lo primero pintaré un histograma para ver cómo es esta variable:

library(ggplot2)ggplot(data=sat.df, aes(overall)) +

geom_histogram(aes(y =..density..),breaks=seq(0, 100, by = 10),col="red",fill="green",alpha = .2) +

geom_density(col=4) +labs(title="Histograma para Satisfacción") +labs(x="Satisfacción", y="Casos")

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 19 / 58

Page 20: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Los datos

0.00

0.01

0.02

0 25 50 75 100Satisfacción

Cas

os

Histograma para Satisfacción

Vemos como su comportamiento es bastante "normal", por que deberemosdecirdir dónde cortar para ver a los insatisfechos.

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 20 / 58

Page 21: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Los datos

El ejemplo

Ahora nos guardaremos unos datos para la fase de estimación y otroa parala fase de validación:

library(caret)dividir<- createDataPartition(sat.df$overall,p=0.5, list=FALSE)#'ajuste <- sat.df[ dividir, ]#'valida <- sat.df[ -dividir, ]

Veamos pues diferentes posibilidades de categorización de esta variabledependiendo del punto de corte realizado. - Overall < 50

sat.df$Satis<-factor(ifelse(sat.df$overall<50,"Insatisfecho","Satisfecho"))#'valida$Satis<-factor(ifelse(valida$overall<50,"Insatisfecho","Satisfecho"))

#'mytable<-table(ajuste$Satis)/length(ajuste$Satis)#'mytable

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 21 / 58

Page 22: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Los datos

Los datos

Tenemos los datos de uan encuesta alos visitantes de Terra Mítica. Losdatos contienen la siguiente información:

Si es o no visitante de fin de semana (weekend),Número de niños que le acompañan (num.cild),La distnacia desde su hogar al parque (ditance).satisfacción con las atracciones(rides), juegos (games),tiempos deespera (wait) y limpieza (clean).

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 22 / 58

Page 23: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Modelo Logístico

Modelo Logístico

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 23 / 58

Page 24: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Modelo Logístico

Ajustando el modelo Completo

fit1<-glm(Satis~weekend+num.child+distance+rides+games+wait+clean, data=sat.df,family=binomial(link="logit"), subset=dividir)

Estimate Std. Error z value Pr(>|z|)

weekendyes -0.5129 0.3703 -1.385 0.166num.child 0.8803 0.1486 5.924 3.135e-09distance 0.008859 0.006868 1.29 0.1971rides 0.03333 0.0542 0.6149 0.5386games 0.07254 0.02806 2.585 0.009729wait 0.1202 0.02273 5.288 1.236e-07clean 0.2285 0.06988 3.27 0.001075

(Intercept) -38.57 5.333 -7.232 4.756e-13

(Dispersion parameter for binomial family taken to be 1 )

Null deviance: 348.0 on 250 degrees of freedomResidual deviance: 189.4 on 243 degrees of freedom

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 24 / 58

Page 25: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Modelo Logístico

El modelo Bondadoso

Tratamos de ajustar mejor el modelo:

fit2<-glm(Satis~num.child+rides+games+wait, data=sat.df,family=binomial(link="logit"), subset=dividir)

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 25 / 58

Page 26: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Modelo Logístico

Capacidad predictiva del modelo

varPred<-c(2,4,5,6)casos<-predict(fit2,sat.df[-dividir,varPred], type="response")prediccion1<-factor(ifelse(casos<0.5,

"Insatisfecho","Satisfecho"))mt<-table(prediccion1,sat.df$Satis[-dividir])kable(addmargins(mt))

Insatisfecho Satisfecho Sum

Insatisfecho 95 32 127Satisfecho 27 95 122Sum 122 127 249

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 26 / 58

Page 27: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Modelo Logístico

Capacidad predictiva del modeloprint(confusionMatrix(prediccion1,sat.df$Satis[-dividir]))

## Confusion Matrix and Statistics#### Reference## Prediction Insatisfecho Satisfecho## Insatisfecho 95 32## Satisfecho 27 95#### Accuracy : 0.7631## 95% CI : (0.7053, 0.8145)## No Information Rate : 0.51## P-Value [Acc > NIR] : <2e-16#### Kappa : 0.5263## Mcnemar's Test P-Value : 0.6025#### Sensitivity : 0.7787## Specificity : 0.7480## Pos Pred Value : 0.7480## Neg Pred Value : 0.7787## Prevalence : 0.4900## Detection Rate : 0.3815## Detection Prevalence : 0.5100## Balanced Accuracy : 0.7634#### 'Positive' Class : Insatisfecho##

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 27 / 58

Page 28: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

Partición Recursiva con R

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 28 / 58

Page 29: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

El algoritmo de ajuste

Para más información: [link]https://cran.r-project.org/web/packages/rpart/vignettes/longintro.pdf

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 29 / 58

Page 30: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

Ajustando el Árbollibrary(rpart)arbol1<-rpart(Satis~weekend+num.child+distance+

rides+games+wait+clean, data=sat.df, subset=dividir,method="class")

Los parámetros de rpart más importantes son:

1 subset: para bases de datos Ajuste-Validación.2 method:

“anova” para variables Dependientes Contínuas

“poisson” para modelos de tasas-eventos (Poisson Regression)

“class” cuando la variable Dependiente es un Factor (0/1)

“exp” para modelos de supervivencia (survival regression)

y otros más

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 30 / 58

Page 31: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

Ajustando el Árbollibrary(rpart)arbol1<-rpart(Satis~weekend+num.child+distance+

rides+games+wait+clean, data=sat.df, subset=dividir,method="class")

Los parámetros de rpart más importantes son:

1 subset: para bases de datos Ajuste-Validación.2 method:

“anova” para variables Dependientes Contínuas

“poisson” para modelos de tasas-eventos (Poisson Regression)

“class” cuando la variable Dependiente es un Factor (0/1)

“exp” para modelos de supervivencia (survival regression)

y otros más

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 30 / 58

Page 32: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

Ajustando el Árbollibrary(rpart)arbol1<-rpart(Satis~weekend+num.child+distance+

rides+games+wait+clean, data=sat.df, subset=dividir,method="class")

Los parámetros de rpart más importantes son:

1 subset: para bases de datos Ajuste-Validación.2 method:

“anova” para variables Dependientes Contínuas

“poisson” para modelos de tasas-eventos (Poisson Regression)

“class” cuando la variable Dependiente es un Factor (0/1)

“exp” para modelos de supervivencia (survival regression)

y otros más

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 30 / 58

Page 33: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

Ajustando el Árbollibrary(rpart)arbol1<-rpart(Satis~weekend+num.child+distance+

rides+games+wait+clean, data=sat.df, subset=dividir,method="class")

Los parámetros de rpart más importantes son:

1 subset: para bases de datos Ajuste-Validación.2 method:

“anova” para variables Dependientes Contínuas

“poisson” para modelos de tasas-eventos (Poisson Regression)

“class” cuando la variable Dependiente es un Factor (0/1)

“exp” para modelos de supervivencia (survival regression)

y otros más

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 30 / 58

Page 34: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

Ajustando el Árbollibrary(rpart)arbol1<-rpart(Satis~weekend+num.child+distance+

rides+games+wait+clean, data=sat.df, subset=dividir,method="class")

Los parámetros de rpart más importantes son:

1 subset: para bases de datos Ajuste-Validación.2 method:

“anova” para variables Dependientes Contínuas

“poisson” para modelos de tasas-eventos (Poisson Regression)

“class” cuando la variable Dependiente es un Factor (0/1)

“exp” para modelos de supervivencia (survival regression)

y otros más

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 30 / 58

Page 35: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

## n= 251#### node), split, n, loss, yval, (yprob)## * denotes terminal node#### 1) root 251 123 Satisfecho (0.49003984 0.50996016)## 2) clean< 87.5 124 33 Insatisfecho (0.73387097 0.26612903)## 4) wait< 78.5 111 22 Insatisfecho (0.80180180 0.19819820)## 8) rides< 83.5 71 7 Insatisfecho (0.90140845 0.09859155) *## 9) rides>=83.5 40 15 Insatisfecho (0.62500000 0.37500000)## 18) num.child< 0.5 10 0 Insatisfecho (1.00000000 0.00000000) *## 19) num.child>=0.5 30 15 Insatisfecho (0.50000000 0.50000000)## 38) clean< 84.5 7 1 Insatisfecho (0.85714286 0.14285714) *## 39) clean>=84.5 23 9 Satisfecho (0.39130435 0.60869565)## 78) wait< 72 16 7 Insatisfecho (0.56250000 0.43750000) *## 79) wait>=72 7 0 Satisfecho (0.00000000 1.00000000) *## 5) wait>=78.5 13 2 Satisfecho (0.15384615 0.84615385) *## 3) clean>=87.5 127 32 Satisfecho (0.25196850 0.74803150)## 6) num.child< 0.5 38 12 Insatisfecho (0.68421053 0.31578947)## 12) games< 87.5 28 4 Insatisfecho (0.85714286 0.14285714) *## 13) games>=87.5 10 2 Satisfecho (0.20000000 0.80000000) *## 7) num.child>=0.5 89 6 Satisfecho (0.06741573 0.93258427) *

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 31 / 58

Page 36: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

print(arbol1$frame)

## var n wt dev yval complexity ncompete nsurrogate yval2.V1## 1 clean 251 251 123 2 0.47154472 4 5 2.00000000## 2 wait 124 124 33 1 0.07317073 4 0 1.00000000## 4 rides 111 111 22 1 0.01355014 4 5 1.00000000## 8 <leaf> 71 71 7 1 0.00000000 0 0 1.00000000## 9 num.child 40 40 15 1 0.01355014 4 1 1.00000000## 18 <leaf> 10 10 0 1 0.01000000 0 0 1.00000000## 19 clean 30 30 15 1 0.01355014 4 0 1.00000000## 38 <leaf> 7 7 1 1 0.01000000 0 0 1.00000000## 39 wait 23 23 9 2 0.01355014 4 2 2.00000000## 78 <leaf> 16 16 7 1 0.01000000 0 0 1.00000000## 79 <leaf> 7 7 0 2 0.01000000 0 0 2.00000000## 5 <leaf> 13 13 2 2 0.01000000 0 0 2.00000000## 3 num.child 127 127 32 2 0.11382114 4 0 2.00000000## 6 games 38 38 12 1 0.04878049 4 2 1.00000000## 12 <leaf> 28 28 4 1 0.00000000 0 0 1.00000000## 13 <leaf> 10 10 2 2 0.01000000 0 0 2.00000000## 7 <leaf> 89 89 6 2 0.00000000 0 0 2.00000000## yval2.V2 yval2.V3 yval2.V4 yval2.V5 yval2.nodeprob## 1 123.00000000 128.00000000 0.49003984 0.50996016 1.00000000## 2 91.00000000 33.00000000 0.73387097 0.26612903 0.49402390## 4 89.00000000 22.00000000 0.80180180 0.19819820 0.44223108## 8 64.00000000 7.00000000 0.90140845 0.09859155 0.28286853## 9 25.00000000 15.00000000 0.62500000 0.37500000 0.15936255## 18 10.00000000 0.00000000 1.00000000 0.00000000 0.03984064## 19 15.00000000 15.00000000 0.50000000 0.50000000 0.11952191## 38 6.00000000 1.00000000 0.85714286 0.14285714 0.02788845## 39 9.00000000 14.00000000 0.39130435 0.60869565 0.09163347## 78 9.00000000 7.00000000 0.56250000 0.43750000 0.06374502## 79 0.00000000 7.00000000 0.00000000 1.00000000 0.02788845## 5 2.00000000 11.00000000 0.15384615 0.84615385 0.05179283## 3 32.00000000 95.00000000 0.25196850 0.74803150 0.50597610## 6 26.00000000 12.00000000 0.68421053 0.31578947 0.15139442## 12 24.00000000 4.00000000 0.85714286 0.14285714 0.11155378## 13 2.00000000 8.00000000 0.20000000 0.80000000 0.03984064## 7 6.00000000 83.00000000 0.06741573 0.93258427 0.35458167

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 32 / 58

Page 37: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

Índice de Complejidad

Se define Rα(T ) = R(T ) + α|T | como el coste para el árbol, y se define Tα como el sub-árbolde la hipótesis nula el cual tiene un coste mínimo. Obviamente T0 = el modelo completo yT∞=el modelo sin “cortes”.

1 Si T1 y T2 son sub-árboles de T con Rα(T1) = Rα(T2), entonces o bien T1 es unsub-árbol de T2 o T2 es un sub-arbol de T1; por lo tanto, ya sea |T1| < |T2| or|T2| < |T1|.

2 If α > β entonces o bien Tα = Tβ o Tα es un subárbol (estricto) de Tβ .3 Dado un conjunto de números α1, α2, . . . , αm; ambos Tα1 , . . . ,Tαm y R(Tα1 ), . . .,

R(Tαm ) se pueden calcular de manera eficiente.

Podemos definir Tα como el árbol más pequeño T para el cual Rα(T ) se minimiza.

Por tanto el parámetro de complejidad cp se obtiene de: Rcp(T ) ≡ R(T ) + cp ∗ |T | ∗ R(T1)donde T1 es el árbol sin cortes, |T | es el número de cortes pra el árbol, y R es el riesgo.

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 33 / 58

Page 38: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

Índice de Complejidad

CP = El Parámetro de Complejidad, siendorel error= rel error(antes) - (nsplit - nsplit(antes)) * CP(antes); donde (antes)denota siempre la entrada en la fila de arriba.xerror=The xerror column contains of estimates of cross-validated prediction errorfor different numbers of splits.xstd= El error estandar de esas estimaciones.

kable(arbol1$cptable)

CP nsplit rel error xerror xstd

0.4715447 0 1.0000000 1.1219512 0.06408210.1138211 1 0.5284553 0.5284553 0.05642490.0731707 2 0.4146341 0.4715447 0.05429390.0487805 3 0.3414634 0.4146341 0.05182720.0135501 4 0.2926829 0.3414634 0.04807900.0100000 8 0.2357724 0.3577236 0.0489744

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 34 / 58

Page 39: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

kable(arbol1$splits)

count ncat improve index adj

clean 251 -1 29.1406996 87.500000 0.0000000rides 251 -1 22.6392937 83.500000 0.0000000wait 251 -1 20.4638046 72.500000 0.0000000games 251 -1 19.5163579 78.500000 0.0000000num.child 251 -1 18.6524091 0.500000 0.0000000rides 0 -1 0.8127490 84.500000 0.6209677games 0 -1 0.7211155 79.500000 0.4354839wait 0 -1 0.6573705 66.500000 0.3064516distance 0 1 0.5418327 84.855383 0.0725806num.child 0 -1 0.5219124 2.500000 0.0322581wait 124 -1 9.7715892 78.500000 0.0000000games 124 -1 4.3291009 79.500000 0.0000000rides 124 -1 4.1601216 83.500000 0.0000000num.child 124 -1 3.5767882 0.500000 0.0000000clean 124 -1 2.9543493 84.500000 0.0000000rides 111 -1 3.9095610 83.500000 0.0000000games 111 -1 3.9095610 77.500000 0.0000000clean 111 -1 3.6325260 84.500000 0.0000000wait 111 -1 3.4141026 60.500000 0.0000000num.child 111 -1 2.9419299 0.500000 0.0000000clean 0 -1 0.7207207 84.500000 0.2250000wait 0 -1 0.6756757 74.500000 0.1000000num.child 0 -1 0.6576577 4.500000 0.0500000distance 0 -1 0.6576577 99.396816 0.0500000games 0 -1 0.6486486 91.000000 0.0250000num.child 40 -1 3.7500000 0.500000 0.0000000wait 40 -1 3.7500000 60.000000 0.0000000distance 40 -1 2.8409091 19.264180 0.0000000games 40 -1 2.6886189 77.500000 0.0000000clean 40 -1 1.2500000 84.500000 0.0000000distance 0 -1 0.8000000 4.175389 0.2000000clean 30 -1 2.3291925 84.500000 0.0000000wait 30 -1 1.9841270 72.500000 0.0000000distance 30 -1 1.7942584 19.264180 0.0000000games 30 -1 1.6666667 77.500000 0.0000000rides 30 -1 0.8385093 87.500000 0.0000000wait 23 -1 3.0815217 72.000000 0.0000000games 23 -1 1.5411371 77.500000 0.0000000distance 23 1 1.3398551 37.170717 0.0000000clean 23 1 0.4898551 85.500000 0.0000000rides 23 -1 0.2243789 87.500000 0.0000000games 0 -1 0.7391304 80.500000 0.1428571clean 0 -1 0.7391304 86.500000 0.1428571num.child 127 -1 20.2619519 0.500000 0.0000000wait 127 -1 3.5224176 71.500000 0.0000000games 127 -1 3.1989165 83.500000 0.0000000clean 127 -1 2.4417415 94.500000 0.0000000rides 127 -1 1.6827114 94.500000 0.0000000games 38 -1 6.3639098 87.500000 0.0000000distance 38 1 2.0210526 42.143628 0.0000000weekend 38 2 1.6500381 1.000000 0.0000000clean 38 -1 1.1215135 93.500000 0.0000000rides 38 -1 0.7377193 85.500000 0.0000000clean 0 -1 0.8157895 94.500000 0.3000000rides 0 -1 0.7894737 95.000000 0.2000000

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 35 / 58

Page 40: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

kable(arbol1$variable.importance)

clean 34.698934num.child 25.147452rides 23.277777wait 22.174281games 19.592171distance 3.060529

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 36 / 58

Page 41: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

Dibujando el árbol

library(rpart.plot)prp(arbol1,type=2)

clean < 88

wait < 78

rides < 84

num.chil < 0.5

clean < 84

wait < 72

num.chil < 0.5

games < 88

Satisfec

Insatisf

Insatisf

Insatisf Insatisf

Insatisf Insatisf

Insatisf Satisfec

Insatisf Satisfec

Satisfec

Satisfec

Insatisf

Insatisf Satisfec

Satisfec

yes no

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 37 / 58

Page 42: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

prp(arbol1,type=4)

clean < 88

wait < 78

rides < 84

num.chil < 0.5

clean < 84

wait < 72

num.chil < 0.5

games < 88

>= 88

>= 78

>= 84

>= 0.5

>= 84

>= 72

>= 0.5

>= 88

Satisfec

Insatisf

Insatisf

Insatisf Insatisf

Insatisf Insatisf

Insatisf Satisfec

Insatisf Satisfec

Satisfec

Satisfec

Insatisf

Insatisf Satisfec

Satisfec

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 38 / 58

Page 43: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

prp(arbol1,type=4, extra=3)

clean < 88

wait < 78

rides < 84

num.chil < 0.5

clean < 84

wait < 72

num.chil < 0.5

games < 88

>= 88

>= 78

>= 84

>= 0.5

>= 84

>= 72

>= 0.5

>= 88

Satisfec123 / 251

Insatisf33 / 124

Insatisf22 / 111

Insatisf7 / 71

Insatisf15 / 40

Insatisf0 / 10

Insatisf15 / 30

Insatisf1 / 7

Satisfec9 / 23

Insatisf7 / 16

Satisfec0 / 7

Satisfec2 / 13

Satisfec32 / 127

Insatisf12 / 38

Insatisf4 / 28

Satisfec2 / 10

Satisfec6 / 89

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 39 / 58

Page 44: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

prp(arbol1,type=4, extra=103)

clean < 88

wait < 78

rides < 84

num.chil < 0.5

clean < 84

wait < 72

num.chil < 0.5

games < 88

>= 88

>= 78

>= 84

>= 0.5

>= 84

>= 72

>= 0.5

>= 88

Satisfec123 / 251

100%

Insatisf33 / 124

49%

Insatisf22 / 111

44%

Insatisf7 / 7128%

Insatisf15 / 4016%

Insatisf0 / 104%

Insatisf15 / 3012%

Insatisf1 / 73%

Satisfec9 / 239%

Insatisf7 / 166%

Satisfec0 / 73%

Satisfec2 / 135%

Satisfec32 / 127

51%

Insatisf12 / 3815%

Insatisf4 / 2811%

Satisfec2 / 104%

Satisfec6 / 8935%

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 40 / 58

Page 45: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

prp(arbol1,type=4, extra=103, under=T)

clean < 88

wait < 78

rides < 84

num.chil < 0.5

clean < 84

wait < 72

num.chil < 0.5

games < 88

>= 88

>= 78

>= 84

>= 0.5

>= 84

>= 72

>= 0.5

>= 88

123 / 251100%

33 / 12449%

22 / 11144%

7 / 7128%

15 / 4016%

0 / 104%

15 / 3012%

1 / 73%

9 / 239%

7 / 166%

0 / 73%

2 / 135%

32 / 12751%

12 / 3815%

4 / 2811%

2 / 104%

6 / 8935%

Satisfec

Insatisf

Insatisf

Insatisf Insatisf

Insatisf Insatisf

Insatisf Satisfec

Insatisf Satisfec

Satisfec

Satisfec

Insatisf

Insatisf Satisfec

Satisfec

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 41 / 58

Page 46: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

prp(arbol1,type=4, extra=103, under=T, nn=T,fallen.leaves=T)

clean < 88

wait < 78

rides < 84

num.chil < 0.5

clean < 84

wait < 72

num.chil < 0.5

games < 88

>= 88

>= 78

>= 84

>= 0.5

>= 84

>= 72

>= 0.5

>= 88

123 / 251100%

33 / 12449%

22 / 11144%

7 / 7128%

15 / 4016%

0 / 104%

15 / 3012%

1 / 73%

9 / 239%

7 / 166%

0 / 73%

2 / 135%

32 / 12751%

12 / 3815%

4 / 2811%

2 / 104%

6 / 8935%

Satisfec

Insatisf

Insatisf

Insatisf

Insatisf

Insatisf

Insatisf

Insatisf

Satisfec

Insatisf Satisfec Satisfec

Satisfec

Insatisf

Insatisf Satisfec Satisfec

1

2

4

8

9

18

19

38

39

78 79 5

3

6

12 13 7

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 42 / 58

Page 47: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

prp(arbol1,type=4, extra=103, under=T,nn=F, fallen.leaves=F,yflip=T)

clean < 88

wait < 78

rides < 84

num.chil < 0.5

clean < 84

wait < 72

num.chil < 0.5

games < 88

>= 88

>= 78

>= 84

>= 0.5

>= 84

>= 72

>= 0.5

>= 88

123 / 251100%

33 / 12449%

22 / 11144%

7 / 7128%

15 / 4016%

0 / 104%

15 / 3012%

1 / 73%

9 / 239%

7 / 166%

0 / 73%

2 / 135%

32 / 12751%

12 / 3815%

4 / 2811%

2 / 104%

6 / 8935%

Satisfec

Insatisf

Insatisf

Insatisf Insatisf

Insatisf Insatisf

Insatisf Satisfec

Insatisf Satisfec

Satisfec

Satisfec

Insatisf

Insatisf Satisfec

Satisfec

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 43 / 58

Page 48: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

prp(arbol1,type=4, extra=103, under=T,nn=F, fallen.leaves=F, yflip=F, trace=T)

## cex 0.188 xlim c(0, 1) ylim c(-0.2, 1.2)

clean < 88

wait < 78

rides < 84

num.chil < 0.5

clean < 84

wait < 72

num.chil < 0.5

games < 88

>= 88

>= 78

>= 84

>= 0.5

>= 84

>= 72

>= 0.5

>= 88

123 / 251100%

33 / 12449%

22 / 11144%

7 / 7128%

15 / 4016%

0 / 104%

15 / 3012%

1 / 73%

9 / 239%

7 / 166%

0 / 73%

2 / 135%

32 / 12751%

12 / 3815%

4 / 2811%

2 / 104%

6 / 8935%

Satisfec

Insatisf

Insatisf

Insatisf Insatisf

Insatisf Insatisf

Insatisf Satisfec

Insatisf Satisfec

Satisfec

Satisfec

Insatisf

Insatisf Satisfec

Satisfec

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 44 / 58

Page 49: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

prp(arbol1,type=4, extra=103, under=T,nn=F, fallen.leaves=F, yflip=F, trace=T,box.col="red", border.col="blue", shadow.col="gray")

## cex 0.188 xlim c(0, 1) ylim c(-0.2, 1.2)

clean < 88

wait < 78

rides < 84

num.chil < 0.5

clean < 84

wait < 72

num.chil < 0.5

games < 88

>= 88

>= 78

>= 84

>= 0.5

>= 84

>= 72

>= 0.5

>= 88

123 / 251100%

33 / 12449%

22 / 11144%

7 / 7128%

15 / 4016%

0 / 104%

15 / 3012%

1 / 73%

9 / 239%

7 / 166%

0 / 73%

2 / 135%

32 / 12751%

12 / 3815%

4 / 2811%

2 / 104%

6 / 8935%

Satisfec

Insatisf

Insatisf

Insatisf Insatisf

Insatisf Insatisf

Insatisf Satisfec

Insatisf Satisfec

Satisfec

Satisfec

Insatisf

Insatisf Satisfec

Satisfec

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 45 / 58

Page 50: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

rpart.plot(arbol1)

clean < 88

wait < 78

rides < 84

num.chil < 0.5

clean < 84

wait < 72

num.chil < 0.5

games < 88

Insatisf

Insatisf

Insatisf

Insatisf Satisfec

Satisfec

Insatisf Satisfec

Satisfec

yes no

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 46 / 58

Page 51: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

library(rpart.plot)library(rattle)fancyRpartPlot(arbol1, sub="")

yes no

1

2

4

8

9

18

19

38

39

78 79 5

3

6

12 13 7

clean < 88

wait < 78

rides < 84

num.child < 0.5

clean < 84

wait < 72

num.child < 0.5

games < 88

Satisfecho.49 .51100%

Insatisfecho.73 .27

49%

Insatisfecho.80 .20

44%

Insatisfecho.90 .10

28%

Insatisfecho.62 .38

16%

Insatisfecho1.00 .00

4%

Insatisfecho.50 .50

12%

Insatisfecho.86 .14

3%

Satisfecho.39 .61

9%

Insatisfecho.56 .44

6%

Satisfecho.00 1.00

3%

Satisfecho.15 .85

5%

Satisfecho.25 .75

51%

Insatisfecho.68 .32

15%

Insatisfecho.86 .14

11%

Satisfecho.20 .80

4%

Satisfecho.07 .93

35%

yes no

1

2

4

8

9

18

19

38

39

78 79 5

3

6

12 13 7

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 47 / 58

Page 52: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

Perfeccionando el Árbolkable(printcp(arbol1))

#### Classification tree:## rpart(formula = Satis ~ weekend + num.child + distance + rides +## games + wait + clean, data = sat.df, subset = dividir, method = "class")#### Variables actually used in tree construction:## [1] clean games num.child rides wait#### Root node error: 123/251 = 0.49004#### n= 251#### CP nsplit rel error xerror xstd## 1 0.471545 0 1.00000 1.12195 0.064082## 2 0.113821 1 0.52846 0.52846 0.056425## 3 0.073171 2 0.41463 0.47154 0.054294## 4 0.048780 3 0.34146 0.41463 0.051827## 5 0.013550 4 0.29268 0.34146 0.048079## 6 0.010000 8 0.23577 0.35772 0.048974

CP nsplit rel error xerror xstd

0.4715447 0 1.0000000 1.1219512 0.06408210.1138211 1 0.5284553 0.5284553 0.05642490.0731707 2 0.4146341 0.4715447 0.05429390.0487805 3 0.3414634 0.4146341 0.05182720.0135501 4 0.2926829 0.3414634 0.04807900.0100000 8 0.2357724 0.3577236 0.0489744

*Esta función devuelve el Cp óptim o:arbol1$cptab le[which. min(arbol1$c ptable[,“xer ror“]),”CP“]=

## [1] 0.01355014

cp

X−

val R

elat

ive

Err

or

0.2

0.8

Inf 0.091 0.026

1 2 3 4 5 9

size of tree

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 48 / 58

Page 53: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

Cortamos el arbol según el Cp óptimo:

parbol1<-prune(arbol1,cp=arbol1$cptable[which.min(arbol1$cptable[,"xerror"]),"CP"])

yes no

1

2

4 5

3

6

12 13 7

clean < 88

wait < 78 num.child < 0.5

games < 88

Satisfecho.49 .51100%

Insatisfecho.73 .27

49%

Insatisfecho.80 .20

44%

Satisfecho.15 .85

5%

Satisfecho.25 .75

51%

Insatisfecho.68 .32

15%

Insatisfecho.86 .14

11%

Satisfecho.20 .80

4%

Satisfecho.07 .93

35%

yes no

1

2

4 5

3

6

12 13 7

Pruned Classification Tree

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 49 / 58

Page 54: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

Predicción

Utilizaremos los datos de “Validación”: sat.df[-dividir,]

newdata<-sat.df[-dividir,]p <- predict(parbol1, newdata)

Insatisfecho Satisfecho

Insatisfecho 100 22Satisfecho 36 91

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 50 / 58

Page 55: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Partición Recursiva con R

Y los datos de Sensibilidad y especificiadad de nuestro modelo:

## Confusion Matrix and Statistics#### Satispred## Insatisfecho Satisfecho## Insatisfecho 100 22## Satisfecho 36 91#### Accuracy : 0.7671## 95% CI : (0.7095, 0.8181)## No Information Rate : 0.5462## P-Value [Acc > NIR] : 3.959e-13#### Kappa : 0.535## Mcnemar's Test P-Value : 0.08783#### Sensitivity : 0.7353## Specificity : 0.8053## Pos Pred Value : 0.8197## Neg Pred Value : 0.7165## Prevalence : 0.5462## Detection Rate : 0.4016## Detection Prevalence : 0.4900## Balanced Accuracy : 0.7703#### 'Positive' Class : Insatisfecho##

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 51 / 58

Page 56: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Árboles de Regresión

Árboles de Regresión

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 52 / 58

Page 57: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Árboles de Regresión

Variable contínuaAhora vamos a trabajar con la variable overall:

arbol2<-rpart(overall~weekend+num.child+distance+rides+games+wait+clean, data=sat.df,

subset=dividir,method="anova")

## n= 251#### node), split, n, deviance, yval## * denotes terminal node#### 1) root 251 59268.5300 51.47012## 2) clean< 87.5 124 15367.9700 43.01613## 4) wait< 60.5 38 2931.8160 33.71053## 8) distance< 34.65876 28 1941.4290 31.14286 *## 9) distance>=34.65876 10 288.9000 40.90000 *## 5) wait>=60.5 86 7691.5930 47.12791## 10) num.child< 0.5 20 1188.9500 37.95000 *## 11) num.child>=0.5 66 4307.4550 49.90909## 22) rides< 82.5 34 1396.9410 46.17647 *## 23) rides>=82.5 32 1933.5000 53.87500 *## 3) clean>=87.5 127 26385.3500 59.72441## 6) num.child< 0.5 38 2774.7630 45.92105## 12) games< 87.5 28 1496.4290 43.35714 *## 13) games>=87.5 10 578.9000 53.10000 *## 7) num.child>=0.5 89 13279.0100 65.61798## 14) wait< 82.5 68 7187.4710 61.91176## 28) clean< 90.5 27 1986.9630 55.96296 *## 29) clean>=90.5 41 3615.8050 65.82927## 58) rides< 87.5 9 348.0000 57.00000 *## 59) rides>=87.5 32 2368.8750 68.31250## 118) wait< 71.5 15 871.6000 63.60000 *## 119) wait>=71.5 17 870.2353 72.47059 *## 15) wait>=82.5 21 2132.9520 77.61905## 30) clean< 93.5 13 525.0769 72.61538 *## 31) clean>=93.5 8 753.5000 85.75000 *

## n= 251#### node), split, n, deviance, yval## * denotes terminal node#### 1) root 251 59268.5300 51.47012## 2) clean< 87.5 124 15367.9700 43.01613## 4) wait< 60.5 38 2931.8160 33.71053## 8) distance< 34.65876 28 1941.4290 31.14286 *## 9) distance>=34.65876 10 288.9000 40.90000 *## 5) wait>=60.5 86 7691.5930 47.12791## 10) num.child< 0.5 20 1188.9500 37.95000 *## 11) num.child>=0.5 66 4307.4550 49.90909## 22) rides< 82.5 34 1396.9410 46.17647 *## 23) rides>=82.5 32 1933.5000 53.87500 *## 3) clean>=87.5 127 26385.3500 59.72441## 6) num.child< 0.5 38 2774.7630 45.92105## 12) games< 87.5 28 1496.4290 43.35714 *## 13) games>=87.5 10 578.9000 53.10000 *## 7) num.child>=0.5 89 13279.0100 65.61798## 14) wait< 82.5 68 7187.4710 61.91176## 28) clean< 90.5 27 1986.9630 55.96296 *## 29) clean>=90.5 41 3615.8050 65.82927## 58) rides< 87.5 9 348.0000 57.00000 *## 59) rides>=87.5 32 2368.8750 68.31250## 118) wait< 71.5 15 871.6000 63.60000 *## 119) wait>=71.5 17 870.2353 72.47059 *## 15) wait>=82.5 21 2132.9520 77.61905## 30) clean< 93.5 13 525.0769 72.61538 *## 31) clean>=93.5 8 753.5000 85.75000 *

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 53 / 58

Page 58: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Árboles de Regresión

yes no

1

2

4

8 9

5

10

11

22 23

3

6

12 13

7

14

28

29

58

59

118 119

15

30 31

clean < 88

wait < 60

distance < 35 num.child < 0.5

rides < 82

num.child < 0.5

games < 88 wait < 82

clean < 90

rides < 88

wait < 72

clean < 94

51n=251 100%

43n=124 49%

34n=38 15%

31n=28 11%

41n=10 4%

47n=86 34%

38n=20 8%

50n=66 26%

46n=34 14%

54n=32 13%

60n=127 51%

46n=38 15%

43n=28 11%

53n=10 4%

66n=89 35%

62n=68 27%

56n=27 11%

66n=41 16%

57n=9 4%

68n=32 13%

64n=15 6%

72n=17 7%

78n=21 8%

73n=13 5%

86n=8 3%

yes no

1

2

4

8 9

5

10

11

22 23

3

6

12 13

7

14

28

29

58

59

118 119

15

30 31

Regression Tree

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 54 / 58

Page 59: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Árboles de Regresión

#### Regression tree:## rpart(formula = overall ~ weekend + num.child + distance + rides +## games + wait + clean, data = sat.df, subset = dividir, method = "anova")#### Variables actually used in tree construction:## [1] clean distance games num.child rides wait#### Root node error: 59269/251 = 236.13#### n= 251#### CP nsplit rel error xerror xstd## 1 0.295523 0 1.00000 1.00262 0.090749## 2 0.174318 1 0.70448 0.71216 0.062483## 3 0.080052 2 0.53016 0.53734 0.051181## 4 0.066791 3 0.45011 0.50298 0.049938## 5 0.037038 4 0.38332 0.43109 0.037743## 6 0.026738 5 0.34628 0.41667 0.037355## 7 0.016485 6 0.31954 0.40286 0.034720## 8 0.015167 7 0.30306 0.39102 0.033168## 9 0.014415 8 0.28789 0.38618 0.032346## 10 0.011836 9 0.27347 0.38051 0.033079## 11 0.011801 10 0.26164 0.38164 0.033116## 12 0.010580 11 0.24984 0.37705 0.033132## 13 0.010000 12 0.23926 0.37563 0.033131

## CP nsplit rel error xerror xstd## 1 0.29552285 0 1.0000000 1.0026215 0.09074932## 2 0.17431815 1 0.7044771 0.7121625 0.06248340## 3 0.08005191 2 0.5301590 0.5373398 0.05118075## 4 0.06679073 3 0.4501071 0.5029815 0.04993813## 5 0.03703801 4 0.3833163 0.4310932 0.03774330## 6 0.02673768 5 0.3462783 0.4166726 0.03735489## 7 0.01648452 6 0.3195407 0.4028611 0.03472002## 8 0.01516707 7 0.3030561 0.3910190 0.03316817## 9 0.01441533 8 0.2878891 0.3861817 0.03234638## 10 0.01183575 9 0.2734737 0.3805123 0.03307890## 11 0.01180111 10 0.2616380 0.3816400 0.03311638## 12 0.01057964 11 0.2498369 0.3770522 0.03313192## 13 0.01000000 12 0.2392572 0.3756264 0.03313120

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 55 / 58

Page 60: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Árboles de Regresión

¿Cuál es el Cp óptimo?

## [1] 0.01

cp

X−

val R

elat

ive

Err

or

0.4

0.8

1.2

Inf 0.05 0.015 0.01

1 3 5 7 9 12

size of tree

No hay un Cp óptimo, nosquedamos con este modelo completo.

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 56 / 58

Page 61: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Árboles de Regresión

Veamos cómo se predice en un modelo “anova”. . . fácil.

pred2<-predict(arbol2, sat.df[-dividir,], type="vector")print(summary(pred2))

## Min. 1st Qu. Median Mean 3rd Qu. Max.## 31.14 43.36 53.10 51.27 55.96 85.75

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 57 / 58

Page 62: Vender o no vender ese es el problema (II) - Árboles de ...umh1480.edu.umh.es/wp-content/uploads/sites/44/... · Vender o no vender ese es el problema (II) ÁrbolesdeDecisión XaviBarber

Árboles de Regresión

0 20 40 60 80

040

80Predichos vs Observados

observados

Pre

dicc

ión

Xavi Barber (Cio-UMH) Vender o no vender ese es el problema (II) 58 / 58