Aller au contenu

~/teaching · machine learning · devoir 1

Construire un modèle de référence défendable : reproductible, calibré, seuillé par le coût

Le premier jalon d'un projet de machine learning, écrit comme un guide applicable à tout problème tabulaire

Résumé

Un modèle de référence (baseline) n'est pas le modèle dont on est fier. C'est le modèle simple et honnête que tout candidat ultérieur devra battre, d'un écart mesuré, avant même d'être discuté. Cette note résume le sujet du devoir qui suit le premier bloc du cours de Machine Learning de Centrale Méditerranée (option DDEFI, 2026-2027), dont le fil rouge est un score de défaut de crédit sur les données publiques UCI Default of Credit Card Clients (Yeh et Lien, 2009).

Le sujet transforme le travail des premières séances en un ensemble court et complet : un dépôt que n'importe qui relance d'une commande, deux modèles programmés à la main et confrontés à scikit-learn, une note de deux pages qui va de la décision métier jusqu'à un coût espéré, une étude d'ablation pré-enregistrée, un journal de décisions et une annexe où l'équipe prend deux fois un assistant d'IA en défaut.

La page garde la méthode et laisse de côté tout ce qui relève de la classe (calendrier, évaluation, exercices). Après lecture, vous devriez pouvoir monter l'étape « modèle de référence » de votre propre projet comme l'équipe de validation d'une banque s'attend à la trouver.

Les slides

Devoir après le bloc 1 : une baseline défendable

Devoir 1. Machine Learning, Centrale Méditerranée, option DDEFI, 2026-2027.

Ouvrir les slides (mot de passe donné par l'enseignant)

Le deck lui-même est chiffré pour les élèves du cours ; cette page le résume pour tous.

La page du cours · L'attention et le transformer, pas à pas

Plan du deck

  1. Où en est le projet. Quatre marches, de la première baseline au projet livré, et ce que le dépôt contient déjà.
  2. Ce que contient un dossier de baseline. Six livrables, chacun dans un fichier connu, ouverts dans un ordre fixe.
  3. La note « baseline et seuil ». Deux pages, de la décision au coût espéré, chaque chiffre traçable.
  4. En poste. Comment le comité modèle d'une banque et sa validation indépendante lisent une telle note.
  5. L'ablation. Prédire, déposer la prédiction, calculer, puis commenter chaque écart.
  6. L'organisation. Un point d'étape, trois rôles qui tournent, un travail signé nominativement.
  7. L'IA, permise et contredite. Un niveau d'usage de l'IA par livrable, et une annexe de propositions réfutées.
  8. Quatre pièges classiques. La fuite, la métrique mal calculée, la graine qui bouge, le README qui ne marche que chez soi.

À quoi sert un modèle de référence

Le modèle de référence est le modèle le plus simple qui reste honnête avec les données, et il fixe la barre que tout modèle plus compliqué doit franchir.

Deux références valent la peine. La première est le modèle constant, qui prédit le taux de base pour chaque cas : il dit ce que vaut « aucune information ». La seconde est le modèle raisonnable le plus simple, ici une régression logistique régularisée (voir maximum de vraisemblance et régression logistique). La seconde doit battre la première en log-loss, et l'écart est affiché, pas affirmé.

Dans une banque, l'équipe qui construit un score ne décide pas de l'utiliser. Elle rédige une note au plan imposé : quelle décision et pour qui, quelles données, quelle méthode, quel pouvoir de classement et quelle calibration, où se place le seuil et ce qu'il coûte, et où le modèle cesse de marcher. Une équipe de validation séparée, souvent appelée deuxième ligne de défense, refait les chiffres depuis le dépôt et cherche ce qui cloche. Un comité modèle approuve, approuve sous conditions, ou rejette. La baseline n'est souvent pas ce qu'on déploie, mais c'est l'étalon auquel tout challenger est mesuré.

Remarque (Écrire pour quelqu'un qui décide). Le lecteur d'une note de baseline n'est pas un enseignant qui vérifie l'effort. C'est une personne qui doit dire oui ou non et qui demandera ce que coûte le modèle quand il se trompe.

Retour au sommaire.

Un dépôt que quelqu'un d'autre peut relancer

Si une autre personne ne peut pas cloner le projet et retrouver les mêmes chiffres en une seule commande, ces chiffres ne comptent pas encore.

La reproductibilité (reproducibility) est le ticket d'entrée. Le dépôt contient le code dans src/, les tests dans tests/, un lockfile qui fige chaque paquet, une intégration continue (continuous integration, CI) qui tourne à chaque push, et une cible, make reproduce, qui va du CSV brut jusqu'à un fichier metrics.json. Le découpage figé (frozen split) en apprentissage, validation et test est fait une fois pour toutes et identifié par une empreinte du CSV et des identifiants de lignes, pour que toute dérive se voie.

La règle qui garde un rapport honnête est simple : tout chiffre cité dans un document doit exister dans metrics.json. Un nombre tapé à la main ne se vérifie pas ; il faut donc le tenir pour faux jusqu'à preuve du contraire.

Le test que fait un regard extérieur

  1. Cloner. Un membre d'une autre équipe clone le dépôt dans le même conteneur de développement, sans aide des auteurs.
  2. Suivre le README. Il lance les commandes documentées, dans l'ordre, et rien d'autre.
  3. Comparer. Il ouvre le fichier de métriques obtenu et le confronte à la note, chiffre par chiffre.
  4. Signaler. Tout ce qui a échoué (un chemin, un paquet absent, un fichier de données hors du dépôt) devient une issue.

Retour au sommaire.

Deux modèles écrits à la main, confrontés à la bibliothèque

Programmer soi-même les moindres carrés et la régression logistique, puis retrouver scikit-learn, prouve qu'on sait ce que calcule la bibliothèque.

Le dossier comprend deux notebooks. Le premier ajuste les moindres carrés ordinaires deux fois, par les équations normales puis par la décomposition en valeurs singulières, comme dans moindres carrés et régression linéaire. Le second ajuste une régression logistique par descente de gradient sur la log-loss moyenne. Chacun est comparé à l'estimateur de scikit-learn sur les mêmes données, et l'écart entre coefficients ou prédictions est imprimé plutôt que décrit.

XTX β^=XTyX\T X\,\hat\beta = X\T y
(1)
∇β ℓ(β)=1n XT(σ(Xβ)−y)\nabla_\beta\,\ell(\beta) = \frac{1}{n}\,X\T\big(\sigma(X\beta) - y\big)
(2)

Un notebook qui importe le modèle de la bibliothèque et l'appelle « fait main » n'en est pas un. Le cours demande aussi qu'un assistant d'IA puisse expliquer ces dérivations sans écrire ce code : c'est précisément le code qu'on vous demandera de modifier et d'expliquer ligne à ligne.

Retour au sommaire.

Fuites de données et métriques mal calculées

Des chiffres trop beaux cachent en général une fuite, et des chiffres trop bas une métrique calculée sur la mauvaise entrée.

La carte des fuites (leakage map) liste chaque colonne avec la date à laquelle sa valeur est connue, à côté de la date de la cible. Dans les données UCI, le montant facturé et le statut de remboursement de septembre 2005 sont des entrées légitimes pour un défaut observé en octobre ; tout ce qui est enregistré après la décision ne l'est pas. Dans le code, la fuite de données (data leakage) typique est un standardiseur ajusté sur toutes les lignes du CSV avant le découpage, ou un encodage de la cible qui a vu les lignes de test. Un test unitaire attrape le premier cas : la moyenne stockée par le standardiseur dans le pipeline doit égaler la moyenne du seul pli d'apprentissage.

Le symptôme inverse, une AUC bizarrement basse, vient souvent de prédictions 0/1 passées à l'AUC à la place des probabilités. Un test qui vérifie que les scores prennent plus de deux valeurs distinctes l'attrape. Pour le score de Brier, il existe une référence calculable de tête, car le modèle constant qui prédit le taux de base π\pi a un score de Brier connu.

Brierconst=π (1−π)\mathrm{Brier}_{\text{const}} = \pi\,(1-\pi)
(3)

Exemple chiffré : le modèle constant sur UCI Default

  1. Taux de base. Environ 22,1 % des clients font défaut le mois suivant, donc π=0.221\pi = 0.221 et 1−π=0.7791 - \pi = 0.779.
  2. Produit. Le score de Brier du modèle constant vaut 0.221×0.779≈0.1720.221 \times 0.779 \approx 0.172.
  3. Usage. Si votre code donne une autre valeur pour le modèle constant, la fonction de Brier est fausse, ou des probabilités pondérées par classe n'ont pas été corrigées.

Retour au sommaire.

La note de deux pages : calibration, seuil et coût

Une probabilité ne sert que si elle est calibrée, et une décision n'est défendable que si son seuil découle du coût de chaque erreur.

La première page reprend le cadrage : quelle décision on éclaire, ce que la cible mesure mal, quel indicateur compte pour le métier et lequel on optimise, quel garde-fou on surveille, puis les données (fiche de données (datasheet), découpage figé, empreinte) et la carte des fuites. La seconde page présente le modèle retenu et pourquoi il bat le constant, puis sa calibration, avec une courbe de fiabilité (reliability curve) et le score de Brier, y compris la correction appliquée si des poids de classe ont servi à l'apprentissage.

Le seuil de décision (decision threshold) ne vaut pas 0,5 par défaut. Une fois écrits le coût d'un faux positif (un bon client refusé) et celui d'un faux négatif (un défaut accepté), le seuil qui minimise le coût espéré sur des probabilités calibrées s'en déduit, et la note montre la courbe de coût C(t)C(t) sur l'ensemble de validation. La méthode est développée dans seuil de décision et ML reproductible.

t∗=cFPcFP+cFN,C(t)=cFP FP(t)+cFN FN(t)t^{*} = \frac{c_{FP}}{c_{FP} + c_{FN}}, \qquad C(t) = c_{FP}\,FP(t) + c_{FN}\,FN(t)
(4)

Un dernier paragraphe se demande ce qui arrive si les coûts bougent de 20 % dans un sens ou dans l'autre. Un seuil dont le coût espéré s'effondre sous un changement modeste d'hypothèses n'est pas une décision robuste, et le comité posera la question.

Retour au sommaire.

Une étude d'ablation pré-enregistrée

Une ablation retire un groupe de colonnes à la fois pour voir ce que le modèle perd, et elle ne convainc que si l'équipe a écrit ses prédictions d'abord.

C'est l'ordre des opérations qui rend une étude d'ablation (ablation study) sérieuse. D'abord l'équipe prédit, sans rien calculer, l'AUC et le Brier qu'elle attend quand chaque groupe est retiré. Elle dépose ces prédictions dans une issue GitHub, parce que l'horodatage serveur d'une issue prouve que les chiffres existaient avant l'expérience, alors que la date d'un commit se réécrit. Ce pré-enregistrement (pre-registration) fait, elle calcule, avec le même découpage et la même graine que la baseline, puis commente chaque écart : une baisse de 0,01 et une baisse de 0,10 ne disent pas la même chose.

Tableau 1 : Tableau 1. La forme d'un tableau d'ablation sur UCI Default (gabarit, valeurs laissées vides).
Groupe retiréAUC préditeAUC mesuréeBrierÉcartQui
Démographie……………
Plafond de crédit……………
Historique de remboursement……………
Montants facturés……………
Paiements……………

L'a priori de l'enseignant, annoncé franchement dans le sujet, est que l'historique de remboursement porte l'essentiel du signal et la démographie presque rien. Le but n'est pas d'être d'accord : c'est de vérifier, et de l'écrire quand l'a priori était faux.

Retour au sommaire.

Journal de décisions, rôles et annexe IA

Les traces écrites en chemin montrent qui a décidé quoi et pourquoi, et elles sont bien plus difficiles à truquer qu'un rapport final soigné.

DECISIONS.md contient des entrées datées : la décision, son contexte, l'alternative écartée avec le chiffre qui l'a écartée, la commande qui le prouve, et qui l'a prise. Le travail se répartit en trois rôles (données, modèle, relecture) qui tournent d'un jalon à l'autre, et chaque membre signe nominativement une fonction, une ligne du tableau d'ablation et une entrée du journal, pour que les questions aillent à la personne qui a écrit la chose. Une seule graine aléatoire (random seed), dans un seul fichier de configuration, évite qu'un découpage bouge d'une exécution à l'autre.

L'usage de l'IA suit l'AI Assessment Scale de Perkins, Roe et Furze (2025), un niveau par livrable : usage complet sous jugement humain pour le code de plomberie testé et compris, explication seulement pour les modèles faits main, brouillon et relecture pour la note, et l'annexe elle-même comme exercice de pilotage de l'outil. Déclarer un usage n'est jamais reproché.

  • L'annexe liste chaque usage, son niveau et qui l'a relu.
  • Elle donne ensuite au moins deux affirmations de l'assistant que l'équipe a montrées fausses, chacune prouvée par un test qui échoue, un calcul ou un chiffre.
  • Réfutations typiques : standardiser avant le découpage (un test de fuite échoue), garder le seuil de 0,5 (la courbe de coût dit autre chose).
  • Ne rien trouver à réfuter en plusieurs semaines signifie en général que rien n'a été vérifié.

Retour au sommaire.

À retenir

  1. Un modèle de référence est un étalon : le modèle constant et une régression logistique régularisée, avec l'écart entre les deux affiché.
  2. Une commande doit mener un inconnu d'un clone neuf au même fichier de métriques, et chaque chiffre de la note doit venir de ce fichier.
  3. Programmer à la main les moindres carrés et la régression logistique, puis retrouver scikit-learn, prouve qu'on comprend la bibliothèque.
  4. La carte des fuites, un standardiseur ajusté sur l'apprentissage seul et une AUC calculée sur des probabilités évitent les deux faux chiffres les plus courants.
  5. Le seuil découle de coûts écrits et de probabilités calibrées, avec une analyse de sensibilité sur ces coûts.
  6. Des prédictions déposées avant l'expérience, un journal daté et des affirmations d'IA réfutées sont la preuve que l'équipe a réellement réfléchi.

Glossaire

modèle de référence (baseline)
Le modèle simple que tout candidat doit battre d'un écart mesuré.
fuite de données (data leakage)
Information indisponible au moment de la décision qui atteint le modèle et gonfle ses scores.
carte des fuites (leakage map)
Tableau colonne par colonne de la date où chaque valeur est connue, comparée à celle de la cible.
découpage figé (frozen split)
Partition apprentissage, validation, test fixée une fois et identifiée par une empreinte.
courbe de fiabilité (reliability curve)
Fréquence observée contre probabilité prédite ; un modèle calibré suit la diagonale.
score de Brier
Erreur quadratique moyenne entre probabilités prédites et issues 0/1.
seuil de décision (decision threshold)
Probabilité au-delà de laquelle la décision change, ici déduite du coût des erreurs.
étude d'ablation (ablation study)
Retrait de groupes d'entrées un à un pour mesurer leur apport.
pré-enregistrement (pre-registration)
Écrire prédictions ou règles, horodatées, avant de voir les résultats.
intégration continue (continuous integration, CI)
Tests et contrôles automatiques lancés à chaque push sur le dépôt.
graine aléatoire (random seed)
Le nombre qui fixe les tirages pseudo-aléatoires, gardé dans un seul fichier de configuration.
fiche de données (datasheet)
Document qui décrit l'origine, la licence, la collecte et les angles morts d'un jeu de données.
reproductibilité (reproducibility)
Capacité d'un tiers à retrouver les mêmes chiffres à partir du dépôt seul.

Les autres fiches du cours

Un résumé public par deck, dans l'ordre du cours.

  1. IntroductionHivers de l'IA, emploi et méthode
  2. OutilsKaggle, GitHub, Python : les outils
  3. Séance 1Cadrage de projet et moindres carrés
  4. Séance 2Vraisemblance et régression logistique
  5. Séance 3Descente de gradient, ridge et lasso
  6. Séance 4Seuil de décision et ML reproductible
  7. DevoirUn modèle de référence défendable
  8. Séance 5Noyaux, SVM et arbres de décision
  9. Séance 6Forêts, boosting, comparaison honnête
  10. Séance 7SHAP, équité, ACP et partitionnement
  11. DevoirUn modèle champion documenté
  12. Séance 8Réseaux de neurones, dérive, prédiction conforme
  13. DevoirUn projet de machine learning livré
  14. Séance 9Soutenir un projet de machine learning
  15. RéférenceProjet de score de défaut de crédit
  16. RéférenceRendements boursiers : XGBoost et sentiment
  17. RéférenceLe code Python de chaque modèle
  18. RéférenceDeep learning, l'essentiel
  19. RéférenceDonnées ouvertes et projets par secteur
  20. RéférenceManuel de l'expert data et IA
  21. RéférenceData engineering, SRE et cloud
  22. RéférencePanorama des modèles de machine learning

Toutes les fiches, en liste de lecture

L'attention et le transformer, pas à pas

À propos de ces fiches

Écrites par l'enseignant à partir des slides du deck, comme un résumé public : les idées clés, les formules et un exemple calculé. Les exercices, leurs corrigés, les contrôles et la notation restent dans le deck, pour les élèves du cours.

Révision : .