Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Documenter un modèle et surveiller sa dérive

Après cette leçon: Je peux documenter un modèle et organiser sa surveillance.

Leçon de 60 min1 commandeLab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Quand ne plus se fier à un modèle

La fiche d’un modèle est un court document qui dit à quoi il sert et sur quelles données il a appris. Elle dit aussi sa fiabilité et ses limites, pour que personne ne l’utilise au-delà.

Vous écrirez cette fiche, vous repérerez la dérive des données et vous nommerez qui répond du modèle.

À la fin de cette leçon

Remarque

Je peux documenter un modèle et organiser sa surveillance.

Mots clés

MotCe que ça veut dire
Fiche du modèleun document d’une page sur l’usage, les données et les limites
Dérivel’écart qui grandit entre les données d’apprentissage et celles du jour
Valeur de référencela valeur mesurée au départ, à laquelle on compare
Seuil d’alertel’écart à partir duquel on prévient quelqu’un
Responsablela personne nommée qui répond du modèle et peut l’arrêter
Recoursle moyen de contester une décision

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une fiche dit ce que le modèle ignore

Une bonne fiche tient sur une page. Elle répond à cinq questions. À quoi sert le modèle ? Sur quelles données a-t-il appris ? Comment se comporte-t-il ? Quelles sont ses limites ? Qui en répond ?

Elle est écrite pour quelqu’un qui n’a pas construit le modèle.

Exemple travaillé : la fiche du modèle de locations

RubriqueCe que la fiche dit
UsagePrévoir les locations de vélos d’une journée pour préparer le dépôt. Pas pour fixer un prix à une personne.
Données365 jours de 2025, une seule ville, la température et la pluie.
PerformanceTesté sur 92 jours gardés de côté : erreur moyenne de 41,6 locations.
LimitesUne seule année. Aucune donnée sur les événements ni sur les travaux.
ResponsableL’équipe du dépôt : un nom, une adresse, une date de relecture.

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Les chiffres de la fiche viennent d’un test

Un chiffre de performance n’a de sens que s’il vient de jours que le modèle n’a pas vus. Le script du labo coupe les données en deux parts avant de mesurer.

Il affiche le nombre de jours appris, le nombre de jours gardés de côté et l’erreur moyenne sur ces derniers.

Trouver les chiffres de performance

Commande
docker exec jupyter python3 steps/split.py

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Vérifier qu’une fiche est complète

Code: python
# Une fiche est un dictionnaire : la rubrique donne le texte.
fiche = {"usage": "prévoir les locations", "donnees": "365 jours de 2025", "limites": ""}
obligatoires = ["usage", "donnees", "performance", "limites", "responsable"]
for rubrique in obligatoires:
    if rubrique not in fiche or fiche[rubrique] == "":
        print("manque :", rubrique)
# Ajoutez la rubrique "responsable" avec un nom, puis relancez.

La dérive éloigne les données de l’apprentissage

Un modèle apprend sur le passé et travaille sur le présent. Quand le présent change, le modèle se trompe plus. C’est la dérive.

Pour la repérer, on compare une valeur du jour, par exemple la moyenne d’une entrée, à sa valeur de référence. Si l’écart relatif dépasse le seuil d’alerte, on prévient quelqu’un.

Exemple travaillé : le revenu moyen des demandeurs

SemaineRevenu moyen (en euros)Écart avec la référence de 1 800Alerte à 10 % ?
11 820+1,1 %non
21 790-0,6 %non
31 700-5,6 %non
41 500-16,7 %oui

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Calculer un écart relatif

Code: python
# Le revenu moyen de référence et celui de la semaine 4.
reference = 1800
semaine = 1500
ecart = (semaine - reference) * 100 / reference
print("écart relatif :", round(ecart, 1), "%")
if abs(ecart) > 10:
    print("alerte : les données ont dérivé")
# Mettez 1700 à la place de 1500 : y a-t-il une alerte ?

Une erreur fréquente

Attention

Beaucoup pensent qu’un modèle bien testé reste bon pour toujours. Un test dit comment il se comportait sur le passé. Le monde change, les données aussi. Prévoyez la surveillance dès le départ, pas après le premier problème.

Quelqu’un doit répondre du modèle

Un modèle ne répond de rien. Une personne nommée répond de lui : elle relit la fiche, reçoit les alertes et peut arrêter le modèle.

Pour les décisions qui touchent des gens, ajoutez deux choses. Un humain relit les cas proches du seuil. Un recours permet de contester simplement.

Qui fait quoi autour d’un modèle

RôleCe qu’il fait
Responsable du modèleRelit la fiche chaque trimestre et peut arrêter le modèle
Équipe de donnéesSurveille les alertes de dérive et corrige
Relecteur humainRevoit les décisions proches du seuil
Personne concernéePeut demander une explication et un nouvel examen

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Dans votre carnet : deux moitiés d’année

Code: python
import pandas as pd

locations = pd.read_csv("hires.csv")
# La température moyenne du premier semestre, puis du second.
premier = locations["temp_c"][:182].mean()
second = locations["temp_c"][182:].mean()
round(premier, 1), round(second, 1)
# Un modèle appris sur le premier semestre serait-il en dérive au second ?

Pour aller plus loin

Écrivez la fiche d’un modèle qui trierait des demandes de place en crèche ou en résidence étudiante : usage, données, performance, limites, responsable.

Ajoutez un seuil d’alerte pour une entrée de votre choix, et dites qui reçoit l’alerte et ce qu’elle doit faire.

À propos de ce labo et de sa source: Lab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.