Dpto. de Fundamentos del Análisis Económico. Universidad de Alicante
Cuantos más particiones, mejor ajuste.
PERO ¿dónde dividimos?, ¿cuántas particiones?
¿Cómo construimos estos árboles para una variable cuantitativa?
Dividir el espacio de predicción, \(\small x_1, x_2, \dots, x_p\) en regiones \(\small J\) distintas y no superpuestas, \(\small R_1, R_2, \dots, R_J\)
Cada observación que caiga en la región \(\small R_j\) tiene el mismo valor predicho: la media de \(\small y\) para las observaciones de entrenamiento en \(\small R_j\), \(\small \widehat{y}_{i\in R_j}= \bar{y}_{R_j}\)
Es INVIABLE considerar todas las particiones en \(\small J\) regiones
Alternativas heurísticas: un algoritmo “voraz” elige una opción localmente óptima en cada paso con la esperanza de llegar a una solución general óptima
En la parte alta, todas las observaciones pertenecen a una sola región
Se divide sucesivamente cada región en dos ramas: \(\small R_1(j,s) = \{X|X_j < s\}\) y \(\small R_2(j,s) = \{X|X_j \geq s\}\)
En cada nodo, se consideran todos los regresores \(\small X_j\) y todos los umbrales \(s\)
Se calcula el error de predicción por particionar de esa manera \(\small SCR_{j,s} = \sum_{i\in R_1(j,s)}(y_i-\widehat{y}_{R_1})^2 + \sum_{i\in R_2(j,s)}(y_i-\widehat{y}_{R_2})^2\)
SOLO una partición en cada iteración: se elige \(\small j\) y \(\small s\) con menor \(\small SCR_{j,s}\)
Repetimos el proceso particionando cada región de la iteración anterior
Se continua hasta que se cumpla un criterio de parada; p.e., ninguna región contiene más de \(5\) observaciones
Evitar árboles demasiados complejos (“overfitting”)
Hacer crecer un árbol “grande” con \(\small T_0\) nodos terminales y podarlo para quedarnos con un sub-árbol con \(\small T\) nodos terminales \[ \small min \sum_{m=1}^T \sum_{i \in R_m} (y_i-\widehat{y}_{R_m})^2 + \alpha |T| \] donde \(\small R_m\) es la región de \(\small m\)-nodo terminal
\(\small \alpha\) es el hiperparámetro de coste de complejidad de la poda, elegido por validación cruzada
Disyuntiva entre más o menos nodos finales: mejor ajuste (menor SCR) frente a mayor penalización por complejidad
Para un árbol de clasificación, se predice que cada observación pertenece a la clase más común en la región a la que pertenece en entrenamiento
También se pueden obtener la proporción de una clase \(\small k\) dentro de una región particular \(\small m\) de nodos terminales: \(\small \widehat{p}_{mk}\)
La métrica usada para hacer crecer los árboles NO puede ser SCR
Índice de Gini: medida de la varianza entre clases \(\small G=\sum_{k=1}^{K}\widehat{p}_{mk}(1-\widehat{p}_{mk})\)
Entropía (cruzada) \(\small D=\sum_{k=1}^{K}\widehat{p}_{mk}log(\widehat{p}_{mk})\)
Motores para árboles: rpart
(defecto), spark
y C5.0
(solo clasificación)
Depende de varios hiperparámetros elegidos por tuning
min_n
: mínimo número de observaciones en un nodo parar dividirse más
tree_depth
: máx. número de niveles de profundidad del árbol (no C5.0
)
cost_complexity
: coste de complejidad (sólo rpart
)
rpart.plot
Predicción: media o clase mayoritaria de las observaciones de entrenamiento en el nodo terminal que corresponde a una observación nueva
Importancia de las variables: la biblioteca vip
proporciona métricas sobre la influencia de cada predictor en las predicciones del modelo
algunas son específicas de un modelo: en árboles, la reducción total de la SCR o Gini debida a las particiones que usan una variable
otras generales: basadas en permutaciones, o en medidas de Shapley
Agregación de Bootstrap (bagging): procedimiento general para reducir la varianza, promediando \(\small \{x_i\}_{i=1}^n iid \sim (\mu, \sigma^2) \Rightarrow \bar{x} \sim (\mu, \sigma^2/n)\)
Podemos tomar \(B\) re-muestras del único conjunto de entrenamiento
En lugar de un único árbol complejo, se combinan muchos árboles diversos que pueden reflejar patrones sutiles
La variación muestral en las condiciones de “entrenamiento” se genera mediante “bootstrap”
Es un algoritmo específico de agregación de árboles que introduce aleatorización para eliminar correlación entre los árboles.
Se construyen varios árboles en muestras de entrenamiento de bootstrap
En cada partición de un árbol, se seleccionan aleatoriamente \(\small m \approx \sqrt{k}\quad\) regresores del total
Se mitiga la influencia de regresores fuertes, permitiendo una mayor diversidad en los árboles agregados
Mejor predicción a costa de la interpretación \(\Longrightarrow\) métodos de interpretabilidad ex-post para aprendizaje automático: importancia, Shapley values, partial dependence plots (PDP)
De manera similar a los p-valores o LASSO, la importacia destaca qué variables considerar en modelos más interpretables, como regresión o árboles
ranger
, randomForest
y spark
Depende de trees
, números de árboles, a considerar en la agregación (no genera “overfitting”) y de dos hiperparámetros
mtry
: número de variables a considerar en cada partición
min_n
: igual que en árboles