Unidad 5 - Clasificación: árboles y bosques
Analítica para los negocios · Semana 11 · 06327-ECO
1 Cómo estudiar esta semana
Este documento es la versión escrita del video de la semana
- 🎬 Mira el video de la clase — el enlace está en Intu.
- 📖 Lee este documento — el mismo recorrido con un playground interactivo para entrenar árboles tú mismo y una perilla de umbral para sentir el trade-off precisión/recall.
- ✅ Presenta el quiz en Intu antes de la clase.
Las métricas (matriz de confusión, accuracy, precisión, recall) ya las construiste en la semana 10 — aquí no se re-explican: se usan sin anestesia. Si algo se te borró, ve al glosario de esa semana antes de seguir.
Antes de venir a clase: 3 paquetes (2 minutos, con internet)
En la práctica entrenarás modelos de verdad. Instala los paquetes antes de llegar — en clase, con el wifi del salón colapsado, es un mal momento:
install.packages(c("rpart", "rpart.plot", "randomForest"))Verifica que quedaron: library(randomForest) no debe arrojar error.
El plan: la semana pasada fuiste el juez; esta semana eres el ingeniero. Primero abrimos el capó del modelo más legible del Machine Learning — el árbol de clasificación — y vemos cómo aprende sus preguntas. Luego lo entrenas tú en un playground. Después conectamos el pipeline completo de la semana 10 (baseline → validación cruzada → test). Y cerramos con dos ideas que separan al aficionado del profesional: los bosques aleatorios (cientos de árboles votando) y el umbral de decisión — la perilla con la que el negocio, no el algoritmo, decide qué error prefiere cometer.
2 Glosario de la semana
Nodo raíz y hojas 🌱 La raíz es la primera pregunta del árbol; las hojas son el final del recorrido: la predicción (la clase mayoritaria de los casos de entrenamiento que cayeron ahí).
Profundidad 📏 Cuántos niveles de preguntas encadena el árbol. Es su dial de complejidad — el mismo dial de la semana 10: poca = subajuste, mucha = memorizador.
Impureza (Gini) 🥣 Qué tan mezcladas quedan las clases en un grupo. El árbol prueba todos los cortes posibles y elige el que deja los grupos más puros. Impureza 0 = grupo de una sola clase.
Poda y cp ✂️ Recortar ramas que no mejoran el error de validación. En rpart, el parámetro de complejidad cp controla cuánto debe aportar una división para sobrevivir.
Hiperparámetro 🎛️ Las perillas que TÚ fijas antes de entrenar (profundidad, cp, mínimo por hoja…). No las aprende el modelo — se eligen con validación cruzada.
CART 🌳 Classification and Regression Trees — el algoritmo de árboles que usa rpart. La misma máquina sirve para clasificar (esta semana) y para predecir números (la próxima).
Bootstrap y bagging 🎒 Bootstrap: remuestrear los datos con reemplazo para crear versiones alternativas del dataset. Bagging: entrenar un modelo en cada versión y promediar/votar sus predicciones.
Random Forest 🌲🌲 Cientos de árboles, cada uno entrenado con un bootstrap distinto y un subconjunto aleatorio de variables en cada corte. Decide por votación. Menos interpretable, mejor generalización.
Importancia de variables 🏆 El ranking que entrega el bosque: cuánto contribuyó cada variable a separar las clases. El consuelo de interpretabilidad cuando ya no puedes dibujar el modelo.
Umbral de decisión 🚪 El modelo no dice “Aprobado”: dice “probabilidad 0.73 de Aprobado”. El umbral convierte probabilidad en decisión — y moverlo intercambia precisión por recall.
3 El modelo misterioso, al descubierto
En la práctica de la semana 10 auditaste un “modelo misterioso” que decidía créditos: le calculaste la matriz de confusión, lo comparaste contra el baseline y firmaste su veredicto — sin saber qué había adentro. Hora de confesarlo: era un árbol de clasificación. Hoy construyes uno igual (de hecho, uno mejor).
¿Y por qué empezar el zoológico de modelos por los árboles? Porque piensan como un analista. Cuando un analista de crédito evalúa una solicitud, no aplica una fórmula ciega — hace preguntas en secuencia:
“¿Tiene ingresos superiores a 3 millones?” → No: rechazar (alto riesgo). → Sí: siguiente pregunta.
“¿Su historial crediticio es positivo?” → No: pedir garantías. → Sí: aprobar.
Eso es un árbol de clasificación: preguntas binarias encadenadas que terminan en la predicción de una categoría. La diferencia con el analista es que el árbol no hereda sus preguntas de un manual — las aprende de los datos, midiendo qué corte separa mejor las clases. Y a diferencia de casi cualquier otro modelo, el resultado se puede dibujar y leer completo: por eso los bancos y los reguladores los aman.
Dónde estás parado en el pipeline
Semana 10, pasos 5-6: evaluar y reportar (ya lo dominas). Esta semana, paso 4: entrenar y ajustar — con la validación cruzada eligiendo los hiperparámetros, como se prometió. El baseline sigue siendo la vara y el test se sigue visitando una sola vez. Nada de lo de la semana pasada se descarta: se ensambla.
4 El árbol: una máquina de preguntas
4.1 Vocabulario mínimo
Nodo raíz — La primera pregunta. El árbol la elige midiendo qué variable y qué corte separan mejor las clases.
Nodo interno — Preguntas intermedias: cada una refina el subgrupo que llegó hasta ahí.
Hoja — El final: la predicción. Es la clase más frecuente entre los casos de entrenamiento que cayeron en ese nodo.
Profundidad — Cuántos niveles de preguntas. Profundidad 1 = una sola pregunta. Es el dial de complejidad del árbol.
4.2 Cómo aprende: el corte más puro
Para elegir cada pregunta, el árbol ensaya todos los cortes posibles en todas las variables y mide la impureza que deja cada uno: qué tan mezcladas quedan las clases a cada lado. Un corte que separa perfectamente aprobados de rechazados deja impureza 0 (corte de oro); un corte que deja mitad y mitad a cada lado no sirvió de nada. El árbol se queda con el mejor corte, divide, y repite el proceso dentro de cada rama hasta toparse con un freno: profundidad máxima, muy pocos casos, o grupos ya puros.
Si quieres ver la intuición del algoritmo narrada paso a paso, este video del canal Codificando Bits (material complementario, 15 min) lo hace muy bien:
4.3 Un árbol con profundidad 1
Míralo con números pequeños: 8 solicitudes de crédito, dos variables (ingreso mensual en millones e historial crediticio: 1 = positivo, 0 = negativo).
| Solicitante | Ingreso (M) | Historial | Decisión real |
|---|---|---|---|
| A | 1.5 | 0 | Rechazado |
| B | 2.0 | 0 | Rechazado |
| C | 2.5 | 1 | Rechazado |
| D | 3.0 | 0 | Rechazado |
| E | 3.5 | 1 | Aprobado |
| F | 4.0 | 1 | Aprobado |
| G | 4.5 | 0 | Aprobado |
| H | 5.0 | 1 | Aprobado |
El árbol ensaya todos los cortes y encuentra que Ingreso ≥ 3.5M es el que mejor separa:
¿Cómo predice un caso nuevo?
Llega una solicitud con ingreso de 2.8M: ¿Ingreso ≥ 3.5M? → No → hoja izquierda → Rechazado. Llega otra con 4.2M: → Sí → hoja derecha → Aprobado. Determinista: mismo dato, misma respuesta, y puedes explicar por qué — intenta eso con una red neuronal.
4.4 ¿Y con una pregunta más?
Con profundidad 1, el solicitante C (ingreso 2.5M pero historial positivo) quedó rechazado por caer en el grupo de ingresos bajos. Con profundidad 2, el árbol puede hacer una segunda pregunta dentro de esa rama:
La segunda pregunta rescata a C. Pero ojo con la moraleja completa: cada nivel extra hace el modelo más fino y más capaz de memorizar ruido. La hoja de C tiene n = 1 — ¿aprendió un patrón o se aprendió a C? Con 8 datos no se puede saber; con 240 sí, y para eso está la validación cruzada de abajo.
5 Explóralo tú mismo: entrena tu primer árbol
Experimenta con los hiperparámetros. El playground tiene dos pestañas: el Mapa de decisión (cómo el árbol parte el espacio en regiones de color) y la Estructura del árbol (las preguntas, dibujadas). Los dos datasets te van a sonar: aprobación de crédito (la práctica de esta semana) y churn de clientes (el taller).
¿Qué explorar?
- Con profundidad 1: ¿cuál es la única pregunta? Cambia a la pestaña Árbol para leerla.
- Sube la profundidad a 6 y baja el mínimo por hoja a 1: ¿qué pasa con la accuracy de train? ¿Y la de test? Estás viendo el dial de la semana 10, ahora con un modelo real.
- Cada línea del Mapa es un nodo del Árbol: verifica la correspondencia.
- Pulsa Reiniciar datos varias veces con los mismos parámetros: ¿el árbol cambia mucho? Esa inestabilidad es la debilidad que los bosques van a curar.
6 El pipeline del clasificador: baseline → CV → test
Ya sabes entrenar un árbol. Ahora insértalo en la disciplina de la semana 10 — este es exactamente el guion de la práctica:
rpart corre la CV de 10 pliegues automáticamente mientras entrena, y su tabla reporta el error de CV (xerror) para cada tamaño del árbol. Como la CV también trae ruido, la regla profesional no es "el mínimo exacto" sino el árbol más pequeño que empata con el mínimo dentro de un margen de un error estándar (la regla 1-SE). Con ese cp podas usando prune().El memorizador no siempre se estrella en el test — y aun así está mal
En la práctica entrenarás un árbol sin frenos que saca 100% en train. A veces, con datos muy limpios, ese árbol hasta sobrevive dignamente en el test — ¿entonces cuál es el problema? Tres: (1) su 100% de train es una mentira que no puedes reportar; (2) con 12 hojas es ilegible y quebradizo — otro muestreo de datos y sale un árbol distinto; (3) la validación cruzada, que promedia 10 exámenes en vez de uno, casi siempre muestra que las ramas extra no compran nada (el xerror deja de bajar… y luego sube). Regla profesional: entre dos árboles con el mismo error de CV, gana el más pequeño. Se llama principio de parsimonia y te va a salvar en el proyecto final.
7 Del árbol al bosque
El árbol tiene dos virtudes (legible, rápido) y una debilidad seria: es inestable. Cambia 20 filas del entrenamiento y puede cambiar la pregunta de la raíz — y con ella, todo el árbol. Un modelo que se transforma con cada brisa de datos no inspira confianza.
La cura es contraintuitiva: no entrenes un árbol; entrena quinientos.
La receta del Random Forest, en tres ingredientes
- Bootstrap 🎒 — Crea 500 versiones alternativas del dataset remuestreando filas con reemplazo (cada versión duplica unas filas y omite otras).
- Un árbol por versión, con amnesia parcial 🌳 — Entrena un árbol profundo en cada una, pero con una regla extraña: en cada corte, el árbol solo puede mirar un subconjunto aleatorio de variables. Así los 500 árboles no terminan siendo clones que preguntan todos lo mismo (sin esto, todos abrirían con la variable más fuerte y se equivocarían en lo mismo).
- Votación 🗳️ — Para predecir un caso nuevo, los 500 árboles votan y gana la mayoría. También obtienes la proporción de votos — la probabilidad que usaremos en el umbral.
¿Por qué funciona? Cada árbol individual es mediocre y sobreajustado a su versión de los datos — pero sus errores son distintos, y al votar, los errores individuales se cancelan mientras el patrón común se refuerza. Es la sabiduría de las multitudes aplicada a modelos: quinientos peritos imperfectos que se equivocan en cosas diferentes le ganan a un perito perfecto en sus propios recuerdos.
El precio: ya no puedes dibujar el modelo. Quinientos árboles votando no caben en una diapositiva, y el regulador bancario que amaba tu árbol ahora frunce el ceño. Los consuelos:
- Importancia de variables: el bosque reporta cuánto contribuyó cada variable a separar las clases — un ranking que sí cabe en la diapositiva y suele ser la parte más citada del informe.
- El árbol podado como vocero: en la práctica profesional es común usar el bosque para decidir y un árbol simple para explicar la lógica general.
| Árbol (CART) | Random Forest | |
|---|---|---|
| Interpretabilidad | 🟢 Se dibuja y se lee completo | 🟠 Solo importancia de variables |
| Desempeño típico | 🟠 Bueno | 🟢 Mejor (casi siempre) |
| Estabilidad | 🟠 Cambia con los datos | 🟢 La votación lo estabiliza |
| Costo de cómputo | 🟢 Instantáneo | 🟠 500 árboles (aún rápido en estas bases) |
| Cuándo elegirlo | Explicar la decisión es obligatorio | Predecir bien es lo que manda |
8 El umbral: la perilla que controla el negocio
Queda la idea más importante de la semana para tu vida profesional. El bosque no dice “Aprobado” — dice “el 73% de mis árboles votó Aprobado”. Esa probabilidad se convierte en decisión solo cuando alguien fija un umbral: ¿aprobamos desde 0.5? ¿Solo desde 0.8?
Y ese alguien no debería ser el algoritmo. Mueve la perilla y mira lo que le pasa a la matriz:
La lección en una frase: precisión y recall no se maximizan a la vez — se intercambian moviendo el umbral, y la tasa de cambio la decide el costo de cada error. La tabla de la semana 10, ahora con perilla:
| Situación | El error caro | El umbral se mueve hacia… |
|---|---|---|
| Crédito (impago caro) | FP: aprobar a quien no paga | Arriba (estricto): más precisión |
| Retención de clientes | FN: no ver al que se fuga | Abajo (manga ancha): más recall |
| Detección de fraude | FN: dejar pasar un fraude | Abajo: más recall |
¿Y el ROC-AUC que sale en los blogs? (opcional)
Si mueves el umbral de 0 a 1 y anotas el desempeño en cada punto, dibujas una curva (ROC). El área bajo esa curva (AUC) resume qué tan bien el modelo ordena los casos, independiente del umbral: AUC = 1 es orden perfecto, 0.5 es barajar. Útil para comparar modelos antes de discutir umbrales — pero el umbral final sigue siendo una decisión de negocio. En este curso te basta con saber leerlo.
9 ¿Y esto cómo se ve en tu semestre?
- La práctica de esta semana: el torneo completo sobre la base de crédito — baseline → árbol legible → el memorizador y su poda con CV → Random Forest → y la perilla del umbral con las probabilidades del bosque. Cada paso con sus métricas de la semana 10.
- El taller: ConectaTel, un proveedor de internet, te entrega su base de clientes para predecir fugas. Clases desbalanceadas, un baseline traicionero y una métrica que no es la accuracy — todo lo de estas dos semanas, sin guía.
- La próxima semana: la misma maquinaria (CART, bosque, CV) aplicada a predecir números — más un competidor nuevo de la familia lineal, el Lasso.
- Tu proyecto final: si tu pregunta es de clasificación, este es tu arsenal: baseline + árbol podado + bosque, comparados con la métrica que tu costo de error manda, y un umbral justificado en la sustentación.
10 Para pensar 🤔
- Tu bosque de 500 árboles saca precisión 0.97. El gerente pregunta: “¿y por qué el modelo rechazó al cliente 2041?” — ¿qué le puedes responder, y qué NO le puedes responder? ¿Cómo lo resolverías con lo aprendido hoy?
- En el playground, el mínimo de muestras por hoja en 1 permite hojas de un solo caso — como la hoja de C en el ejemplo de 8 solicitantes. ¿Por qué una hoja con n = 1 es sospechosa por diseño?
- Una aseguradora usa umbral 0.5 para marcar reclamos como fraude y los manda a revisión humana (que cuesta poco). ¿Deberían subir o bajar el umbral? ¿Qué cambia si en vez de revisión humana la marca rechaza el reclamo automáticamente?
11 Checklist de salida
Al terminar el video y esta lectura debes poder explicar:
12 Preguntas de comprensión
1. Lee este árbol entrenado para predecir fuga de clientes: raíz: reclamos_6m ≥ 2 → Sí: hoja “Se fuga” (n = 40); No: segunda pregunta antiguedad < 12 → Sí: hoja “Se fuga” (n = 25); No: hoja “Se queda” (n = 175). Un cliente lleva 8 meses, tiene 1 reclamo. ¿Qué predice el árbol y por qué? ¿Qué perfil de negocio describen las dos hojas de fuga?
Ver respuesta
Recorrido: ¿reclamos ≥ 2? No (tiene 1) → ¿antigüedad < 12? Sí (lleva 8) → hoja “Se fuga”. El árbol describe dos perfiles de riesgo que cualquier gerente reconoce: los inconformes (2+ reclamos recientes, se van sin importar lo demás) y los recién llegados (menos de un año, sin ancla todavía). Esa traducción directa de nodos a segmentos de negocio es la gran virtud del árbol.
2. Entrenas dos árboles sobre los mismos datos. El A tiene 3 hojas, error de CV (xerror) 0.10 y accuracy en train de 96%. El B tiene 14 hojas, xerror 0.13 y accuracy en train de 100%. Tu compañero prefiere el B “porque no se equivoca nunca”. Convéncelo en tres frases.
Ver respuesta
- El 100% en train no es evidencia: siempre se puede lograr memorizando — es el dial de la semana 10 girado a tope. (2) La medida honesta es la validación cruzada, y ahí B es peor (0.13 > 0.10): sus 11 hojas extra compraron ruido, no patrón. (3) Aun si empataran en CV, ganaría A por parsimonia: más simple, más legible, más estable ante datos nuevos.
3. Tu Random Forest de fuga de clientes da, para un cliente, probabilidad 0.42 de irse. Con umbral 0.5 no se le hace nada; el equipo de retención propone bajar el umbral a 0.3. ¿Qué ganan, qué pagan, y qué dato del negocio necesitas para decidir si conviene?
Ver respuesta
Ganan recall: capturan clientes como este (0.42 ≥ 0.3), que hoy se van sin que nadie los llame. Pagan precisión: más falsas alarmas — llamadas y descuentos a clientes que no pensaban irse. El dato que decide: el costo relativo de cada error. Si retener cuesta una llamada (\() y perder un cliente cuesta meses de facturación (\)$$), el umbral bajo se paga solo; si la retención regala descuentos caros, no tanto. El umbral es una decisión financiera con disfraz estadístico.
4. ¿Por qué el Random Forest exige que cada corte de cada árbol mire solo un subconjunto aleatorio de variables? ¿Qué pasaría si se quita esa regla y cada árbol puede usar siempre todas?
Ver respuesta
Sin esa regla, los 500 árboles serían casi clones: todos abrirían con la variable más predictiva (en la base de crédito, la deuda) y harían cortes muy parecidos — y 500 modelos que se equivocan en lo mismo votan tan mal como uno solo. La aleatoriedad de variables des-correlaciona los árboles: los obliga a explorar caminos distintos, de modo que sus errores sean diferentes y se cancelen al votar. La diversidad, no el número, es lo que hace sabia a la multitud.
13 Material adicional
- 📘 ISLR — capítulo 8: árboles, bagging y random forests: statlearning.com
- 🎥 StatQuest — Random Forests (en inglés, con humor): youtube.com/@statquest
- 🖼️ MLU-Explain — Decision Trees y Random Forest (visuales interactivos): mlu-explain.github.io
- 🎬 Codificando Bits — el video de intuición embebido arriba y su serie de ML en español: youtube.com/@codificandobits
Los recursos de esta semana → esta teoría continúa en la práctica guiada en clase y cierra con el taller evaluable.