Validation de modèle — notes complètes
Source: Data Science · Module 3 — validation de modèle · Coursera · Prof. Park · 46 min
Pourquoi séparer les données
Leçon- But: estimer la performance sur des données non vues — la seule métrique qui compte.
- Mode d'échec: si on ne s'évalue que sur train, tous les modèles ont l'air bons (même les mauvais).
- Principe hold-out: aucune décision (modèle, hyperparamètres) ne doit voir le test avant l'évaluation finale.
Trois voies
Leçon- Train: pour ajuster les paramètres du modèle.
- Val: pour régler les hyperparamètres et comparer les modèles — manipulé souvent.
- Test: une seule fois à la fin pour estimer la performance réelle.
- Pourquoi trois: si tu règles sur le test, il devient un deuxième train — tu surestimes la généralisation.
Ratios typiques
Leçon- 70/15/15: standard pour datasets moyens (1k–100k samples).
- 80/10/10: courant avec 10k–100k samples et CV sur train.
- Big data 98/1/1: à 1M+ samples, 1% fait 10k — assez pour des estimations stables.
Stratification
Leçon- Quand: dès qu'il y a déséquilibre de classes ou événements rares.
- Comment: préserve le ratio des classes dans chaque partition — évite de tomber sur 0 positif en val.
- Outil: StratifiedKFold de sklearn ou train_test_split(stratify=y).
Validation croisée
Leçon- k-fold: diviser train en k parties ; entraîner sur k-1, valider sur 1 ; faire tourner ; moyenner les k scores.
- k typique: 5 ou 10 — au-delà rendements décroissants.
- Séries temporelles: fenêtre expansive ou glissante — jamais entraîner sur des données futures.
Surapprentissage
Leçon- Définition: le modèle apprend le bruit au lieu du signal.
- Signal: la précision de train monte alors que la val stagne ou baisse.
- Remèdes: plus de données, modèle plus simple, L1/L2, dropout, early stopping, data augmentation.
Fuite de données
Leçon- Pré-traitement: fitter un Scaler sur tout le dataset (val/test inclus) fait fuir l'info de distribution.
- Solution: mettre le pré-traitement dans une Pipeline et faire la CV.
- Temporelle: entraîner sur des données futures pour prédire le passé — utiliser des splits roulants en time series.
Exemple
Leçon- Setup: 10 000 échantillons, classification binaire, split 70/15/15.
- Comptes: train = 7 000, val = 1 500, test = 1 500.
- Stratifié: ratio 80/20 → chaque partition garde ce ratio.






