Le compromis entre précision et rappel
- Leçon 10
- 70 min
- Module 3 : Évaluer les modèles supervisés
Leçon 10 sur 27 · Apprentissage automatique : du problème à un modèle fiableLe compromis entre précision et rappel
1. Comprendre l'apprentissage automatique
2. Cadrer le problème de prédiction
3. Évaluer les modèles supervisés
4. Créer les premiers modèles
5. Essayer d'autres familles de modèles
6. Régler et finaliser le modèle
7. Comprendre et choisir le modèle
8. Préparer la passation du modèle
Ce que vous saurez faire
Choisissez où couper une liste de cas classés et comparez deux classements sans choisir de coupure. Chaque règle de signalement fait un compromis entre les cas détectés et les fausses alertes. La décision, et non les données, détermine où se placer.
Carnet JupyterFaites cette leçon dans un carnet Jupyter
Le carnet (notebook) Jupyter contient toutes les cellules de code, les tâches et les vérifications de cette leçon, avec les consignes. Il contient aussi les exercices et la vérification du module. Ses cellules de configuration installent pandas et scikit-learn et téléchargent les données d’exercice. Il fonctionne donc sans le projet local. Utilisez l’explorateur et les graphiques ici, puis exécutez le code dans le carnet.
Le carnet est en anglais. Colab et Kaggle ouvrent votre propre copie. Il faut un compte Google ou Kaggle gratuit. Vous êtes bloqué ? Consultez le carnet de solution.
Avant de commencerCe qu’il faut savoir et avoir sous la main
Ce que vous devez savoir
- La matrice de confusion, la précision et le rappel, dans Les métriques de classification : la matrice de confusion et La précision et le rappel.
- Le score à points de Larkfield (de 0 à 4 points par billet de soutien) et les dix billets T-1 à T-10, dans Les métriques de classification : un premier signalement oui ou non : le score à points.
- La capacité de l’équipe principale (au plus 20 % des billets) et la cible d’amélioration, dans Définir une référence de base.
- Les données de validation et de test, dans Données d’entraînement, de validation et de test : trois jeux de données, trois rôles.
- Vous avez déplacé un seuil sur des scores fictifs dans Les compromis en classification. Vous avez attribué un coût à chaque erreur dans Seuils et coûts. Ces deux leçons font partie de Mathématiques et statistiques essentielles pour l’IA. Cette leçon fait la même chose avec les données de Larkfield.
Ce qu’il vous faut sur votre ordinateur (seulement pour travailler localement; le carnet n’en a pas besoin)
- Le dossier du projet
~/projects/ticket-modelavec son.venv(pandas 3.0.6, scikit-learn 1.9.1, matplotlib 3.11.2) et les données dansdata/, dontextra_features.csv. Vous les avez créés dans Définir une référence de base : préparer votre projet. Si un fichier de données manque ou a changé, exécutezpython get_data.py --reset. La dernière ligne doit êtreReady: train 16939 rows (1983 escalated), valid 1179 (183), test 1002 (157).(prêt : 16 939 lignes d’entraînement, dont 1 983 transférées au niveau supérieur; 1 179 de validation, dont 183 transférées; 1 002 de test, dont 157 transférées). - Pour exécuter le carnet localement, ouvrez-le dans VS Code avec l’extension Jupyter et le noyau
.venv, comme dans Définir une référence de base : ouvrir un carnet dans VS Code.
Testé sur macOS avec Python 3.14.6, pandas 3.0.6, scikit-learn 1.9.1 et matplotlib 3.11.2. Les commandes Windows n’ont pas été testées. Le carnet a été testé dans Jupyter.
Un score et un seuil
Section intitulée « Un score et un seuil »La plupart des classificateurs ne répondent pas directement « oui » ou « non ». Ils donnent à chaque cas un score : un nombre plus élevé quand la classe positive est plus probable. Le score à points de Larkfield attribue de 0 à 4 points. Les modèles d’apprentissage automatique du module 4 donnent un score de 0 à 1. Un filtre antipourriel donne à chaque courriel un score de pourriel. Un moteur de recherche donne à chaque page un score de pertinence.
Un score devient une décision seulement quand vous choisissez un seuil. Vous signalez alors chaque cas dont le score atteint ou dépasse ce seuil. Pour le score à points, le seuil est un nombre entier de points. La leçon précédente l’appelait la limite de signalement : « 3 points ou plus ». Les deux expressions désignent la même chose ici.
Le score classe les cas. Le seuil indique jusqu’où vous intervenez dans la liste classée. Dans la leçon précédente, une limite plus large (2 points plutôt que 3) augmentait le rappel et diminuait la précision. Cette leçon montre que cela arrive toujours, explique pourquoi et présente comment choisir.
Un filet de pêche
Section intitulée « Un filet de pêche »Imaginez que vous pêchez dans un étang avec un filet. L’étang contient les poissons que vous voulez, mais aussi des choses indésirables : vieilles bottes, boîtes de conserve, plantes aquatiques. Un petit filet au meilleur endroit attrape quelques poissons et presque aucun déchet. Un grand filet attrape tous les poissons, mais aussi beaucoup de déchets.
Description textuelle du graphique
Deux panneaux montrent le même étang avec 6 poissons (bleus) et 9 déchets, comme de vieilles bottes (gris). Dans le panneau gauche, un petit cercle en pointillé à gauche de l’étang contient 3 poissons et 1 botte. Dans le panneau droit, un grand ovale en pointillé couvre presque tout l’étang et contient les 6 poissons et 6 bottes. Trois bottes près des bords restent hors du grand filet.
Reprenons les termes de la leçon précédente. Les poissons sont les positifs, et les déchets sont les négatifs. Le rappel est la proportion de tous les poissons que le filet a attrapés. La précision est la proportion des prises qui sont des poissons. Le petit filet a une précision élevée et un faible rappel. Le grand filet a un rappel élevé et une faible précision.
Élargir le filet revient à abaisser le seuil. Vous attrapez davantage de choses voulues, mais aussi davantage de choses indésirables. Le même filet ne peut pas attraper plus de poissons et moins de déchets en même temps. C’est le compromis entre précision et rappel. Seul un meilleur filet, qui attrape les poissons et laisse passer les déchets, améliore les deux. Pour un classificateur, cela veut dire un meilleur score : un score qui place les positifs plus haut dans la liste.
Un moteur de recherche : précision@k et rappel@k
Section intitulée « Un moteur de recherche : précision@k et rappel@k »Un moteur de recherche fait face au même choix. Vous cherchez « réparer un tuyau d’arrosage », et le moteur classe les pages de la plus pertinente à la moins pertinente. Combien de résultats la première page devrait-elle afficher?
S’il affiche 3 résultats, la plupart sont probablement utiles, mais vous pourriez manquer une bonne page plus bas. S’il en affiche 100, les bonnes pages s’y trouvent, mais vous devez parcourir beaucoup de contenu inutile. Afficher plus de résultats revient à utiliser le grand filet.
Pour une liste classée, la coupure est un nombre de résultats, k. Deux métriques mesurent les k premiers résultats :
- Précision@k (« précision à k ») : parmi les k premiers résultats, la proportion de résultats pertinents.
- Rappel@k : parmi tous les résultats pertinents qui existent, la proportion présente dans les k premiers.
Voici une recherche avec 10 résultats. Les résultats 1, 2, 4 et 7 sont pertinents. Une autre page pertinente existe, mais le moteur l’a classée après le rang 10.
Description textuelle du graphique
Une liste verticale de dix résultats, numérotés de 1 à 10 depuis le haut. Les résultats 1, 2, 4 et 7 sont bleus avec une coche : ils sont pertinents. Les autres sont gris pâle. Une accolade à côté des résultats 1 à 3 indique k = 3, avec 2 résultats pertinents. Une accolade à côté des résultats 4 à 10 indique k = 10, avec 4 résultats pertinents au total. Sous la liste, une case vide en pointillé représente la cinquième page pertinente, absente des 10 premiers résultats.
| k | Résultats pertinents parmi les k premiers | Précision@k | Rappel@k |
|---|---|---|---|
| 1 | 1 | 1 ÷ 1 = 1,00 | 1 ÷ 5 = 0,20 |
| 3 | 2 | 2 ÷ 3 = 0,67 | 2 ÷ 5 = 0,40 |
| 5 | 3 | 3 ÷ 5 = 0,60 | 3 ÷ 5 = 0,60 |
| 10 | 4 | 4 ÷ 10 = 0,40 | 4 ÷ 5 = 0,80 |
Quand k augmente, le rappel@k peut seulement augmenter ou rester le même : une liste plus longue ne perd aucune page pertinente. La précision@k diminue généralement, car les meilleurs résultats sont en haut. C’est le même compromis, avec k à la place d’un seuil.
Vous retrouverez ces deux métriques dans RAG : créer une IA qui utilise vos données. RAG signifie génération augmentée par récupération. Dans ce cours, un programme cherche les passages qui répondent à une question dans une collection de documents. Il donne les k premiers passages à un modèle de langage. Le rappel@k demande : le passage contenant la réponse figure-t-il parmi les k premiers? Sinon, le modèle ne peut pas bien répondre. La précision@k demande : combien des k passages sont utiles, et combien ajoutent seulement du contenu inutile? On règle chaque système de récupération selon ce compromis.
Un seuil et un k sont deux façons de choisir où couper la même liste classée. Chez Larkfield, « signaler les billets de 3 points ou plus » et « examiner les 116 premiers billets de mai » désignent les mêmes 116 billets.
Déplacer le seuil sur dix billets
Section intitulée « Déplacer le seuil sur dix billets »Reprenez les dix billets de la leçon précédente. Les voici, classés par points : T-1 (4 points, transféré au niveau supérieur), T-3 et T-4 (3 points; T-3 transféré), T-2 et T-8 (2 points; T-8 transféré), T-5, T-7 et T-10 (1 point; T-5 transféré), puis T-6 et T-9 (0 point). Quatre ont été transférés. Abaissez le seuil, un point à la fois :
| Signaler à partir de | Signalés | VP | FP | FN | Précision | Rappel |
|---|---|---|---|---|---|---|
| 4 points ou plus | 1 | 1 | 0 | 3 | 1 ÷ 1 = 1,00 | 1 ÷ 4 = 0,25 |
| 3 ou plus | 3 | 2 | 1 | 2 | 2 ÷ 3 = 0,67 | 2 ÷ 4 = 0,50 |
| 2 ou plus | 5 | 3 | 2 | 1 | 3 ÷ 5 = 0,60 | 3 ÷ 4 = 0,75 |
| 1 ou plus | 8 | 4 | 4 | 0 | 4 ÷ 8 = 0,50 | 4 ÷ 4 = 1,00 |
| 0 ou plus (tous) | 10 | 4 | 6 | 0 | 4 ÷ 10 = 0,40 | 1,00 |
Lisez les deux colonnes de droite de haut en bas. Le rappel passe de 0,25 à 1,00, car chaque seuil plus bas détecte davantage de transferts au niveau supérieur. La précision passe de 1,00 à 0,40, car chaque seuil plus bas inclut aussi davantage de billets non transférés. En bas, tout est signalé : le rappel est de 1,00. La précision égale la proportion de billets transférés, soit 4 sur 10. En haut, les quelques signalements sont les cas les plus évidents.
Remarquez aussi que T-2 et T-8 ont tous deux 2 points. Aucun seuil ne peut signaler l’un sans l’autre. Un score à points a peu de valeurs possibles. Beaucoup de billets sont donc à égalité, et le seuil ne peut avancer que par étapes. Gardez cela en tête pour les données réelles.
Le compromis sur les données de mai
Section intitulée « Le compromis sur les données de mai »Passons aux 1 179 billets de mai des données de validation. Utilisez l’explorateur avant de lire le tableau. Le panneau supérieur montre les billets non transférés au niveau supérieur, et le panneau inférieur, les billets transférés, selon leurs points. Déplacez la limite de signalement et observez la matrice de confusion, les deux métriques et le point sur la courbe.
Explorer
Déplacez la limite de signalement du score à points
Prédisez d’abord : L'équipe principale peut examiner au plus 20 % des billets. Quelle est la limite de signalement la plus basse qui respecte cette capacité? Atteindra-t-elle le rappel cible de 40 %?
Les barres pleines sont signalées (au seuil ou au-dessus). Les barres pâles ne sont pas signalées. Chaque panneau a sa propre échelle, car les billets escaladés sont beaucoup moins nombreux.
À 4 points ou plus, 32 billets sont signalés : 18 escaladés et 14 fausses alertes. 165 des 183 escalades sont manquées. L’équipe senior peut examiner ce nombre.
| Classe réelle | Signalés | Non signalés | Total |
|---|---|---|---|
| Escaladés | 18vrai positif | 165faux négatif (manqué) | 183 |
| Non escaladés | 14faux positif (fausse alerte) | 982vrai négatif | 996 |
| Total | 32 | 1 147 | 1 179 |
- Signalés
- 32
- 2,7 % de 1 179 billets
- Précision
- 56,3 %
- 18 sur 32 signalements
- Rappel
- 9,8 %
- 18 sur 183 escalades
- Capacité
- Dans la capacité
- au plus 20,0 % (235 billets)
Chaque point de la courbe est un seuil. Le gros point est le seuil choisi. La ligne pointillée est la précision de signalements au hasard : la part des billets qui sont escaladés.
Description textuelle de l’explorateur
Le panneau supérieur est un diagramme à colonnes des 996 billets de mai non transférés au niveau supérieur, selon leurs points. Il y en a 303 avec 0 point, 469 avec 1, 161 avec 2, 49 avec 3 et 14 avec 4. Le panneau inférieur montre les 183 billets transférés : 17 avec 0 point, 63 avec 1, 50 avec 2, 35 avec 3 et 18 avec 4. Les billets transférés ont plus de points en moyenne, mais les deux groupes se chevauchent à chaque valeur. Une ligne verticale marque la limite de signalement; les colonnes à sa droite sont signalées.
À la limite initiale de 4 points (le maximum), 32 billets sont signalés : 18 transférés et 14 non transférés. La précision est de 56,2 % et le rappel de 9,8 %. À 3 ou plus : 116 signalés (9,8 %), précision de 45,7 %, rappel de 29,0 %, dans la capacité de 235 billets. À 2 ou plus : 327 signalés (27,7 %), précision de 31,5 %, rappel de 56,3 %, au-delà de la capacité. À 1 ou plus : 859 signalés, précision de 19,3 %, rappel de 90,7 %. À 0 ou plus, chaque billet est signalé : précision de 15,5 % (la proportion de billets transférés) et rappel de 100 %. À 5 ou plus, rien n’est signalé et la précision n’est pas définie. La courbe précision-rappel en dessous relie ces points. La précision passe de 56,2 % à 15,5 % tandis que le rappel passe de 9,8 % à 100 %.
Voici les mêmes nombres dans un tableau, de la limite de signalement la plus stricte à la plus large :
| Signaler à partir de | Signalés | Proportion signalée | VP | FP | FN | Précision | Rappel |
|---|---|---|---|---|---|---|---|
| 4 points | 32 | 2,7 % | 18 | 14 | 165 | 0,562 | 0,098 |
| 3 ou plus | 116 | 9,8 % | 53 | 63 | 130 | 0,457 | 0,290 |
| 2 ou plus | 327 | 27,7 % | 103 | 224 | 80 | 0,315 | 0,563 |
| 1 ou plus | 859 | 72,9 % | 166 | 693 | 17 | 0,193 | 0,907 |
| 0 ou plus (tous) | 1 179 | 100 % | 183 | 996 | 0 | 0,155 | 1,000 |
- Précision
- Rappel
- Proportion de billets signalés
- Capacité : 20 % signalés (pointillé)
Description textuelle du graphique
Un graphique à courbes avec la limite de signalement de 0+ à 5+ points sur l’axe horizontal. L’axe vertical indique une valeur de 0 % à 100 %. Une ligne horizontale en pointillé marque la capacité : 20 % de billets signalés. La précision passe de 15,5 % à 0+ à 19,3 %, 31,5 %, 45,7 % et 56,2 % à 4+. Elle n’a aucune valeur à 5+, où rien n’est signalé. Le rappel passe de 100 % à 0+ à 90,7 %, 56,3 %, 29,0 %, 9,8 % et 0 % à 5+. La proportion signalée passe de 100 % à 72,9 %, 27,7 %, 9,8 %, 2,7 % et 0 %. Elle croise la ligne de capacité entre 2+ et 3+.
Trois choses à remarquer :
- La précision et le rappel évoluent en sens opposés. Chaque étape vers la droite augmente la précision et diminue le rappel. Aucune limite de signalement n’est la meilleure pour les deux.
- La décision choisit la limite de signalement, pas les données. L’équipe de Grace peut examiner au plus 20 % des billets, soit 235 de ces 1 179 billets. Une limite plus basse détecte davantage de transferts au niveau supérieur. La meilleure limite est donc la plus basse qui respecte la capacité. C’est 3 points ou plus : 116 billets signalés, une précision de 0,457 et un rappel de 0,290.
- La limite de signalement seule ne peut pas utiliser toute la capacité. L’étape suivante, 2 points ou plus, signale 27,7 % des billets, au-delà de la capacité. Ainsi, 119 des 235 examens possibles restent inutilisés. La raison : 211 billets sont à égalité avec 2 points, et le score ne peut pas les distinguer. Le rappel reste à 0,290, sous la cible de 0,40.
Départager les égalités
Section intitulée « Départager les égalités »Grace ne veut pas perdre 119 examens possibles. La solution est une règle de départage : une façon équitable de choisir parmi les billets ayant le même score. La règle de Larkfield est simple. Signalez chaque billet ayant 3 points ou plus. Ensuite, signalez les billets ayant 2 points par ordre d’arrivée, premier arrivé, premier signalé, jusqu’à atteindre la capacité. Priya l’applique à mai : les 116 billets ayant 3 points ou plus, puis les 119 premiers billets ayant 2 points.
| Mai, 1 179 billets | Signalés | Proportion signalée | Détectés | Précision | Rappel |
|---|---|---|---|---|---|
| 3 points ou plus | 116 | 9,8 % | 53 | 0,457 | 0,290 |
| 3 ou plus, puis 2 points par ordre d’arrivée | 235 | 19,9 % | 84 | 0,357 | 0,459 |
| Règle de priorité 1 (pour comparer) | 163 | 13,8 % | 61 | 0,374 | 0,333 |
Avec toute la capacité, le score à points détecte 84 des 183 transferts au niveau supérieur, soit un rappel de 0,459. Il atteint la cible d’amélioration sur les données de mai. La précision tombe à 0,357, car les billets de 2 points sont moins souvent transférés (23,7 %) que ceux de 3 points. C’est encore le compromis : plus d’examens, plus de transferts détectés, une proportion plus faible d’examens utiles. L’ordre d’arrivée n’ajoute aucune information sur le risque. Il répartit seulement les examens de façon équitable entre des billets qui semblent identiques. Un score avec beaucoup de valeurs différentes, comme ceux des modèles du module 4, n’a pas besoin de règle de départage.
Le compromis n’est pas un défaut du score à points. Tout score qui n’est pas parfait présente ce compromis. Si Grace avait deux fois la capacité, la limite pourrait passer à 2 points, avec un rappel de 0,563 et une précision de 0,315. Le même score, une décision différente, un seuil différent.
La courbe précision–rappel
Section intitulée « La courbe précision–rappel »Le tableau a cinq lignes, et un modèle a des centaines de seuils possibles. Pour les voir tous ensemble, représentez chaque seuil par un point, avec le rappel à l’horizontale et la précision à la verticale. La ligne qui relie les points est la courbe précision–rappel (courbe PR). Le gros point de l’explorateur se déplace sur cette courbe.
- Score à points (un point par seuil)
- Signalements aléatoires (ligne pointillée)
Description textuelle du graphique
Un graphique avec le rappel de 0 % à 100 % à l’horizontale et la précision de 0 % à 100 % à la verticale. La courbe du score à points comporte cinq points : une précision de 56,2 % avec un rappel de 9,8 % (4 points), 45,7 % avec 29,0 % (3+), 31,5 % avec 56,3 % (2+), 19,3 % avec 90,7 % (1+) et 15,5 % avec 100 % (tous les billets). Elle descend du coin supérieur gauche au coin inférieur droit. Une ligne horizontale pointillée à 15,5 % représente les signalements aléatoires : quel que soit le rappel, leur précision égale la proportion de billets transférés. Deux points isolés représentent les règles. La règle de priorité 1 se situe à 33,3 % de rappel et 37,4 % de précision, sous la courbe. La règle de Grace (priorité 1 ou garantie) se situe à 53,6 % de rappel et 31,4 % de précision, également sous la courbe.
Une courbe plus haute est meilleure : à rappel égal, une plus grande proportion des signalements est correcte. La règle de priorité 1 et celle de Grace, dans Définir une référence de base, sont des points isolés. Une règle n’a pas de score auquel appliquer un seuil. Les deux se trouvent sous la courbe du score à points : à rappel égal, ce score offre une meilleure précision. La ligne pointillée est le plancher : si vous signalez des billets au hasard, environ 15,5 % sont transférés, quel que soit le rappel.
La précision moyenne
Section intitulée « La précision moyenne »Une courbe est difficile à mettre dans un tableau. Pour comparer deux scores avec un seul nombre, résumez toute la courbe : prenez l’aire sous celle-ci. La méthode habituelle de calcul est la précision moyenne (AP).
Voici l’idée, sur les dix billets : descendez la liste classée, seuil par seuil. Chaque fois que vous détectez un transfert de plus, notez la précision à cet endroit. Puis calculez la moyenne de ces précisions.
- À 4 points, vous détectez le premier transfert (T-1). Précision : 1 ÷ 1 = 1,00.
- À 3 ou plus, vous détectez le deuxième (T-3). Précision : 2 ÷ 3 = 0,67.
- À 2 ou plus, le troisième (T-8). Précision : 3 ÷ 5 = 0,60.
- À 1 ou plus, le quatrième (T-5). Précision : 4 ÷ 8 = 0,50.
AP = (1,00 + 0,67 + 0,60 + 0,50) ÷ 4 = 0,692. En général, chaque précision est pondérée par l’augmentation du rappel à cette étape. Ici, chaque étape détecte exactement un des quatre transferts. Les poids sont donc égaux, et l’AP est une simple moyenne.
Lisez ainsi : pour chaque seuil n, multipliez l’augmentation du rappel par la précision à cet endroit, puis additionnez les résultats. L’AP est élevée quand les transferts se trouvent près du début de la liste, là où la précision est élevée. Un score parfait, qui place chaque transfert avant tous les autres billets, donne AP = 1.
Quel est le plancher? Un score incapable de classer, comme un score identique pour chaque billet, signale tout à la fois. Sa précision est la proportion de positifs. Son AP égale donc la proportion de positifs : 0,155 en mai. Lisez toujours l’AP avec ce plancher. En mai, le score à points a une AP de 0,310, environ le double du plancher.
L’AP convient à Larkfield parce que les transferts sont rares (15,5 %). La décision concerne le début de la liste, où travaille l’équipe expérimentée. L’AP repose sur les précisions, et la précision varie beaucoup au début. On appelle aussi l’AP l’aire sous la courbe PR, ou PR AUC.
La courbe ROC
Section intitulée « La courbe ROC »Il existe une deuxième courbe classique. Elle représente aussi un point par seuil, mais utilise deux taux différents :
- à l’horizontale, le taux de faux positifs : parmi les billets non transférés, la proportion signalée. Vous l’avez vu dans Les compromis en classification, dans le cours Mathématiques et statistiques essentielles pour l’IA. Il correspond à FP ÷ (FP + TN).
- à la verticale, le taux de vrais positifs, un autre nom du rappel : TP ÷ (TP + FN).
Cette courbe est la courbe ROC. Son nom vient des ingénieurs radar de la Seconde Guerre mondiale : « receiver operating characteristic », ou caractéristique de fonctionnement du récepteur. Elle montre combien de vrais positifs vous détectez pour chaque proportion de négatifs signalés par erreur.
- Score à points (un point par seuil)
- Choix au hasard (ligne pointillée)
Description textuelle du graphique
Un graphique avec le taux de faux positifs de 0 % à 100 % à l’horizontale et le taux de vrais positifs (rappel) de 0 % à 100 % à la verticale. La courbe du score à points commence en bas à gauche (aucun signalement). Elle passe par 1,4 % et 9,8 % (4 points), 6,3 % et 29,0 % (3+), 22,5 % et 56,3 % (2+), 69,6 % et 90,7 % (1+), puis atteint 100 % et 100 % (tous les billets). Elle reste au-dessus de la diagonale pointillée, qui représente le choix au hasard. La règle de priorité 1 est un point isolé à 10,2 % et 33,3 %, juste sous la courbe.
La diagonale pointillée représente le choix au hasard : vous signalez alors la même proportion de billets transférés et d’autres billets. Un score utile courbe la ligne vers le coin supérieur gauche : il détecte beaucoup de transferts et signale peu d’autres billets.
La ROC AUC
Section intitulée « La ROC AUC »L’aire sous la courbe ROC est la ROC AUC (aire sous la courbe). Son sens est simple et plus facile à retenir que la courbe : la ROC AUC est la probabilité qu’un billet transféré choisi au hasard obtienne un score supérieur à un autre billet choisi au hasard. Une égalité compte pour une moitié.
Vérifiez avec les dix billets. Il y a 4 billets transférés et 6 autres billets, donc 4 × 6 = 24 paires.
- T-1 (4 points) dépasse les 6 autres : 6 paires.
- T-3 (3 points) dépasse 5 d’entre eux et égale T-4 : 5 + 0,5 = 5,5.
- T-8 (2 points) en dépasse 4 et égale T-2 : 4,5.
- T-5 (1 point) dépasse les 2 billets à 0 point et égale T-7 et T-10 : 2 + 1 = 3.
ROC AUC = (6 + 5,5 + 4,5 + 3) ÷ 24 = 19 ÷ 24 = 0,792. Un classement parfait donne 1,0, et le choix au hasard donne 0,5 : une chance sur deux pour chaque paire. En mai, le score à points a une ROC AUC de 0,715.
La ROC AUC est courante dans les rapports. Son sens ne dépend pas de la rareté des positifs. C’est une force et une faiblesse. Avec des positifs rares, la plupart des paires sont faciles : un billet sans problème à 0 point, classé sous un transfert. Ces paires augmentent la ROC AUC, mais ne disent rien du début de la liste, où se prend la décision. De plus, le taux de faux positifs divise par tous les négatifs, qui sont nombreux. Signaler 63 billets par erreur ne représente que 6,3 % des 996 autres billets, un petit déplacement horizontal sur le graphique. Mais ces 63 billets représentent plus de la moitié des 116 signalements. Donc, avec des positifs rares, la ROC AUC peut sembler bonne malgré une faible précision au début de la liste. Utilisez plutôt l’AP, ou la précision et le rappel au seuil choisi.
Choisir un résumé
Section intitulée « Choisir un résumé »Vous avez maintenant trois façons de mesurer un score : à un seuil, sur les k premiers éléments et sur tous les seuils. Choisissez selon les besoins de la décision.
Si le seuil est déjà fixé, mesurez la précision et le rappel à ce seuil, ainsi que la proportion signalée. Si une capacité limite le nombre de cas à traiter, mesurez le rappel à ce taux de signalement. La cible de Larkfield est de ce type. Pour une liste de k éléments, mesurez précision@k et rappel@k. Si vous comparez deux scores avant le choix d’un seuil, résumez tous les seuils. Utilisez la précision moyenne quand les positifs sont rares et que le début de la liste compte. Utilisez la ROC AUC quand les classes sont plus équilibrées, ou quand un rapport exige un nombre indépendant du taux de base.
| Ce que vous devez décider | Métrique | Exemple de Larkfield |
|---|---|---|
| Ce seuil est-il suffisant? | Précision et rappel au seuil, et proportion signalée | 3+ points : précision de 0,457, rappel de 0,290, 9,8 % signalés |
| Que détectons-nous avec notre capacité? | Rappel à un taux de signalement fixe, ou rappel@k | La cible : rappel d’au moins 0,40 avec au plus 20 % signalés; avec la règle d’égalité, 0,459 |
| Quelle est la qualité des k premiers éléments d’une liste? | Précision@k (et rappel@k) | Les 32 billets à 4 points : précision@32 = 0,562 |
| Lequel des deux scores classe mieux des positifs rares? | Précision moyenne, avec son plancher (la proportion de positifs) | Score à points : AP de 0,310; plancher de 0,155 |
| Lequel des deux scores classe mieux, dans un rapport courant? | ROC AUC, avec son plancher (0,5) | Score à points : ROC AUC de 0,715 |
| Récupération pour la RAG | Rappel@k, puis précision@k | Le passage contenant la réponse est-il parmi les k premiers? |
Exemple détaillé : Priya résume le score à points
Section intitulée « Exemple détaillé : Priya résume le score à points »Priya calcule les deux résumés et les mesures du début de la liste pour les billets de mai. Les cellules de préparation, load(), points_score() et flag_report() sont les mêmes que dans Les métriques de classification. valid contient les billets de mai. D’abord, les résumés avec leurs planchers :
from sklearn.metrics import average_precision_score, roc_auc_score
y = valid[TARGET]points = points_score(valid)print("average precision:", round(average_precision_score(y, points), 3), "| floor:", round(y.mean(), 3))print("ROC AUC:", round(roc_auc_score(y, points), 3), "| floor: 0.5")La sortie :
average precision: 0.31 | floor: 0.155ROC AUC: 0.715 | floor: 0.5scikit-learn gère les égalités pour vous : tous les billets ayant le même nombre de points entrent ensemble, à une seule étape du seuil. Ensuite, Priya calcule précision@k et rappel@k pour le début de la liste classée. Elle trie par points et conserve l’ordre d’arrivée des billets ayant le même nombre de points : c’est la règle d’égalité. Ainsi, k = 32 et k = 116 correspondent aux seuils 4 et 3. k = 235 correspond à toute la capacité avec la règle d’égalité :
def at_k(y, scores, k): """Precision and recall of the k highest scores.""" top = np.argsort(-np.asarray(scores), kind="stable")[:k] caught = int(np.asarray(y)[top].sum()) return round(caught / k, 3), round(caught / int(np.sum(y)), 3)
for k in (32, 116, 235): print(f"k = {k}: precision@k, recall@k =", at_k(y, points, k))k = 32: precision@k, recall@k = (0.562, 0.098)k = 116: precision@k, recall@k = (0.457, 0.29)k = 235: precision@k, recall@k = (0.357, 0.459)Les deux premières lignes correspondent aux seuils 4 et 3 du tableau ci-dessus, et la dernière à la règle d’égalité. Un k et un seuil sont deux façons de couper la même liste. Voici le résumé de Priya pour Grace : « Le score à points classe les transferts environ deux fois mieux que le hasard (AP de 0,310 contre 0,155). Pour votre capacité, signalez les billets à 3 points ou plus. Puis ajoutez ceux à 2 points par ordre d’arrivée, jusqu’à 235 par mois. Environ 1 examen sur 3 trouve un vrai transfert. Nous détectons 46 % des transferts, plus que la cible de 40 %. Le mois de test le confirmera plus tard. »
Exercice guidé : la courbe en code
Section intitulée « Exercice guidé : la courbe en code »Utilisez les sections 1 à 4 du carnet (notebook) Jupyter.
- Ouvrez le carnet depuis l’encadré au début de cette page, dans Colab, Kaggle ou VS Code.
- Exécutez les cellules de préparation. Vous devriez voir
pandas 3.0.6,scikit-learn 1.9.1et la ligneReady:(prêt). - Dans la section 1, exécutez les dix billets. Vous devriez voir
AP 0.692etROC AUC 0.792. - Dans la section 2, calculez précision@3 et rappel@3 pour l’exemple de recherche. La cellule de vérification affiche
Check passed: (precision_at_3, recall_at_3) is right.(vérification réussie : les deux valeurs sont correctes). - Dans la section 3, exécutez le tableau des seuils pour mai. Vous devriez voir les cinq lignes du tableau ci-dessus.
- Dans la section 4, appelez
precision_recall_curve(y, points)desklearn.metrics. Cette fonction renvoie la précision et le rappel à chaque seuil, ainsi que les seuils. - Tracez le rappel à l’horizontale et la précision à la verticale. Vous devriez voir la courbe du graphique ci-dessus.
- Exécutez les résumés. Vous devriez voir
average precision: 0.31(précision moyenne : 0,31) etROC AUC: 0.715.
Afficher la réponse
from sklearn.metrics import precision_recall_curve
precision, recall, thresholds = precision_recall_curve(y, points)for p, r, t in zip(precision, recall, thresholds): print(f"{t} points or more: precision {p:.3f}, recall {r:.3f}")0 points or more: precision 0.155, recall 1.0001 points or more: precision 0.193, recall 0.9072 points or more: precision 0.315, recall 0.5633 points or more: precision 0.457, recall 0.2904 points or more: precision 0.562, recall 0.098precision_recall_curve renvoie une paire précision–rappel de plus que le nombre de seuils. La dernière paire est (1,0, 0,0), le point sans signalement, que zip omet. Les seuils vont du plus bas au plus haut. Le tableau va donc de la sélection la plus large à la plus petite.
À vous de jouer : des transferts plus rares
Section intitulée « À vous de jouer : des transferts plus rares »Changez une condition : la rareté de la classe positive. Gardez les 996 billets de mai non transférés, mais seulement 61 des 183 transferts, choisis au hasard. Les points de chaque billet ne changent pas. Avant d’exécuter la section 5 du carnet, prédisez : la ROC AUC augmente-t-elle, diminue-t-elle ou reste-t-elle à peu près identique? Et l’AP?
Afficher la réponse
rng = np.random.default_rng(0)escalated = np.where(y == 1)[0]others = np.where(y == 0)[0]keep = np.concatenate([rng.choice(escalated, 61, replace=False), others])y_rare, points_rare = y.to_numpy()[keep], points.to_numpy()[keep]print(f"escalated: {y_rare.mean():.1%}")print("ROC AUC:", round(roc_auc_score(y_rare, points_rare), 3))print("average precision:", round(average_precision_score(y_rare, points_rare), 3))escalated: 5.8%ROC AUC: 0.704average precision: 0.135La ROC AUC reste à peu près identique (0,704 contre 0,715). Elle compare des paires. Un billet transféré dépasse encore un autre billet choisi au hasard aussi souvent qu’avant. L’AP passe de 0,310 à 0,135. Avec moins de transferts, chaque signalement trouve moins souvent un transfert, donc la précision baisse à chaque seuil. Son plancher a aussi baissé, de 0,155 à 0,058. Les deux métriques sont correctes; elles répondent à des questions différentes. Comparez donc l’AP seulement entre des scores sur les mêmes billets, toujours avec son plancher. Et quand les positifs sont rares, ne laissez pas une bonne ROC AUC masquer une faible précision.
Erreur courante
Précision comparée à des charges de travail différentes
Symptôme : Tomás compare le score à points à la règle de priorité 1. Il rapporte : « À 3 points ou plus, le score à points a une précision de 0,457. La règle donne 0,374. Le score à points est 22 % plus précis. » Omar est satisfait et demande à Grace de changer de méthode.
for name, flags in [("rule: priority 1", valid["priority"] == 1), ("points: 3 or more", points >= 3)]: report = flag_report(y, flags) print(f"{name:18s} flagged {report['flagged']:3d} | precision {report['precision']} | recall {report['recall']}")rule: priority 1 flagged 163 | precision 0.374 | recall 0.333points: 3 or more flagged 116 | precision 0.457 | recall 0.29Cause : les deux ensembles de signalements ont des tailles différentes. À 3 points ou plus, le score ne signale que 116 billets, ses cas les plus clairs, et détecte 53 transferts. La règle en signale 163 et détecte 61 transferts. Un seuil plus strict augmente presque toujours la précision. Comparer la précision à différentes charges de travail compare donc deux décisions différentes, pas deux classificateurs. Avec le seul argument de Tomás, Grace adopterait un signalement qui détecte 8 transferts de moins par mois.
Correction : comparez les classificateurs à charge de travail égale, ou sur tous les seuils. Accordez au score à points les 163 examens de la règle, avec la règle d’égalité. at_k(y, points, 163) donne une précision de 0,405 et un rappel de 0,361. À charge de travail égale, le score à points dépasse la règle sur les deux mesures. Sur la courbe précision–rappel, la règle est un point sous la courbe du score à points. Vous pouvez aussi comparer l’AP des deux scores.
Conséquence en IA : une précision ou un rappel seul, sans le seuil et la proportion signalée, ne dit presque rien. Les équipes qui annoncent « 95 % de précision » pour un système de récupération ou un filtre antifraude utilisent souvent un seuil qui signale très peu de cas. Demandez chaque fois l’autre mesure et la charge de travail.
Vérification des connaissances
Section intitulée « Vérification des connaissances »Vérifiez votre compréhension
Une recherche d'article de soutien renvoie 5 résultats. Les résultats 1, 3 et 4 sont utiles. La base de connaissances contient 6 articles utiles pour cette question. Quelles sont précision@5 et rappel@5? Si la recherche renvoyait 20 résultats, laquelle des deux pourrait diminuer?
Afficher la réponse
Précision@5 = 3 ÷ 5 = 0,6 : trois des cinq résultats sont utiles. Rappel@5 = 3 ÷ 6 = 0,5 : la moitié des articles utiles sont parmi les 5 premiers. Avec 20 résultats, rappel@20 ne peut pas être inférieur à 0,5, car les 20 premiers comprennent les 5 premiers. Précision@20 peut diminuer, et diminue généralement. Les 15 résultats supplémentaires sont moins bien classés, donc une plus petite proportion est utile.
Votre réponse contient-elle les points principaux de la nôtre ?
Connectez-vous et inscrivez-vous au cours pour enregistrer vos réponses. Chaque vérification compte pour le certificat.
Vérifiez votre compréhension
Prédisez : la capacité de Grace passe de 20 % à 40 % des billets. Quel seuil du score à points choisissez-vous maintenant, et que deviennent la précision et le rappel?
Afficher la réponse
Choisissez le seuil le plus bas qui signale au plus 40 % des billets. À 2 points ou plus, on signale 27,7 % des billets de mai. À 1 ou plus, on en signale 72,9 %, soit trop. À 2 ou plus, le rappel passe de 0,290 à 0,563 : on détecte 103 des 183 transferts. La précision passe de 0,457 à 0,315 : environ 1 examen sur 3 trouve un transfert. Avec la règle d’égalité, Grace pourrait aussi ajouter des billets à 1 point par ordre d’arrivée, jusqu’à 40 %. Le score reste le même; la décision a déplacé le seuil.
Votre réponse contient-elle les points principaux de la nôtre ?
Connectez-vous et inscrivez-vous au cours pour enregistrer vos réponses. Chaque vérification compte pour le certificat.
Exercices du module
Section intitulée « Exercices du module »Ce module vous a appris à évaluer un modèle supervisé avant d’en créer un. Utilisez des données distinctes, choisissez la métrique adaptée à la décision et gardez le compromis en vue. Les exercices du module réunissent ces éléments pour les signalements de transfert au niveau supérieur chez Larkfield.
Exercice guidé : évaluer deux règles de signalement selon la capacité
Section intitulée « Exercice guidé : évaluer deux règles de signalement selon la capacité »Utilisez le carnet (notebook) Jupyter, section 7.
- Calculez
flag_report()sur les données de validation pour la règle de priorité 1. - Trouvez le seuil le plus bas du score par points qui signale au plus 20 % des billets de mai. Placez-le dans
cut_20. - Exécutez la cellule de vérification pour
cut_20. - Calculez
flag_report()pour le score par points au seuilcut_20. - Utilisez la capacité restante avec la règle de départage :
at_k(y, points, 235). - Rédigez une courte note d’évaluation pour Grace. Pour chaque méthode de signalement, indiquez la proportion signalée, la précision et le rappel. Indiquez aussi si elle respecte la cible (au plus 20 % signalés, rappel d’au moins 0,40).
Afficher une réponse modèle
cut_20 = min(c for c in range(6) if (points >= c).mean() <= 0.20)print("cut-off:", cut_20)for name, flags in [("rule: priority 1", valid["priority"] == 1), (f"points: {cut_20} or more", points >= cut_20)]: report = flag_report(y, flags) print(f"{name:18s} {report['share flagged']:.1%} flagged | precision {report['precision']} | recall {report['recall']}")print("tie rule, 235 flags: precision, recall =", at_k(y, points, 235))cut-off: 3rule: priority 1 13.8% flagged | precision 0.374 | recall 0.333points: 3 or more 9.8% flagged | precision 0.457 | recall 0.29tie rule, 235 flags: precision, recall = (0.357, 0.459)Note pour Grace (données de validation, mai 2026, 1 179 billets, 183 transférés au niveau supérieur) : « La règle de priorité 1 signale 13,8 % des billets. Parmi ses signalements, 37 % sont transférés au niveau supérieur. Elle repère 33 % des transferts : c’est sous la cible. Le score par points au seuil de 3 points ou plus signale seulement 9,8 % des billets. Parmi ses signalements, 46 % sont transférés, mais il ne repère que 29 % des transferts. Il laisse 119 examens inutilisés, car le seuil suivant, 2 points, signale 28 % des billets. Avec la règle de départage, il signale 19,9 % des billets. On ajoute alors les billets de 2 points dans l’ordre d’arrivée, jusqu’à 235 par mois. Parmi ses signalements, 36 % sont transférés, et il repère 46 % des transferts. Cela respecte la cible pour mai. Nous le confirmerons sur le mois de test seulement à la fin. Le module 4 crée des modèles aux scores plus fins, qui n’ont pas besoin de règle de départage. »
Votre tâche : une autre décision
Section intitulée « Votre tâche : une autre décision »L’équipe de l’entrepôt de Larkfield demande un nouveau signalement : « Quelles commandes seront retournées? » Le traitement d’une commande retournée coûte environ 15 dollars. Avant l’expédition, l’équipe peut appeler au plus 50 clients par jour, sur environ 400 commandes. Un appel prend quelques minutes. Appeler un client qui ne retournerait pas sa commande ne coûte rien de plus. Choisissez la métrique principale pour cette décision. Indiquez quel nombre limite les signalements et comment vous compareriez deux scores. Écrivez quatre ou cinq phrases.
Afficher une réponse modèle
L’équipe peut faire 50 appels par jour. La décision repose donc sur une liste classée avec un k fixe de 50, sur environ 400 commandes (12,5 %). La métrique principale est le rappel@50 : parmi toutes les commandes retournées, combien figurent dans les 50 appels. La précision@50 l’accompagne, car elle indique combien d’appels sont utiles. Mais un appel inutile coûte peu, donc le rappel compte davantage. L’exactitude n’est pas utile : les clients ne retournent que quelques commandes. Une règle qui prédit « aucun retour » est donc très exacte, mais inutile. Pour comparer deux scores, calculez leur rappel@50 et leur précision@50 sur les mêmes journées de validation. Ajoutez l’AP comme résumé du classement complet, à côté de son plancher, la proportion de commandes retournées.
Vérification des connaissances du module
Section intitulée « Vérification des connaissances du module »Vérifiez votre compréhension
Rappel des connaissances : en une phrase chacun, que mesurent la précision et le rappel, et quel type d'erreur réduit chacun?
Afficher la réponse
La précision est la proportion de signalements (ou des k premiers résultats) réellement positifs; les faux positifs, les fausses alertes, la réduisent. Le rappel est la proportion de tous les vrais positifs signalés (ou parmi les k premiers); les faux négatifs, les cas manqués, le réduisent. Aucun des deux n’utilise les vrais négatifs. C’est pourquoi ils restent fiables quand la classe positive est rare.
Votre réponse contient-elle les points principaux de la nôtre ?
Connectez-vous et inscrivez-vous au cours pour enregistrer vos réponses. Chaque vérification compte pour le certificat.
Vérifiez votre compréhension
Explication : Tomás veut choisir le seuil du score par points sur les données de test (juin), car elles sont les plus récentes. Pourquoi faut-il choisir le seuil sur les données de validation, et à quoi servent les données de test?
Afficher la réponse
Un seuil est un choix, comme un réglage de modèle. Si vous le choisissez en regardant les données de test, le score de test n’est plus une estimation fiable. Vous avez choisi l’option qui fonctionnait le mieux sur ces billets précis. Le score est donc trop bon, et il ne reste aucune nouvelle donnée pour le vérifier. Choisissez le seuil sur les données de validation (mai), qui servent à choisir et à comparer. Utilisez les données de test (juin) une seule fois, à la fin. Elles montrent comment le choix final fonctionne sur de nouveaux billets. Après les avoir consultées, ne changez rien. C’est l’examen final scellé de la leçon Données d’entraînement, de validation et de test.
Votre réponse contient-elle les points principaux de la nôtre ?
Connectez-vous et inscrivez-vous au cours pour enregistrer vos réponses. Chaque vérification compte pour le certificat.
Vérifiez votre compréhension
Mise en pratique : un hôpital utilise un modèle pour choisir les radiographies thoraciques qu'un radiologiste lit en premier. Toutes les radiographies sont lues le jour même; les 30 premières sont lues en moins d'une heure. Un cas urgent manqué et lu tard peut nuire au patient. Choisissez la métrique pour cette décision et justifiez-la.
Afficher la réponse
Le modèle classe les radiographies, et la décision porte sur les 30 premières chaque jour. Il faut donc une métrique des k premiers résultats : le rappel@30. C’est la proportion des cas urgents du jour qui figurent parmi les 30 premiers. Manquer un cas urgent est l’erreur coûteuse, donc le rappel compte le plus. La précision@30 l’accompagne : elle montre quelle part de la première heure du radiologiste sert aux cas urgents. L’exactitude ne convient pas ici, car les cas urgents sont rares. Pour comparer deux modèles avant de faire un choix, utilisez l’AP à côté de la proportion de cas urgents.
Votre réponse contient-elle les points principaux de la nôtre ?
Connectez-vous et inscrivez-vous au cours pour enregistrer vos réponses. Chaque vérification compte pour le certificat.
Fin du module 3
Section intitulée « Fin du module 3 »Vous pouvez maintenant évaluer un modèle supervisé avant d’en créer un. Le module 3 vous a donné quatre outils : trois ensembles de données avec trois rôles, des métriques de régression pour les nombres, des métriques de classification pour les classes, et le compromis entre un score et son seuil. Le module 4 crée les premiers modèles, et vous les mesurez avec exactement ces outils.
Revenir à un état connu
Section intitulée « Revenir à un état connu »Le module 3 n’ajoute pas de fichiers à votre projet. Si votre dossier de projet ne fonctionne plus, ou si un fichier de données manque ou a changé :
- Ouvrez un terminal dans
~/projects/ticket-modelet activez l’environnement.venv. - Exécutez
python get_data.py --reset. - Vérifiez la dernière ligne :
Ready: train 16939 rows (1983 escalated), valid 1179 (183), test 1002 (157).(Prêt : entraînement, 16 939 lignes dont 1 983 transférées; validation, 1 179 dont 183; test, 1 002 dont 157.)
Les carnets Jupyter de ce module n’ont besoin d’aucune de ces étapes : chacun télécharge sa propre copie des données.
Récapitulatif
- Un score classe les cas, et un seuil (ou un k) coupe la liste. Un seuil plus bas repère davantage de positifs (rappel accru) et de fausses alertes (précision réduite). Seul un meilleur score améliore les deux.
- La décision détermine le seuil. Pour Larkfield, c’est le seuil le plus bas qui respecte la capacité de 20 % : 3 points ou plus. La précision est de 0,457 et le rappel de 0,290. Une règle de départage (billets de 2 points dans l’ordre d’arrivée) remplit la capacité : précision de 0,357, rappel de 0,459.
- La précision@k et le rappel@k mesurent les k premiers résultats d’une liste classée. Le cours RAG : créer une IA qui utilise vos données les utilise pour évaluer la récupération.
- La courbe PR et la précision moyenne résument tous les seuils. Le plancher de l’AP est la proportion de positifs (score par points : AP de 0,310, plancher de 0,155). La courbe ROC et l’aire sous la courbe ROC utilisent le taux de faux positifs, avec un plancher de 0,5 (score par points : 0,715). Quand les positifs sont rares, préférez l’AP.
- Le module 3 en bref : séparez les données pour que le juge n’ait jamais vu les réponses. Choisissez la métrique selon la décision. Lisez chaque nombre avec sa référence de base, son plancher et son seuil.
Ensuite, le module 4 crée les premiers modèles : une régression pour les billets quotidiens et un classificateur pour les transferts au niveau supérieur. Vous les mesurez avec ces métriques.
Leçon suivante : Comprendre la régression