Unidad 5 - Regresión: árboles, bosques y la ruta Lasso

Analítica para los negocios · Semana 12 · 06327-ECO

Autor/a

PhD. Eduard F. Martínez-González

1 Cómo estudiar esta semana

Este documento es la versión escrita del video de la semana

  1. 🎬 Mira el video de la clase — el enlace está en Intu.
  2. 📖 Lee este documento — con un playground para entrenar árboles de regresión y un dial interactivo para sentir cómo el Lasso “apaga” variables.
  3. Presenta el quiz en Intu antes de la clase.

Las métricas de esta semana — MAE y RMSE — las construiste en el video 2 de la semana 10, y la maquinaria de árboles (cptable, poda 1-SE, bosques) es la de la semana 11. Hoy todo eso se recicla — lo nuevo es el problema (predecir números) y un competidor de la familia lineal: el Lasso.

Advertencia

Antes de venir a clase: un paquete nuevo (1 minuto)

A los paquetes de la semana pasada se suma el de la regresión regularizada:

install.packages("glmnet")

Verifica con library(glmnet). Los demás (rpart, rpart.plot, randomForest) ya los tienes.

El plan: la semana pasada predijiste categorías; esta semana predices números — notas, precios, cantidades. Primero el cambio mínimo: el árbol de la semana 11 con una sola pieza distinta (la hoja ya no vota: promedia). Luego el competidor nuevo: la ruta lineal, donde el modelo es una ecuación con coeficientes y el Lasso le pone un freno (λ) que encoge coeficientes y expulsa variables — un modelo que se poda solo y te entrega una fórmula publicable. Cerramos con el bosque en versión regresión y el torneo que enfrentará a todos en clase — con un final distinto al de la semana pasada.

2 Glosario de la semana

Árbol de regresión 🌳 La misma máquina de preguntas de la semana 11, pero la hoja ya no predice una categoría: predice el promedio del target de los casos de entrenamiento que cayeron ahí.

Homogeneidad (varianza) 🥣 El criterio de corte: en clasificación era pureza de clases; ahora es poca varianza — que los casos de cada grupo tengan valores parecidos del target.

Modelo lineal 📈 Predecir con una ecuación: target ≈ intercepto + coeficiente₁·variable₁ + coeficiente₂·variable₂ + … La forma más antigua (y comunicable) de predicción.

Coeficiente ⚖️ Cuánto cambia la predicción cuando la variable sube una unidad, con las demás quietas. “Cada m² suma 2.7 millones” es un coeficiente hablando.

Regularización 🧲 Penalizar los coeficientes grandes al entrenar. El modelo solo “compra” un coeficiente si el ajuste lo justifica — un impuesto a la complejidad que combate el sobreajuste.

Lasso 🪢 La regularización con superpoder: no solo encoge coeficientes — puede dejarlos exactamente en cero. Las variables con coeficiente cero salen del modelo: selección automática.

Lambda (λ) 🎚️ La fuerza del freno del Lasso. λ = 0: modelo lineal sin freno. λ enorme: todos los coeficientes en cero (el modelo predice el promedio). Se elige con validación cruzada.

lambda.1se ✂️ La regla 1-SE de la semana 11, versión Lasso: el λ más simple cuyo error de CV empata (dentro de un error estándar) con el mínimo. cv.glmnet te lo entrega listo.

Bosque de regresión 🌲 Los 500 árboles de la semana 11, pero en vez de votar, promedian sus predicciones numéricas. Mismo bootstrap, misma amnesia de variables, misma pérdida de legibilidad.

Residual 🔍 Lo que el modelo no explicó: real − predicho, caso por caso. Mirar dónde se concentran los residuales grandes dice más que cualquier métrica promedio.

3 La revancha de PronosticaU

¿Recuerdas el encargo 2 de la semana 10? Una universidad quería pronosticar la nota final de sus estudiantes para disparar alertas tempranas, y el proveedor PronosticaU ofrecía su modelo estrella… que tú mismo auditaste y hundiste: perdía contra la regla tonta de predecir el promedio (MAE 0.55 contra 0.40 del baseline). La universidad canceló el contrato.

Ahora te llegó el correo: “Ya que tumbaron al proveedor — constrúyanlo ustedes. Necesitamos un pronosticador que le gane al promedio, y necesitamos entender qué mira para confiar en él.”

Esta semana tienes tres formas de construirlo, y las tres compiten en clase:

  1. El árbol de regresión — la máquina de la semana 11 con una pieza cambiada.
  2. El Lasso — la ruta lineal con freno: una ecuación que se poda sola.
  3. El bosque de regresión — los 500 árboles, ahora promediando.

El mapa completo del aprendizaje supervisado

Con esta semana cierras las dos casillas grandes de la semana 5: target categórico → clasificación (semana 11); target numérico → regresión (hoy). Métricas de la semana 10 en ambas. La semana 13 abre la caja distinta: cuando NO hay target (segmentación).

4 De categorías a números: ¿qué cambia?

Casi nada — y esa es la buena noticia. La disciplina completa sobrevive intacta: partir train/test, baseline, validación cruzada, test una sola vez. Lo que rota es el contenido de tres casillas:

Semana 11 (clasificación) Semana 12 (regresión)
El target Categoría (Si/No) Número continuo (3.4, 250M)
La hoja del árbol predice La clase más frecuente El promedio del grupo
“Buen corte” significa Grupos puros (una sola clase) Grupos de poca varianza (valores parecidos)
Métricas Matriz, accuracy, precisión, recall MAE y RMSE (semana 10, video 2)
Baseline Clase mayoritaria Predecir el promedio de train
Advertencia

¿Regresión o clasificación? Lo decide la pregunta, no el algoritmo

“¿Qué nota sacará?” → número → regresión. “¿Está en riesgo de perder?” → categoría → clasificación. La misma base de datos sirve para ambas; lo que cambia es qué le prometiste al negocio. Ya viviste esta disyuntiva en la práctica de la semana 10 — y va a reaparecer en tu proyecto final.

Si quieres la intuición del árbol de regresión narrada antes de leerla, este video del canal Codificando Bits (material complementario) recorre el algoritmo CART en versión regresión:

5 El árbol de regresión: la hoja es un promedio

5.1 La pieza que cambia

La estructura es idéntica a la semana pasada: preguntas binarias, nodos, ramas, frenos (maxdepth, cp, mínimo por hoja). Los dos cambios:

  1. El criterio de corte: el árbol ya no busca grupos puros — busca grupos homogéneos en el número: que las notas (o precios) de cada lado del corte se parezcan entre sí (poca varianza interna).
  2. La predicción de la hoja: el promedio del target de los casos de entrenamiento que cayeron ahí.

La predicción de una hoja de regresión

\[\hat{y}_{\text{hoja}} = \frac{1}{n} \sum_{i \in \text{hoja}} y_i\]

Si una hoja agrupa estudiantes con notas 3.2, 3.5, 3.8 y 4.0, cualquier estudiante nuevo que caiga ahí recibe la predicción (3.2 + 3.5 + 3.8 + 4.0) / 4 = 3.625. El árbol no inventa números: devuelve el promedio de los casos de entrenamiento que más se parecen al nuevo.

Consecuencia curiosa: un árbol de k hojas solo puede predecir k valores distintos. Su predicción es una escalera, no una rampa — por eso a los árboles les cuesta extrapolar suavemente.

5.2 Un árbol con profundidad 1

8 estudiantes, dos variables (nota del parcial 1 y asistencia), target = nota final:

Estudiante Parcial 1 Asistencia (%) Nota final
A 2.0 55 2.3
B 2.5 60 2.6
C 2.8 65 2.9
D 3.0 70 3.1
E 3.5 75 3.6
F 3.8 80 3.9
G 4.2 85 4.1
H 4.5 90 4.4

El corte que produce los grupos más homogéneos es Parcial 1 ≥ 3.3:

Árbol de regresión profundidad 1 — predicción de nota final Nodo raíz pregunta si Parcial 1 es mayor o igual a 3.3. Rama izquierda lleva a hoja con promedio 2.73. Rama derecha lleva a hoja con promedio 4.0. NODO RAÍZ ¿Parcial 1 ≥ 3.3? No (< 3.3) Sí (≥ 3.3) HOJA · predicción numérica ŷ = 2.73 Casos A, B, C, D (n = 4) HOJA · predicción numérica ŷ = 4.00 Casos E, F, G, H (n = 4) Profundidad = 1 · La predicción es el promedio de notas en cada hoja

5.3 ¿Y con una pregunta más?

Árbol de regresión profundidad 2 — predicción de nota final El árbol hace una segunda pregunta en la rama izquierda sobre asistencia, generando tres hojas con promedios más precisos. NODO RAÍZ · profundidad 0 ¿Parcial 1 ≥ 3.3? No HOJA ŷ = 4.00 E, F, G, H (n = 4) NODO INTERNO · profundidad 1 ¿Asistencia ≥ 63%? No HOJA ŷ = 2.45 A, B (n = 2) HOJA ŷ = 3.00 C, D (n = 2) Profundidad = 2 · La segunda pregunta refina la predicción en el grupo de notas bajas

La segunda pregunta afina la escalera: tres peldaños en vez de dos. Y aplica todo lo de la semana 11: cada nivel extra refina y arriesga memorizar — por eso el ritual es el mismo: dejar crecer, mirar la cptable, podar con la regla 1-SE. No aprendas nada nuevo aquí: reutiliza.

6 Explóralo tú mismo: el árbol que predice números

El playground de la semana 11, versión regresión. Dos pestañas: el Mapa de predicción (el espacio partido en regiones, ahora coloreadas por el valor que predicen) y la Estructura del árbol (los promedios en cada hoja).

¿Qué explorar?

  1. Con profundidad 1: ¿cuántos valores distintos puede predecir el árbol? Mira la escalera en el Mapa.
  2. Sube la profundidad a 5 o 6: ¿el MAE de train sigue bajando? ¿Y el de test? El dial de la semana 10, tercera aparición.
  3. Compara MAE y RMSE en el panel: ¿cuándo se separan? ¿Qué te dice esa brecha (pista: video 2 de la semana 10)?
  4. En la pestaña Árbol: ¿puedes leer el promedio que predice cada hoja?
Dataset
Profundidad máxima
3
Mín. muestras por hoja
5
Mín. muestras para dividir
10
MAE
Train
Test
RMSE
Train
Test
Baseline MAE (promedio global)
Elige un dataset y entrena el árbol para comenzar

7 La ruta lineal: el Lasso

El árbol responde con reglas y escalones. Hay otra tradición — más vieja que el Machine Learning — que responde con una ecuación:

\[\text{nota final} \approx b_0 + b_1 \cdot \text{parcial}_1 + b_2 \cdot \text{parcial}_2 + b_3 \cdot \text{tareas} + \dots\]

Cada coeficiente \(b\) dice cuánto suma (o resta) una unidad de esa variable, con las demás quietas. Es el modelo más comunicable que existe: “cada punto del parcial 2 aporta 0.27 a la nota final” cabe en una frase de gerencia. La regresión lineal clásica elige los \(b\) que minimizan el error cuadrático en train — hasta ahí, nada nuevo bajo el sol.

El problema aparece con el sospechoso de siempre: el sobreajuste. Con muchas variables (y peor si algunas son ruido o se duplican entre sí), la recta tiene libertad de sobra para acomodarse al ruido de train: coeficientes enormes, signos absurdos, métricas infladas. El modelo lineal también necesita un freno.

El freno Lasso: un impuesto a los coeficientes

El Lasso re-escribe el objetivo del entrenamiento: minimiza el error más una multa proporcional al tamaño total de los coeficientes, con una perilla λ que fija la tarifa:

\[\min_b \; \underbrace{\text{error de ajuste}}_{\text{lo de siempre}} \; + \; \lambda \sum_j |b_j|\]

Consecuencias:

  • Cada variable debe pagarse su puesto: solo conserva coeficiente si reduce el error más de lo que cuesta su multa.
  • Con λ suficiente, los coeficientes de las variables flojas caen exactamente a cero — quedan fuera del modelo. El Lasso se poda solo, como el árbol con prune().
  • λ es el dial de complejidad (¡otra vez!): λ = 0 es la recta sin freno (riesgo de memorizar); λ gigante deja el modelo vacío prediciendo el promedio (subajuste).

¿Y quién elige λ? La respuesta ya la sabes de memoria: la validación cruzada. La función cv.glmnet() prueba una malla de valores de λ con CV de 10 pliegues y te reporta dos candidatos: lambda.min (el del error mínimo) y lambda.1se — el más simple que empata con el mínimo. Sí: la regla 1-SE de la semana 11, con otro nombre de variable. En este curso usamos lambda.1se.

Siente el dial — mueve λ y mira qué les pasa a los coeficientes del pronosticador de notas:

🎚️ El dial λ — ¿qué variables sobreviven al freno?
Freno λ λ₂
Variables en el modelo
Error de CV (MAE)

Coeficientes y errores ilustrativos — la forma del recorrido es la típica; los valores exactos los calcularás en clase con cv.glmnet. Fíjate en la moraleja del dial: el Lasso convierte la selección de variables — que en la era manual era un debate de comité — en una consecuencia matemática del freno. Y el orden de expulsión es información de negocio pura: te dice qué mira (y qué ignora) el fenómeno.

8 El bosque, versión regresión

El Random Forest de la semana 11 se recicla con un solo cambio: los 500 árboles ya no votan una clase — cada uno predice su número y el bosque entrega el promedio. Todo lo demás es idéntico: bootstrap, amnesia de variables en cada corte, importancia de variables como consuelo de interpretabilidad, y la misma advertencia — es una caja difícil de explicar.

(De paso, un nombre que oirás en la industria: XGBoost, otro ensamble de árboles que en vez de promediarlos en paralelo los entrena en cadena, cada árbol corrigiendo los errores del anterior. Es el campeón habitual de las competencias de predicción; su lógica fina queda fuera de este curso, pero al leerlo en una oferta de trabajo ya sabes de qué familia viene.)

Tu menú de regresión queda así:

Lasso Árbol podado Bosque
Entrega Una ecuación con coeficientes Reglas legibles (escalera) Solo la predicción + importancia
Interpretabilidad 🟢 La fórmula se publica 🟢 Se dibuja 🟠 Caja semi-negra
Captura no linealidades 🟠 No (es una recta) 🟢 Sí (a escalones) 🟢 Sí (suavizadas)
Selección de variables 🟢 Automática (ceros) 🟢 Implícita (qué corta) 🟠 Ranking, no selección
Típicamente gana cuando… El patrón es lineal Hay reglas de quiebre claras Patrones complejos y mucha interacción

¿Y quién gana el torneo? La semana pasada ganó el bosque y quizás concluiste “el bosque siempre gana”. Esta semana te espera una sorpresa que vale más que cualquier regla de pulgar: el ganador depende de la forma del patrón. Cuando el proceso que genera los datos es (casi) lineal, la recta con freno le gana a quinientos árboles — y además se deja leer. Por eso el profesional no se casa con un modelo: monta el torneo y deja que el test hable.

9 El torneo y el diagnóstico

El guion de la clase — cuarta vez que lo ves, primera vez con tres familias de modelos:

1
Parte train/test y calcula el baseline: predecir siempre el promedio de train. Su MAE y RMSE son la vara.
2
Entrena los tres candidatos — Lasso (con cv.glmnet eligiendo λ), árbol (podado con 1-SE) y bosque. Cada uno usa su propia CV interna; el test sigue intacto.
3
Evalúa todos en test, una sola vez: MAE y RMSE por modelo, en una tabla comparativa contra el baseline.
4
Diagnostica al ganador antes de firmarlo: el gráfico predicho-vs-real y la brecha MAE–RMSE. La métrica promedio aprueba el modelo; el diagnóstico te dice dónde falla.

Dos herramientas de diagnóstico que usarás en clase:

  • El gráfico predicho vs. real: un punto por caso del test; la diagonal es la perfección. Nubes pegadas a la diagonal = modelo sano; abanicos que se abren en un extremo = el modelo falla justo ahí (¿notas altas subestimadas? ¿apartamentos de lujo mal tasados?).
  • La brecha MAE–RMSE: la aprendiste en la semana 10 y aquí paga arriendo — si el RMSE queda muy por encima del MAE, el modelo comete embarradas ocasionales. Encuentra en qué casos (mira los residuales más grandes) y decide si ese segmento necesita tratamiento aparte.

10 ¿Y esto cómo se ve en tu semestre?

  • La práctica: la revancha completa — el pronosticador de notas de la universidad, con el torneo baseline → Lasso → árbol → bosque, la lectura de los coeficientes y el gráfico predicho-vs-real. Spoiler responsable: el podio de esta semana no es el de la semana pasada.
  • El taller: la inmobiliaria InmoValle quiere un avaluador instantáneo de apartamentos para su página web. Torneo completo, lectura de la ecuación del Lasso (¿cuánto vale un m²? ¿qué variable sale expulsada?) y un memorando con la letra menuda.
  • La semana 13: se acaba el target — segmentación con k-means, el mundo no supervisado.
  • Tu proyecto final: si tu pregunta es de regresión (predicción), este es el arsenal completo, con una regla de oro para la sustentación: MAE/RMSE en test, contra el baseline del promedio, y el jurado siempre pregunta por la brecha MAE–RMSE.

11 Para pensar 🤔

  1. El coeficiente del Lasso dice: “cada baño adicional suma ~12 millones al precio”. Un cliente concluye: “entonces si construyo un baño, mi apartamento vale 12 millones más”. ¿Por qué esa lectura es un salto al vacío? (Pista: el modelo describe el mercado, no interviene en él.)
  2. Un árbol de regresión con 6 hojas solo puede predecir 6 precios distintos. ¿Por qué eso casi no le pesa en el MAE global, pero puede ser un problema serio si la inmobiliaria lo usa para tasar apartamentos muy por fuera del rango histórico?
  3. Tu Lasso expulsó la variable habitaciones (coeficiente 0) pero el bosque le da importancia media. ¿Contradicción? (Pista: ¿qué otra variable del dataset ya “cuenta” las habitaciones?)

12 Checklist de salida

Al terminar el video y esta lectura debes poder explicar:

13 Preguntas de comprensión

1. Una hoja de un árbol de regresión contiene 5 apartamentos de entrenamiento con precios 210, 230, 250, 260 y 300 millones. (a) ¿Qué precio predice esa hoja para un apartamento nuevo que caiga ahí? (b) Si el apartamento nuevo realmente vale 410 millones, ¿cuál es su residual y qué pudo salir mal?

Ver respuesta
  1. El promedio: (210+230+250+260+300)/5 = 250 millones. (b) Residual = real − predicho = 410 − 250 = +160 millones: el modelo subestimó gravemente. Causa probable: el apartamento nuevo es de un segmento que casi no existe en esa hoja (o en el entrenamiento) — p. ej., un piso de lujo. Los árboles no extrapolan: nunca predicen por fuera del rango de promedios de sus hojas, así que los casos extremos siempre quedan recortados hacia el centro.

2. Corres cv.glmnet y te reporta lambda.min = 0.01 (error CV 0.220) y lambda.1se = 0.04 (error CV 0.228, y con dos variables menos). ¿Cuál eliges para el modelo del proyecto y cómo defiendes la elección ante el jurado?

Ver respuesta

lambda.1se. La diferencia de error (0.228 vs 0.220) está dentro del ruido de la propia CV — estadísticamente es un empate — y el modelo de lambda.1se es más simple: dos variables menos que mantener, explicar y recolectar. Es la misma lógica de la poda 1-SE de los árboles: entre modelos empatados, el más simple generaliza mejor y se defiende mejor. Ante el jurado: “elegí el modelo más parsimonioso cuyo desempeño de validación empata con el mínimo”.

3. El torneo de una cadena de tiendas para pronosticar ventas semanales termina así (MAE en test): baseline 48, Lasso 31, árbol 29, bosque 22. Pero el gerente comercial necesita explicar a cada tienda por qué su pronóstico es el que es. ¿Qué recomiendas: el bosque, el árbol, u otra cosa?

Ver respuesta

Depende del uso, y se puede partir en dos: para planear inventario (donde solo importa acertar), el bosque — 6 puntos menos de MAE que el árbol son plata. Para conversar con las tiendas, el árbol de 29 (o el Lasso) como “vocero”: sus reglas explican la lógica general del pronóstico. Es la solución vocero de la semana 11: decidir con el modelo potente, comunicar con el legible — documentando que son dos piezas con roles distintos. Recomendar un único modelo “para todo” era la trampa de la pregunta.

4. En el dataset de apartamentos, area_m2 y habitaciones están fuertemente correlacionadas (los apartamentos grandes tienen más cuartos). El Lasso dejó habitaciones casi en cero. ¿Significa que las habitaciones “no importan” para el precio? ¿Qué frase honesta pondrías en el informe?

Ver respuesta

No. Significa que, con el área ya en el modelo, las habitaciones no agregan información adicional: el área ya las “cuenta”. Si quitaras el área, las habitaciones heredarían un coeficiente grande. Frase honesta: “el número de habitaciones no aporta poder predictivo adicional una vez conocida el área” — muy distinto de “las habitaciones no importan”. Los coeficientes del Lasso se leen siempre condicionados a las demás variables del modelo (y describen asociación, no causalidad).

14 Material adicional


Los recursos de esta semana → esta teoría continúa en la práctica guiada en clase y cierra con el taller evaluable.