#detection-anomalies — Apprentissage 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
- 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.
- 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. - 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. - 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. - 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. - 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.05et observe ce que gagne Mahalanobis. - 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é. - 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. - À toi de jouer :
/forme allongeepuis/methode zscore(le cigare de Mahalanobis attrape les points hors de l'ellipse même s'ils sont proches d'un axe),/injecter 15pour plus d'intrus (la contamination de 5 % ne suffit plus),/seuil 0.1pour voir la précision chuter,/point 204pour lire le score d'un point (l'autocomplétion propose les détectés),/graine 12pour un autre tirage,/reinitpour 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./enveloppe— Affiche ou masque l'ellipsoïde de Mahalanobis au seuil courant (méthode zscore)./scores— Colore 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./reinit— Revient à 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-means — Regrouper sans étiquettes : des centroïdes qui se déplacent, l'inertie qui baisse, le choix de k — et les formes où k-means échoue.
- #pca — Analyse en composantes principales : trouver les axes où les données varient le plus, projeter, compresser — et mesurer ce qu'on perd.
- #clustering-hierarchique — Fusionner 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.
- #dbscan — Regrouper par densité : epsilon, MinPts, points cœur, bordure et bruit — l'algorithme qui trouve des formes quelconques et ignore les intrus.
- #detection-anomalies — Repérer ce qui ne ressemble à rien : score z / Mahalanobis, Isolation Forest, LOF — trois façons de dire « ce point est bizarre ».
- #t-sne-umap — Cartographier 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.