Python Data Science Program
📓 Abrir notebook en GitHub

Clase 082 — Regresión con árboles

Parte: 1 — Machine Learning Clásico · Fuente: Géron, cap. 6. ⏱️ Duración estimada: 45 min.

🎯 Objetivo

Entrenar árboles de decisión para problemas de regresión con DecisionTreeRegressor, entender por qué sus predicciones son escalonadas (constantes por hoja) y reconocer su incapacidad para extrapolar fuera del rango de entrenamiento.

📚 Resultados de aprendizaje

Al finalizar la clase, el estudiante podrá:

🗺️ Temas

📖 Definiciones y características

📂 Dataset / recursos

🧪 Ejercicios

  1. Ajuste básico: generá los datos sin(x) + ruido, entrená DecisionTreeRegressor(max_depth=2) y max_depth=5, y graficá ambas predicciones sobre los puntos. Observá las escaleras.
  2. MSE en train vs test: hacé train_test_split(test_size=0.3), calculá mean_squared_error en train y test para max_depth ∈ {1, 2, 4, 8, None}. ¿Dónde empieza el sobreajuste?
  3. No extrapolación: predecí con el modelo entrenado sobre x_new = np.linspace(-5, 5, 200) (rango más ancho que el train). Graficá: vas a ver mesetas planas en los extremos.
  4. Árbol vs lineal: entrená LinearRegression sobre los mismos datos. Comparalo con el árbol fuera del rango de entrenamiento. ¿Cuál extrapola "bien" y por qué?
  5. California Housing: corré cross_val_score(DecisionTreeRegressor(max_depth=6), X, y, scoring='neg_mean_squared_error', cv=5) y compará contra max_depth=None.

📝 Homework verificable

Entregar un script tarea_073.py que:

  1. Genere y = 0.5 * x + sin(x) + ruido con x en [0, 10].
  2. Entrene DecisionTreeRegressor(max_depth=4, random_state=42) y LinearRegression.
  3. Prediga sobre x_new en [0, 15] (excede el rango de train).
  4. Imprima el MSE en test (dentro del rango) y el valor predicho por el árbol en x=15.

Criterio de aceptación: el script corre sin error, el MSE del árbol en test es menor al de la lineal dentro del rango, y la predicción del árbol en x=15 es idéntica a su predicción en x=10 (demuestra no-extrapolación).

⚠️ Errores comunes

❓ Preguntas frecuentes

🔗 Referencias

📥 Material descargable

➡️ Siguiente clase

Clase 083 — Voting classifiers: hard y soft