Régression avec scikit-learn
Entraîner, prédire et comparer à la baseline.
Énoncé
Sur un jeu tabulaire : LinearRegression dans un pipeline (imputation + échelle), baseline médiane, MAE/RMSE/R² en CV puis test unique. Notez résidus moyens par décile de y.
Contraintes
Pipeline obligatoire, random_state noté, test touché une fois pour le verdict.
Indices
make_pipeline(SimpleImputer(strategy="median"), StandardScaler(), LinearRegression()), cross_validate(..., scoring="neg_mean_absolute_error").
Correction disponibleCherchez d’abord par vous-même.Voir la correction
Correction
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.dummy import DummyRegressor
from sklearn.model_selection import cross_validate
pipe = make_pipeline(SimpleImputer(strategy="median"), StandardScaler(), LinearRegression())
r = cross_validate(pipe, X_train, y_train, cv=5, scoring="neg_mean_absolute_error")
print(-r["test_score"].mean(), r["test_score"].std())
Si la régression ne bat pas la médiane, vos features n'apportent rien de linéaire : transformez ou changez de famille au lieu de régler des hyperparamètres inexistants.