20 · Regresión con árboles de decisión: reducción de varianza y predicción por tramos
Cambia el criterio de split de impureza a MSE — el árbol ahora minimiza la varianza dentro de los hijos y predice la media de los objetivos de cada hoja.
Para regresión, los árboles se dividen para minimizar la varianza (MSE) dentro de los nodos hijos — y predicen la MEDIA de los objetivos de entrenamiento de cada hoja.
Sin esto:
Sin esto, te perderías la versión de regresión de los árboles que potencia la mayoría de los baselines de regresión tabular.
El árbol de clasificación usó impureza (Gini o entropía) para medir cuán mezcladas están las clases de un nodo. Para regresión no hay clases — hay valores objetivo continuos. El reemplazo natural es la varianza (equivalentemente, MSE):
Criterio de reducción de varianza
En cada nodo, calcula el error cuadrático medio de los objetivos en ese nodo:
MSE(t) = (1/n) Σ (yᵢ − ȳ)²
El mejor split minimiza la suma ponderada de MSEs de los hijos:
Ganancia = MSE(padre) − [|izq|/|padre| · MSE(izq) + |der|/|padre| · MSE(der)]
Esto es equivalente a criterion='squared_error' (el default de sklearn para DecisionTreeRegressor).
Predicción de la hoja
Una vez que el árbol está crecido, cada hoja predice la media de sus objetivos de entrenamiento. La función resultante es una función escalón por tramos: solo puede tomar tantos valores distintos como hojas tenga.
La profundidad controla el número de escalones
Un árbol de profundidad 1 tiene 2 hojas → 2 valores predichos. Un árbol de profundidad 3 tiene hasta 8 hojas → hasta 8 valores predichos. Un árbol de profundidad 10 puede tener hasta 1024 hojas — suficiente para seguir de cerca los puntos de ruido individuales.
Cuándo los árboles superan a la regresión lineal
Para señales no lineales (saltos, mesetas, interacciones) el árbol gana porque no hace ningún supuesto de linealidad. Para una relación verdaderamente lineal, el árbol debe aproximar una rampa con una escalera — un modelo polinómico o lineal lo ajusta en un solo paso.
Python (in browser)
La forma de función escalón es la visual definitoria de la regresión por árbol. Cada meseta es una hoja; la altura de la meseta es la media de los objetivos de entrenamiento que cayeron en esa hoja. Con profundidad=3 y hasta 8 hojas el árbol captura la forma general de sin(x) pero no puede representar la curvatura suave.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
El árbol de profundidad 10 tiene potencialmente cientos de hojas y memoriza el ruido de entrenamiento. La curva de predicción oscila violentamente — un ajuste perfecto al conjunto de entrenamiento que fallará en datos de prueba. Esta es la demostración canónica de sobreajuste para los regressors de árbol.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
La comparación muestra un importante trade-off sesgo-varianza: un regresor lineal tiene un fuerte sesgo de linealidad que lo ayuda en datos lineales pero lo perjudica en señales no lineales. Un árbol de profundidad 4 no tiene sesgo de linealidad y aproxima la onda senoidal con 16 escalones.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Un solo árbol de regresión rara vez es el modelo final — su valor es como trampolín hacia los ensembles. Pero ajustar un árbol primero construye la intuición que hace que los random forests y el gradient boosting tengan sentido: solo estás preguntando '¿qué pasaría si combináramos cientos de esos árboles?'
Un regresor de árbol de decisión de profundidad 1 sobre 100 puntos produce un modelo con ¿cuántos valores predichos distintos?
- La regresión con árbol de decisión reemplaza la impureza (Gini/entropía) con la reducción de varianza (MSE). En cada nodo, elige el split que minimiza el MSE ponderado de los dos hijos.
- Las hojas predicen la media de sus objetivos de entrenamiento — produciendo una función escalón por tramos. Un árbol de profundidad d tiene como máximo 2^d valores predichos distintos.
- Los árboles más profundos sobreajustan el ruido; los árboles más superficiales subajustan. El trade-off sesgo-varianza está controlado directamente por max_depth.
- Los regressors de árbol no pueden extrapolar — las predicciones fuera del rango de entrenamiento se bloquean al valor de la hoja más cercana. Esta es una limitación importante para tareas de forecasting.
- Para señales no lineales, un árbol de profundidad 4 ya supera a la regresión lineal. Para señales lineales, la regresión lineal gana. El gradient boosting (capítulo 8) combina ambos mundos.
La unidad atómica de las máquinas de gradient boosting (XGBoost, LightGBM, CatBoost). Los árboles de regresión solos son infrecuentes, pero sus ensembles dominan el ML tabular.
Si lo quitas: El gradient boosting no tendría nada que potenciar.