Le détecteur qui ne se déclenche jamais est juste à 99,5 %
À un taux de base réaliste, le détecteur inerte gagne sur la justesse, une ROC de 0,9468 masque une file d’alertes fausse à 64 %, la distance à la moyenne se classe sous le hasard quand les anomalies siègent au centre, et vingt anomalies groupées se cachent les unes les autres de la méthode conçue pour les trouver.
Prérequis : Classification Methods Compared
Vingt mille événements, cent d’entre eux des anomalies. Répondez « normal » à tout et vous êtes juste à 99,50 %.
Ce n’est pas une plaisanterie sur les métriques. C’est la contrainte autour de laquelle tout le domaine est bâti, et elle survit à chaque tentative de la contourner par un meilleur modèle.
Chaque métrique hérite du taux de base
Prenez un détecteur qui fonctionne réellement : il classe les anomalies au-dessus des événements normaux, avec le recouvrement qu’a tout score réel. Notez-le deux fois :
| métrique | valeur |
|---|---|
| aire sous la ROC | 0,9468 |
| précision moyenne | 0,3245 |
| ce qu’obtient un détecteur aléatoire sur la seconde | 0,0050 |
Les deux sont exactes. Elles divisent par des choses différentes.
Le taux de faux positifs divise par les 19 900 événements normaux : mille fausses alertes le déplacent de cinq points et la courbe ROC reste collée au coin. La précision divise par le nombre d’alertes, où mille fausses alertes sont la file entière.
La question à laquelle répond une métrique importe donc plus que le nombre. La ROC décrit le détecteur. La précision décrit ce que voit la personne d’astreinte :
| vous examinez | dont réelles | précision | rappel |
|---|---|---|---|
| les 50 premières | 26 | 52 % | 26 % |
| les 100 premières | 36 | 36 % | 36 % |
| les 500 premières | 67 | 13,4 % | 67 % |
Près de deux fausses alertes par vraie trouvaille, pour un modèle dont l’aire annonce 0,9468.
Explorateur de métriques de classification
Déplacez le seuil et observez l’arbitrage précision/rappel.
- Précision
- 9.8%
- Rappel
- 84.1%
- F1
- 17.5%
- Exactitude
- 84.1%
- Référence classe majoritaire
- 98.0%
Matrice de confusion
| Prédit + | Prédit − | |
|---|---|---|
| Réel + | 168 | 32 |
| Réel − | 1 555 | 8 245 |
AUC ROC: 0.921
Courbe ROC
Relever le seuil gagne en précision au prix du rappel, et l’abaisser fait l’inverse. Sur une classe positive rare, l’exactitude ne sert presque à rien : elle est dominée par les négatifs, si bien qu’un modèle qui ne se déclenche jamais obtient un bon score. La précision et le rappel sont le résumé honnête.
La figure ci-dessous calcule les deux scores depuis le modèle plutôt que depuis un tirage, ce qui aiguise l'exercice précédent. La ROC ne bouge pas « à peine » quand les anomalies deviennent dix fois plus fréquentes : elle ne bouge pas du tout, car elle ne dépend que des deux lois de score. La précision moyenne, elle, plus que double. Le second panneau convertit une capacité d'examen en les deux nombres qui décident de ce que l'organisation voit réellement.
Interactif : un classement, deux métriques qui se contredisent
Toutes deux calculées exactement depuis le modèle, non d’un tirage.
- AUC ROC
- 0.9552
- Précision moyenne
- 0.3326
- Score d’un détecteur au hasard
- 0.0050
- Exactitude du détecteur muet
- 99.5%
À un taux de contamination de 0.5%, un détecteur qui répond « normal » à tout est exact à 99.5% : tout le problème en un chiffre. Le détecteur qui fonctionne obtient 0.9552 en ROC et 0.3326 en précision moyenne, sur le même classement. Faites glisser le taux : la ROC ne bouge pas du tout, car elle mesure le classement et non la fréquence. La précision moyenne bouge beaucoup, car la précision divise par le nombre d’alertes.
Trois familles, trois angles morts
D’où vient le score ? Construisez des données avec deux sortes d’anomalies : dix points loin au-dessus de tout, et vingt dans l’intervalle clairsemé entre deux amas denses, où rien de normal n’habite mais qui se trouve au milieu des données. Puis lancez quatre détecteurs standard. Les deux colonnes de droite sont le rappel dans les 60 premiers de chaque classement, soit deux fois les 30 anomalies plantées :
| détecteur | aire ROC | des 10 points lointains | des 20 de l’intervalle |
|---|---|---|---|
| distance de Mahalanobis | 0,335 | 100 % | 0 % |
| distance aux k voisins | 0,978 | 100 % | 65 % |
| facteur d’aberration local | 0,933 | 100 % | 30 % |
| forêt d’isolement | 0,903 | 100 % | 0 % |
Mahalanobis se classe sous le hasard. Rien n’est cassé : l’intervalle se situe à la moyenne globale, si bien que ces vingt points ont les plus faibles distances du jeu de données et se classent sous les données ordinaires. La méthode encode une définition - une anomalie est loin du milieu - que ces données violent.
La forêt d’isolement obtient un respectable 0,903 et n’atteint rien de l’intervalle dans ces 60 premiers : un point au centre des deux étendues demande presque autant de coupes parallèles aux axes qu’un point ordinaire. Presque, et non exactement : chaque point de l’intervalle est encore classé au-dessus d’au moins 73 % des données normales, intervalle contre normal à une aire ROC de 0,855, et les pousser au bas du classement ferait tomber le total à 0,333. La marge est mince, ce qui n’est pas la même chose qu’absente.
La méthode locale est défaite par la foule
Le facteur d’aberration local existe précisément pour ce cas : il compare la densité d’un point à celle de ses voisins, si bien qu’un point dans une poche clairsemée ressort même au centre. Il en a trouvé 30 %. Faites grandir le groupe et voyez pourquoi :
| anomalies dans l’intervalle | facteur local | distance aux k voisins |
|---|---|---|
| 2 | 100 % | 100 % |
| 5 | 60 % | 80 % |
| 10 | 60 % | 100 % |
| 20 | 40 % | 80 % |
| 40 | 8 % | 25 % |
C’est le masquage. La prémisse du facteur local est que les voisins d’un point sont normaux. Dès que quarante anomalies siègent ensemble, elles sont leur propre voisinage, et la comparaison annonce une densité locale parfaitement ordinaire.
La simple distance aux k voisins se dégrade aussi, mais bien plus lentement, car la distance absolue ne se soucie pas du caractère anormal des voisins. C’est le cas inhabituel où la méthode la plus simple est la plus robuste - à retenir quand on propose un détecteur sophistiqué pour un problème où les anomalies arrivent par salves. La fraude, les pannes et les défauts de capteurs arrivent par salves.
La figure ci-dessous est une implémentation indépendante de ce jeu de données, avec un générateur indépendant, et Mahalanobis y affiche encore 0,336 contre le 0,335 ci-dessus : se classer sous le hasard tient ici à la géométrie, non à la graine de qui que ce soit. Changez de détecteur pour voir quels points chacun signale, puis faites passer le pont de deux anomalies à quarante. Le facteur d'aberration locale tombe de 0,999 à 0,62 tandis que la distance au k-ième voisin ne descend qu'à 0,95 : c'est le masquage, mesuré et non décrit.
Interactif : trois définitions de l’anomalie, un seul jeu de données
Les points signalés sont le haut de chaque classement, à budget égal.
- AUC ROC
- 0.336
- Des points éloignés
- 100%
- Du pont
- 0%
- Points évalués
- 830
Mahalanobis affiche 0.336, pire qu’une pièce, et rien n’est cassé. Elle mesure la distance au centre, le pont est au centre : ces 20 points ont donc les scores les PLUS BAS du jeu de données. Elle trouve encore 100% des points éloignés et 0% du pont. La méthode encode une définition, et ces données contiennent des anomalies qui ne la satisfont pas.
Le seuil pilote le rappel ; la contamination pilote la précision
Chiffrez les deux erreurs - disons un raté à 500 et une fausse alerte à 20 - et le seuil cesse d’être affaire de goût :
| politique | alertes | attrapées | coût total |
|---|---|---|---|
| ne jamais déclencher | 0 | 0 / 100 | 50 000 |
| signaler le 1 % de tête | 201 | 52 / 100 | 26 980 |
| coût minimal | 460 | 67 / 100 | 24 360 |
La règle du 1 % arrive à 11 % de l’optimum ici, ce qui relève de la chance : elle déclenche moins de la moitié des alertes qu’elle devrait, et à un autre rapport de coûts elle serait nettement fausse.
Laissez ensuite ce seuil tranquille et laissez le monde bouger :
| taux d’anomalies | alertes | précision | rappel |
|---|---|---|---|
| la moitié de l’habituel | 425 | 8 % | 64 % |
| celui du réglage | 460 | 15 % | 67 % |
| le double de l’habituel | 523 | 25 % | 65 % |
Le rappel bouge à peine ; la précision varie d’un facteur trois. Le rappel est la part des anomalies au-dessus de la coupure : il ne dépend donc que de la distribution des scores des anomalies, et celle-ci n’a pas changé, seul a changé le nombre de tirages qu’on y fait. La distribution normale n’a pas changé non plus, ce qui maintient les fausses alertes autour de 2,3 % des événements normaux. La précision est donc un compte mobile d’anomalies réelles divisé par un tas presque fixe de fausses alertes, et c’est ce rapport qui varie.
Une équipe à qui l’on a promis « l’essentiel des alertes sera réel » verra cette promesse rompue par un mois calme, sans aucun changement du modèle, du pipeline ni du seuil.
La figure ci-dessous permet de faire ce que le tableau se contente de décrire : garder le seuil fixe et faire bouger le monde. Faites glisser la contamination et l’affichage du rappel ne change pas d’un point, car le rappel se lit sur la seule distribution des scores des anomalies et celle-ci n’a pas bougé. La précision, elle, varie d’environ un facteur treize sur toute la plage du curseur, de 10 à 200 anomalies pour 10 000. Le tableau des capacités en dessous est le même détecteur rapporté comme il devrait l’être : étant donné le nombre d’éléments qu’on peut revoir dans une journée, voici ce que cela achète.
Interactif : gardez le seuil fixe et laissez le monde bouger
Le seuil ne change jamais la part des anomalies qu’il attrape.
- Alertes
- 518
- Précision
- 13%
- Rappel
- 66%
- Exactitude
- 97.56%
Ce que chaque capacité de revue achète réellement
| revus par jour | précision | rappel |
|---|---|---|
| 20 | 73% | 15% |
| 100 | 37% | 37% |
| 460 | 14% | 63% |
| 1000 | 8% | 76% |
20 000 events
À ce seuil, le détecteur attrape 66% des anomalies existantes, et ce nombre ne dépend pas de leur quantité : faites glisser la contamination et regardez-le refuser de bouger. La précision vaut 13% et elle suit le taux presque proportionnellement, car les alertes sont massivement fausses et c’est leur rapport aux vraies qui change. Une équipe à qui l’on a promis que l’essentiel de ce qu’elle verra sera réel voit donc cette promesse rompue par un mois calme, sans que le modèle, les données ni le seuil aient bougé. Surveillez l’exactitude pendant ce temps : à 50.0 anomalies pour dix mille événements, un détecteur qui ne déclencherait jamais obtiendrait à peu près le même score.
Spécifiez le problème avant de choisir une méthode
Trois nombres décident si un détecteur d’anomalies vaut quelque chose, et tous trois sont connus avant l’entraînement de tout modèle :
- le taux de base - il fixe ce que chaque métrique peut signifier
- la capacité d’examen - elle fixe k, et k fixe le seuil, non l’inverse
- le coût d’un raté relativement à une fausse alerte - il transforme le seuil en arithmétique
Rapportez un détecteur ainsi : « à quarante examens par jour nous attrapons un quart des incidents, et trois sur huit de ce que nous vous montrons est du bruit ». Pas « ROC 0,95 ».
Et vérifiez quel type d’anomalie contiennent réellement vos données, car chaque famille est aveugle à un type qu’une autre trouve facilement. Faire tourner deux familles aux angles morts différents et regarder ce qu’une seule signale coûte peu, et le désaccord est en général l’endroit où se trouve l’anomalie intéressante.
Références et lectures complémentaires
- Charu C. Aggarwal, Recommender Systems: The Textbook, Springer, 2016· Bibliothèque de référence Kudos AI
- Kevin P. Murphy, Probabilistic Machine Learning: An Introduction, MIT Press (Adaptive Computation and Machine Learning), 2022source ↗
Les œuvres protégées par le droit d’auteur sont citées à titre de référence uniquement et ne sont pas hébergées ici ; veuillez consulter l’éditeur pour y accéder.