Devmind.
Menu

Apprendre, à votre rythme

Tous les cursus sont accessibles sans compte.

Chapitre 13 / Pratique

Pipelines sans fuite

Enchaîner préparation et modèle proprement.

◷ 16 minutesTravail sur votre machine

Le seul ordre honnête

from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.dummy import DummyRegressor

prep = ColumnTransformer([
    ("num", make_pipeline(SimpleImputer(strategy="median"), StandardScaler()), ["poids_kg"]),
    ("cat", make_pipeline(SimpleImputer(strategy="most_frequent"), OneHotEncoder(handle_unknown="ignore")), ["transporteur"]),
])
pipe = make_pipeline(prep, DummyRegressor(strategy="median"))
pipe.fit(X_train, y_train)  # tout est appris sur train
print(pipe.score(X_test, y_test))  # une seule fois

Pourquoi c'est non négociable

Le modèle de l'exemple est volontairement la référence constante DummyRegressor (leçon précédente mia-baseline) : l'objet de cette leçon est le pipeline sans fuite, pas la puissance du modèle. Les modèles riches arrivent au Ch15 et suivants.

En validation croisée, le pipeline réapprend imputation et échelle dans chaque fold : aucune info du fold test ne fuit. Sans pipeline, vous devez le refaire à la main et vous vous tromperez. Retenez : fit sur train, transform/predict ailleurs, jamais l'inverse.

Pas de correction en ligneConfrontez votre code aux résultats attendus du cours.