MAT281 - Laboratorio N°14: Modelos de Regresion Supervisada¶
Objetivos del laboratorio¶
- Plantear un problema de regresion y elegir metricas adecuadas (MAE, RMSE, $R^2$).
- Entrenar regresion lineal, Ridge y Lasso (regularizacion).
- Usar modelos basados en arboles: Decision Tree y Random Forest.
- Evaluar modelos con validacion cruzada.
- Comparar varios modelos y seleccionar el mejor.
Instrucciones¶
Lea con atencion cada problema antes de resolverlo. Reemplace cada celda que contiene # FIXME con su propia solucion y, cuando se solicite, responda las preguntas en celdas de texto.
Nota: Puede apoyarse en asistentes virtuales (ChatGPT, Gemini, Claude) o en el autocompletado de Colab, pero asegurese de entender cada linea de codigo que entregue.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
Problema 01 — El problema de regresion¶
Usaremos el dataset Diabetes de scikit-learn (predecir un indice de progresion de la enfermedad a partir de 10 variables clinicas).
Tu tarea:
- Carga
load_diabetes(as_frame=True). - Separa
Xeyy divide en train/test (80/20,random_state=42). - Pregunta: ¿por que este es un problema de regresion y no de clasificacion?
from sklearn.datasets import load_diabetes
# FIXME
Respuesta (Problema 01): (escribe aqui)
Problema 02 — Regresion lineal y metricas¶
Tu tarea:
- Entrena una
LinearRegression. - Evalua en el test con MAE, RMSE y $R^2$.
- Pregunta: ¿que diferencia hay entre MAE y RMSE? ¿Cual penaliza mas los errores grandes?
from sklearn.linear_model import LinearRegression
# FIXME
Respuesta (Problema 02): (escribe aqui)
Problema 03 — Regularizacion: Ridge y Lasso¶
La regularizacion penaliza coeficientes grandes para reducir el sobreajuste.
Tu tarea:
- Entrena
RidgeyLasso(pruebaalpha=0.1, 1.0, 10.0). - Compara su $R^2$ en test con el de la regresion lineal.
- Pregunta: ¿que hace Lasso con algunos coeficientes? Inspecciona
modelo.coef_.
from sklearn.linear_model import Ridge, Lasso
# FIXME
Respuesta (Problema 03): (escribe aqui)
Problema 04 — Arboles y Random Forest¶
Tu tarea:
- Entrena un
DecisionTreeRegressory unRandomForestRegressor. - Compara sus metricas en test.
- Para el Random Forest, grafica la importancia de las variables
(
feature_importances_).
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor
# FIXME
Problema 05 — Validacion cruzada y comparacion final¶
Tu tarea:
- Usa
cross_val_score(5 folds, scoringr2) para estimar el desempeño de cada modelo de forma robusta. - Construye una tabla resumen (modelo, $R^2$ medio, desviacion).
- Pregunta: ¿que modelo elegirias y por que?
# FIXME
Respuesta (Problema 05): (escribe aqui)