0014 le testing doit estimer la generalisation pas la performance
ADR-14 — Le testing DOIT estimer la généralisation, pas la performance locale récente¶
Statut : Décidé (issue #367, analyse overfitting 2026-03-24)
Contexte : Le testing Phase 2 utilisait un seul fold (le plus récent). Cela produisait un estimateur biaisé : F1 val élevé car val est temporellement adjacent à train, pas parce que le modèle généralise. Écart observé : >10pts entre val et test.
Décision : Le testing Phase 2 utilise un protocole multi-fold temporel (3-5 folds). Les métriques sont agrégées (mean + std) sur tous les folds. Le gap val/test par fold est reporté.
Invariants :
- Le testing NE DOIT JAMAIS utiliser un seul fold pour évaluer un modèle
- Les métriques Phase 2 DOIVENT inclure mean + std du F1 sur N folds
- Le gap val/test moyen DOIT être < 5 pts pour qu'un modèle passe les gates
- Un fold unique est acceptable uniquement en mode --smoke-test (explicitement dégradé)
Alternatives considérées : - Single fold (rejeté : estimateur biaisé, 5-8 pts de gap) - Expanding window (non retenu : biais de taille variable)
Fichiers concernés : scripts/strategy_testing.py, zenml_pipelines/steps/testing/test_step.py