Aller au contenu principal

Chargement du lab visuel…

#detection-anomaliesApprentissage non supervisé

Repérer ce qui ne ressemble à rien : score z / Mahalanobis, Isolation Forest, LOF — trois façons de dire « ce point est bizarre ».

Ce que tu vas manipuler

  1. Bienvenue dans #detection-anomalies. À l'écran, un nuage de 200 points ordinaires (une boule gaussienne, en bleu) dans lequel on a glissé 8 intrus. Personne ne nous dit lesquels : pas d'étiquettes, c'est de l'apprentissage non supervisé. Le détecteur courant (Mahalanobis, contamination 5 %) donne à chaque point un score de « bizarrerie » et déclare anormaux les 5 % les plus hauts : en rouge, avec un halo. Un intrus qu'il n'aurait pas vu resterait en jaune. Fraude bancaire, capteur d'usine, intrusion réseau : c'est exactement ce jeu — repérer ce qui ne ressemble à rien.
  2. Commençons par regarder le score lui-même plutôt que le verdict : tape /scores. Chaque point prend une couleur selon son score : bleu = très ordinaire, rose = en bordure, rouge = très loin du centre.
  3. Le score de Mahalanobis a une forme géométrique : tape /enveloppe. L'ellipsoïde indigo est la frontière du normal : l'ensemble des points dont la distance de Mahalanobis vaut exactement le seuil. Tout ce qui dépasse est déclaré anormal.
  4. Le seuil, c'est la contamination : la part d'anomalies qu'on s'attend à trouver. Sois plus strict : /seuil 0.02. Regarde l'ellipsoïde grossir et des halos rouges s'éteindre.
  5. Changeons de population : /forme deux-groupes. Le « normal » est maintenant fait de deux grappes bien séparées, et la moitié des intrus est plantée exactement entre les deux.
  6. Peut-être que le seuil est simplement trop strict ? Il y a 8 intrus sur 208 points, près de 4 % : remonte la contamination avec /seuil 0.05 et observe ce que gagne Mahalanobis.
  7. Il faut un détecteur local : /methode lof. Le Local Outlier Factor compare la densité autour de chaque point à celle de ses 10 plus proches voisins : un point seul dans le vide, entouré de voisins bien serrés, obtient un LOF élevé.
  8. Troisième façon de dire « bizarre » : /methode isolation. Une Isolation Forest coupe l'espace au hasard, encore et encore ; un point qu'on isole en deux coupes est anormal, un point noyé dans la masse en demande sept ou plus.
  9. À toi de jouer : /forme allongee puis /methode zscore (le cigare de Mahalanobis attrape les points hors de l'ellipse même s'ils sont proches d'un axe), /injecter 15 pour plus d'intrus (la contamination de 5 % ne suffit plus), /seuil 0.1 pour voir la précision chuter, /point 204 pour lire le score d'un point (l'autocomplétion propose les détectés), /graine 12 pour un autre tirage, /reinit pour repartir. Prochaines étapes : #dbscan (le « bruit » d'un clustering par densité, cousin du LOF) et #metriques-classification (précision, rappel et leur compromis).

Commandes du canal

  • /methode <zscore|isolation|lof>Change le détecteur : distance de Mahalanobis, Isolation Forest ou LOF.
  • /seuil <contamination=0.01..0.3>Contamination : part d'anomalies attendue ; un point est détecté si son score dépasse le quantile 1 − seuil.
  • /injecter <n=1..20>Nombre d'intrus présents dans le nuage (ils tombent du haut).
  • /forme <boule|allongee|deux-groupes>Forme de la population normale : boule, gaussienne allongée et tournée, ou deux groupes séparés.
  • /enveloppeAffiche ou masque l'ellipsoïde de Mahalanobis au seuil courant (méthode zscore).
  • /scoresColore tous les points par score (bleu → rose → rouge) au lieu du verdict binaire.
  • /point <id>Surligne un point et affiche son score, son rang et son statut.
  • /graine <n=1..99>Retire le nuage et les intrus avec une autre graine aléatoire.
  • /reinitRevient à la boule, 8 intrus, Mahalanobis, contamination 5 %.

Glossaire

détection d'anomalies
Tâche non supervisée : sans étiquette, apprendre à quoi ressemble le « normal » puis signaler les points qui s'en écartent. Fraude bancaire, panne de capteur, intrusion réseau : les anomalies sont rares, variées et souvent inconnues à l'avance.
valeur aberrante
Point qui ne ressemble pas au reste du jeu : trop loin du centre, trop isolé, ou posé là où la densité est nulle. Dans ce canal, les intrus injectés sont connus pour évaluer les détecteurs, mais ceux-ci ne voient jamais l'étiquette.
score z
Écart à la moyenne mesuré en nombre d'écarts-types : z = (x − μ) / σ. Au-delà de 3, un point est rare si la variable est gaussienne. Sa généralisation à plusieurs dimensions corrélées est la distance de Mahalanobis.
distance de Mahalanobis
d = √((x − μ)ᵀ Σ⁻¹ (x − μ)) : distance au centre du nuage dans l'unité de sa dispersion, direction par direction. Un point à 1 unité le long de l'axe étroit d'un nuage allongé est plus anormal qu'un point à 3 unités le long de l'axe long. Les surfaces d'égale distance sont des ellipsoïdes.
matrice de covariance
Tableau (3×3 ici) des variances sur la diagonale et des covariances hors diagonale : il encode la taille, l'étirement et l'orientation du nuage. Son inverse pondère la distance de Mahalanobis ; sa racine transforme une sphère en l'ellipsoïde du nuage.
Isolation Forest
Ensemble d'arbres construits par coupures aléatoires (une dimension, une valeur au hasard). Une anomalie se retrouve seule dans sa feuille après peu de coupures ; un point noyé dans la masse en demande beaucoup. Pas de distance, pas d'hypothèse de forme, coût linéaire.
profondeur d'isolation
Nombre de coupures nécessaires pour isoler un point dans un arbre, moyenné sur la forêt. Le score 2^(−h(x) / c(n)) le ramène entre 0 et 1 : proche de 1 = anomalie, autour de 0,5 = ordinaire.
Local Outlier Factor
Rapport entre la densité locale moyenne des k plus proches voisins d'un point et sa propre densité (inverse de la distance d'atteignabilité moyenne). LOF ≈ 1 : aussi dense que son entourage ; LOF ≫ 1 : bien plus isolé que ses voisins. Local, il repère un point seul entre deux grappes qu'une enveloppe globale déclarerait normal.
contamination
Proportion d'anomalies que l'on s'attend à trouver (ici de 1 % à 30 %). Le seuil de décision est le quantile correspondant des scores : avec 5 %, les 5 % de scores les plus élevés sont déclarés anormaux. Trop bas, on rate des intrus ; trop haut, on accuse des points normaux.
faux positif
Point normal déclaré anormal. Avec les vrais positifs (intrus bien détectés) et les intrus ratés (faux négatifs), il définit la précision (détections justes / détections) et le rappel (intrus trouvés / intrus). Le seuil arbitre entre les deux.

Autres canaux du thème Apprentissage non supervisé

  • #k-meansRegrouper sans étiquettes : des centroïdes qui se déplacent, l'inertie qui baisse, le choix de k — et les formes où k-means échoue.
  • #pcaAnalyse en composantes principales : trouver les axes où les données varient le plus, projeter, compresser — et mesurer ce qu'on perd.
  • #clustering-hierarchiqueFusionner les points deux à deux jusqu'à n'en faire qu'un : le dendrogramme, les critères de lien, et la hauteur de coupe qui décide du nombre de clusters.
  • #dbscanRegrouper par densité : epsilon, MinPts, points cœur, bordure et bruit — l'algorithme qui trouve des formes quelconques et ignore les intrus.
  • #detection-anomaliesRepérer ce qui ne ressemble à rien : score z / Mahalanobis, Isolation Forest, LOF — trois façons de dire « ce point est bizarre ».
  • #t-sne-umapCartographier la haute dimension : t-SNE et UMAP déplient des données à 10 dimensions en une carte 2D lisible — perplexité, voisins, et pièges de lecture.