Validation croisée
Estimer un score et sa stabilité par folds.
K folds
Données coupées en K, K tours train/test tournants, moyenne ± écart-type. Stratifiée en classif, par groupe/temps si dépendances. Tout le pipeline est réajusté dans chaque fold : c'est ce qui la rend honnête.
from sklearn.model_selection import cross_validate, StratifiedKFold
r = cross_validate(pipe, X, y, cv=StratifiedKFold(n_splits=5, shuffle=True, random_state=0), scoring="f1")
print(r["test_score"].mean(), r["test_score"].std())
StratifiedKFold garde les proportions de classes dans chaque fold. scoring nomme la métrique : "f1", "accuracy", "neg_mean_absolute_error", "average_precision" (aire sous courbe précision-rappel, Ch14 mia-roc-seuil).
Lecture
0,81 ± 0,02 bat 0,79 ± 0,02 ? À peine : recoupez avec un test final unique et apparié. La CV choisit, le test juge. Inverser = tricher sans le vouloir.
Pas de correction en ligneConfrontez votre code aux résultats attendus du cours.