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

Tester un modèle sur des données inédites

Après cette leçon: Je peux expliquer pourquoi on teste un modèle sur des données qu’il n’a pas vues.

Leçon de 40 minAucune commande

Un modèle à 98 %, puis la déception

Un opérateur mobile veut savoir quels abonnés vont résilier ce mois-ci. L’équipe pourrait alors leur proposer une offre avant leur départ.

Un premier modèle annonce 98 % de bonnes réponses. Le mois suivant, il ne repère qu’un départ sur deux.

Le problème ne venait pas du modèle. Il venait de la façon de le mesurer : sur les abonnés qu’il connaissait déjà.

À la fin de cette leçon

Remarque

Je peux expliquer pourquoi on teste un modèle sur des données qu’il n’a pas vues.

Mots-clés

MotCe que ça veut dire
Jeu d’entraînementles exemples dont le modèle apprend
Jeu de testdes exemples mis de côté pour le contrôle
Généraliserbien répondre sur des cas nouveaux
Fuite de donnéesla réponse cachée dans les données d’entrée
Mise en productionle moment où le modèle sert pour de vrai

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

Un modèle se juge sur des cas nouveaux

Imaginez un conseiller client tout juste embauché. Pendant sa formation, il apprend par cœur la réponse à 20 demandes.

Pour savoir s’il est prêt, on ne lui repose pas ces 20 demandes. On lui en donne de nouvelles.

Pour un modèle, c’est pareil. Son score sur les exemples d’entraînement mesure surtout sa mémoire. Ce qui compte, c’est sa capacité à généraliser : bien répondre sur des abonnés qu’il n’a jamais vus.

Un même modèle, mesuré trois fois

Mesuré surBonnes réponsesCe que cela dit
Les abonnés de l’entraînement98 %Sa mémoire
Des abonnés mis de côté71 %Une estimation honnête
Les vrais abonnés du mois suivant70 %La réalité

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

On met de côté une partie des exemples

Avant l’entraînement, on sépare les exemples en deux parts. Souvent, 80 % forment le jeu d’entraînement et 20 % le jeu de test.

On mélange d’abord les lignes au hasard. Ainsi, les deux parts ressemblent aux mêmes abonnés.

Le modèle ne voit jamais le jeu de test pendant l’apprentissage. On ne l’utilise qu’à la fin, pour mesurer.

Exemple travaillé : la répartition 80/20

Exemples en toutEntraînement (80 %)Test (20 %)
1 000800200
5 0004 0001 000
25020050

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

Séparez dix abonnés en Python

Code: python
# Dix abonnés d'un opérateur mobile, déjà mélangés au hasard
abonnes = ["Martin", "Bernard", "Dubois", "Thomas", "Robert",
           "Richard", "Petit", "Durand", "Leroy", "Moreau"]

pourcentage_test = 20
nombre_test = len(abonnes) * pourcentage_test // 100
coupe = len(abonnes) - nombre_test

# Les premiers servent à apprendre, les derniers sont gardés de côté
entrainement = abonnes[:coupe]
test = abonnes[coupe:]

print("Entraînement :", len(entrainement), "abonnés")
print("Test :", len(test), "abonnés :", test)

# Mettez pourcentage_test à 30, puis relancez le programme.

Une fuite de données fausse le test

Parfois, la réponse se cache dans les données. Prenons une colonne « date de résiliation ». Elle n’est remplie que pour les abonnés déjà partis.

Le modèle apprend vite : « date remplie, donc départ ». Son score de test est presque parfait.

Mais en production, cette colonne est vide pour tous les abonnés actuels. Le modèle ne sert alors à rien. Avant d’entraîner, demandez pour chaque colonne : la connaîtra-t-on au moment de prédire ?

Une erreur fréquente

Attention

Beaucoup pensent qu’un bon score sur les exemples d’entraînement prouve que le modèle marche. Ce score mesure surtout ce qu’il a retenu. Seul le score sur le jeu de test, jamais vu, annonce son comportement avec de nouveaux abonnés.

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.