Devmind.
Menu

Apprendre, à votre rythme

Tous les cursus sont accessibles sans compte.

Chapitre 14 / Pratique

Atelier : choisir honnêtement

Batter baseline, CV et test final sans tricher.

◷ 25 minutesTravail sur votre machine

Énoncé

Sur un jeu tabulaire : deux références (médiane vs moyenne) puis un seul modèle riche déjà vu si disponible, en pipelines avec CV 5 folds (moyenne ± std), choix sur CV, évaluation finale unique sur test avec métrique adaptée + matrice ou résidus. À ce stade du cursus (Ch14), comparez surtout médiane contre moyenne : les modèles riches arrivent au Ch15 et suivants.

Contraintes

Transformations dans les pipelines, graines notées, test touché une seule fois pour le verdict. Fiche d'une page avec limites.

Indices

cross_validate(pipe, X_train, y_train, cv=5, scoring=...), puis fit du gagnant et predict test. Écart < marge = égalité → plus simple.

choix sur CV, puis fit test une fois


Si votre gagnant CV perd sur test au-delà de la marge, suspectez fuite ou non-stationnarité : c'est un diagnostic, pas un échec. Documentez-le.
Correction disponibleCherchez d’abord par vous-même.Voir la correction

Correction

from sklearn.model_selection import cross_validate
from sklearn.dummy import DummyRegressor
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler

base_med = make_pipeline(StandardScaler(), DummyRegressor(strategy="median"))
base_mean = make_pipeline(StandardScaler(), DummyRegressor(strategy="mean"))
for name, m in [("mediane", base_med), ("moyenne", base_mean)]:
    r = cross_validate(m, X_train, y_train, cv=5, scoring="neg_mean_absolute_error")
    print(name, -r["test_score"].mean().round(3), r["test_score"].std().round(3))