docs — V35 à V37 au plan : le ML Lab, en commençant par deux défauts de méthode - #50
Merged
Merged
Conversation
…e méthode L'audit du laboratoire n'a pas trouvé de fonctionnalités manquantes : neuf familles de modèles, réglages, seuils, segments, incertitude, courbes, diagnostics de régression, comparaison, scoring, export/import sont là. Il a trouvé deux chiffres un peu faux, dans un produit dont l'argument est l'évaluation honnête. 1. Le gagnant est choisi sur le jeu de test. LeaderboardTable.tsx:42 trie neuf modèles par la métrique calculée sur le test et couronne le premier. Prendre le maximum de neuf tirages sur environ 180 lignes biaise le chiffre affiché vers le haut. Correctif : un jeu de validation pour sélectionner, le test pour rapporter, et l'écart entre les deux montré — c'est la leçon la plus utile que le laboratoire puisse donner. 2. Le découpage est toujours aléatoire, même sur des données datées. splitIndices() stratifie au hasard, alors que la V10 dérive déjà des dates et que la V8 fait des séries temporelles. Sur ces fichiers-là, le futur entre dans l'entraînement : le modèle paraît excellent et s'effondre en production. Correctif : découpage chronologique proposé et annoncé, même logique pour un identifiant répété. S'y ajoutent un détecteur de fuite de cible — une colonne qui prédit seule à 99 % est presque toujours une fuite, et doit s'afficher comme une alerte, pas comme une victoire — et une validation croisée répétée, parce que classer deux modèles séparés d'un point sur 180 lignes de test n'a pas de sens. V36 regroupe les descopes assumés : pondération des classes (écartée en V16), seuils multiclasses, choix de la métrique de classement, ensemble des trois meilleurs. La ligne dit aussi ce que la vague ne fera pas : pas de dixième modèle, pas de mode AutoML, pas de deep learning tabulaire. V37 ferme la marche avec la vitesse : entraînement parallèle sur plusieurs workers, comparaison de plus de deux runs, reprise d'un run interrompu. En dernier, volontairement — un chiffre faux calculé plus vite reste faux. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UKw6oNC8iZ9Kn7q6x4qom4
There was a problem hiding this comment.
🟢 Approval recommended
Documentation-only change in PLAN.md with consistent Markdown table structure and no code-impacting modifications.
Pull request overview
Cette PR met à jour le plan produit (V35 à V37) pour cadrer les prochaines améliorations de ML Lab autour de la rigueur méthodologique (biais de sélection sur test set, split aléatoire sur données temporelles) et d’évolutions associées (détection de fuite de cible, CV répétée), puis regroupe les “gaps” assumés (V36) et les optimisations de vitesse/confort (V37).
Changes:
- Ajout des entrées V35–V37 au tableau de roadmap, avec motivations et périmètres détaillés.
- Mise à jour du paragraphe Ordering pour justifier la priorité de V35 avant V36/V37.
File summaries
| File | Description |
|---|---|
| PLAN.md | Ajoute V35–V37 au plan et met à jour l’ordre de priorité dans la roadmap. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
L'audit du laboratoire n'a pas trouvé de fonctionnalités manquantes : neuf familles de modèles, réglages, seuils, segments, incertitude, courbes d'apprentissage, diagnostics de régression, comparaison de runs, scoring par lot, export/import sont déjà là. Il a trouvé deux chiffres un peu faux, dans un produit dont l'argument de vente est l'évaluation honnête.
Défaut 1 — le gagnant est choisi sur le jeu de test
LeaderboardTable.tsx:42trie neuf modèles parprimary— la métrique calculée sur le test — et couronnesorted[0]. Prendre le maximum de neuf tirages sur ~180 lignes biaise le chiffre affiché vers le haut : c'est le problème des comparaisons multiples. Le bootstrap apparié de la V20 adoucit la comparaison, mais le nombre en tête de classement reste optimiste.Correctif : train / validation / test — on sélectionne sur la validation, on rapporte sur le test, et on affiche l'écart entre les deux. Cet écart est en soi la leçon la plus utile que le laboratoire puisse donner.
Défaut 2 — le découpage est toujours aléatoire, même sur des données datées
splitIndices()stratifie au hasard, point — alors que la V10 dérive déjà année/mois/jour d'une colonne de dates et que la V8 fait des séries temporelles. Sur ces fichiers, le futur entre dans l'entraînement : le modèle paraît excellent et s'effondre en production.Correctif : détecter la colonne de dates et proposer un découpage chronologique annoncé ; même logique pour un identifiant répété — le même client des deux côtés, c'est la même fuite.
Les deux ajouts du même esprit (V35)
V36 — les descopes assumés, regroupés
Pondération des classes (écartée en V16), seuils multiclasses (mis de côté depuis V16), choix de la métrique de classement (exactitude/RMSE sont imposées aujourd'hui alors que F1 ou rappel est souvent le bon critère), ensemble des trois meilleurs (1 à 3 points, gratuit en calcul).
La ligne dit aussi ce que la vague ne fera pas : pas de dixième famille de modèles, pas de mode AutoML « on s'occupe de tout » — l'inverse d'un laboratoire qui montre ses décisions — et pas de deep learning tabulaire.
V37 — vitesse et confort, en dernier volontairement
Entraînement parallèle (la ménagerie s'entraîne aujourd'hui séquentiellement dans un worker ; les bancs de la V25 existent pour mesurer avant/après), comparaison de plus de deux runs, reprise d'un run interrompu.
En dernier parce qu'un chiffre faux calculé plus vite reste faux.
Documentation seule — aucun code touché.
Generated by Claude Code