Aller au contenu
Kudos AI
Read in English
Anomaly Detection

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.

8 min de lectureKudos AI

Prérequis : Classification Methods Compared

Une justesse de 99,5 % au-dessus d’un détecteur qui ne se déclenche jamais, une courbe ROC collée au coin tandis que la courbe précision-rappel s’effondre, et un groupe grandissant d’anomalies qui se rendent mutuellement ordinaires.

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étriquevaleur
aire sous la ROC0,9468
précision moyenne0,3245
ce qu’obtient un détecteur aléatoire sur la seconde0,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 examinezdont réellesprécisionrappel
les 50 premières2652 %26 %
les 100 premières3636 %36 %
les 500 premières6713,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 +16832
Réel −1 5558 245

AUC ROC: 0.921

Courbe ROC

FPRTPR

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.

ROC0
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étecteuraire ROCdes 10 points lointainsdes 20 de l’intervalle
distance de Mahalanobis0,335100 %0 %
distance aux k voisins0,978100 %65 %
facteur d’aberration local0,933100 %30 %
forêt d’isolement0,903100 %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’intervallefacteur localdistance aux k voisins
2100 %100 %
560 %80 %
1060 %100 %
2040 %80 %
408 %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 :

politiquealertesattrapéescoût total
ne jamais déclencher00 / 10050 000
signaler le 1 % de tête20152 / 10026 980
coût minimal46067 / 10024 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’anomaliesalertesprécisionrappel
la moitié de l’habituel4258 %64 %
celui du réglage46015 %67 %
le double de l’habituel52325 %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.

2.0
événements normauxanomalies
Alertes
518
Précision
13%
Rappel
66%
Exactitude
97.56%

Ce que chaque capacité de revue achète réellement

revus par jourprécisionrappel
2073%15%
10037%37%
46014%63%
10008%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 :

  1. le taux de base - il fixe ce que chaque métrique peut signifier
  2. la capacité d’examen - elle fixe k, et k fixe le seuil, non l’inverse
  3. 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.

Lecture associée

6 min de lectureApprentissage non supervisé

La direction qui change quand vous changez d’unité

Douze personnes, deux mesures, et trois premières composantes principales différentes : en millimètres la réponse est presque uniquement la taille, en mètres presque uniquement le poids, et en centimètres un mélange équilibré - la corrélation restant fixée à 0,9500 dans les trois cas. Ce que cela dit de ce que l’ACP maximise, pourquoi une proportion de variance expliquée de 99,999 % peut être un énoncé sur les mètres plutôt que sur les personnes, et ce que la standardisation choisit réellement.

Apprentissage automatiqueStatistique
4 min de lectureTime Series

Un score qui perd contre ne rien faire

Un modèle des cinq plus proches voisins obtient 0,9983 en validation croisée aléatoire à cinq blocs sur une marche aléatoire, série dont les incréments sont par construction imprévisibles. Évalué en avançant dans le temps il obtient 0,6559, avec une RMSE 12,44 fois plus grande, et il perd contre la simple reconduction de la dernière valeur observée. C’est la découpe, non le modèle, qui a produit le premier nombre.

StatistiqueApprentissage automatique
8 min de lectureCausal Inférence

Le traitement qui aide tout le monde et nuit à la moyenne

Un traitement qui augmente la guérison d'exactement cinq points dans chaque sous-groupe tout en semblant l'abaisser globalement, pourquoi plus de données rend cette conclusion plus assurée et non plus juste, ce que la randomisation achète et que l'ajustement ne peut pas, et le cas où contrôler une variable fabrique une association à partir de rien.

StatistiqueApprentissage automatique
← Retour à tous les articles