Aller au contenu principal

Module 8 — Détection d'anomalies : forêt d'isolement et méthodes statistiques

Troisième et dernière famille du cours. On ne cherche plus à décrire l'ensemble des données, mais à isoler la minorité qui s'en écarte : fraude bancaire, panne de capteur, défaut de fabrication, intrusion réseau. Le renversement est total — ici, ce sont les exceptions qui portent la valeur.

Ce qu'est une anomalie, et pourquoi c'est difficile

Une anomalie est une observation qui s'écarte nettement du comportement normal des données. Cette définition simple cache trois difficultés qui structurent tout le domaine.

D'abord, les anomalies sont rares par nature : quelques dixièmes de pour cent, souvent. Ensuite, elles sont diverses : le normal se ressemble, les anomalies se ressemblent rarement entre elles — une nouvelle fraude ne ressemble pas aux précédentes. Enfin, elles sont peu ou pas étiquetées, ce qui interdit de traiter le problème comme une simple classification. Ces trois traits expliquent qu'on modélise généralement le normal pour signaler ce qui n'y entre pas, plutôt que d'apprendre les anomalies elles-mêmes.

Deux nuances utiles à distinguer : une anomalie peut être ponctuelle (une valeur seule, aberrante) ou contextuelle (une valeur banale au mauvais moment — 25 °C est normal en été, non en janvier).

Les approches statistiques : simples et souvent suffisantes

Sur une seule variable, deux outils classiques suffisent fréquemment. Le score z mesure l'écart à la moyenne en nombre d'écarts-types, et l'on signale au-delà de 3. Sa faiblesse est connue : moyenne et écart-type sont eux-mêmes contaminés par les anomalies présentes. L'écart interquartile (IQR) y échappe en s'appuyant sur les quartiles, robustes par construction : on signale ce qui sort de [Q11,5IQR,  Q3+1,5IQR][Q_1 - 1{,}5\,\text{IQR},\; Q_3 + 1{,}5\,\text{IQR}] — la règle des moustaches de la boîte à moustaches.

Leur limite commune est d'être univariées : elles examinent chaque variable séparément et manquent les anomalies de combinaison. Une taille de 1,50 m est normale, un poids de 100 kg est normal, mais l'association des deux est atypique. Aucune règle par variable ne le verra, ce qui impose des méthodes multivariées.

La forêt d'isolement : l'anomalie est facile à isoler

La forêt d'isolement (isolation forest) part d'une idée remarquablement simple, à contre-courant des approches par densité. On découpe l'espace au hasard : on choisit une variable au hasard, un seuil au hasard, et on recommence, construisant un arbre de coupes aléatoires. Combien de coupes faut-il pour isoler complètement un point donné ?

  • un point normal, noyé au milieu de ses semblables, exige de nombreuses coupes ;
  • un point anormal, à l'écart, se retrouve isolé en très peu de coupes.

La profondeur moyenne nécessaire à l'isolement, mesurée sur une forêt d'arbres aléatoires, donne directement le score d'anomalie. C'est l'inverse de la logique de densité : au lieu de modéliser le normal, on exploite le fait que l'anormal est structurellement plus facile à séparer.

from sklearn.ensemble import IsolationForest
iso = IsolationForest(contamination=0.01, random_state=42).fit(X_s)
iso.predict(X_s) # -1 anomalie, 1 normal
iso.score_samples(X_s) # score continu : preferable pour prioriser

Ses atouts expliquent sa popularité : rapide, efficace en grande dimension, sans hypothèse de forme sur les données. Le paramètre contamination est la proportion d'anomalies attendue — une décision métier (quel volume d'alertes peut-on traiter ?) plus qu'un réglage statistique. Et il est presque toujours préférable d'utiliser le score continu plutôt que la décision binaire : il permet de trier les cas et de traiter les plus suspects d'abord.

Autres méthodes, et le lien avec le partitionnement

Deux approches complètent utilement la panoplie. LOF (local outlier factor) compare la densité locale d'un point à celle de ses voisins, ce qui détecte les anomalies relatives à leur région — précieux quand les densités varient. Le SVM à une classe apprend une frontière enveloppant les données normales et signale ce qui tombe dehors.

Notons aussi que le module 5 fournit déjà un détecteur : les points étiquetés bruit (-1) par DBSCAN sont, par construction, des candidats naturels au statut d'anomalie. Et une reconstruction par ACP (module 6) fonctionne sur le même principe — un point mal reconstruit par les composantes principales est un point qui n'entre pas dans la structure dominante.

Évaluer sans étiquettes, puis avec les quelques-unes qu'on a

Sans étiquettes, on valide par inspection experte des cas signalés, seule façon d'établir si les alertes sont pertinentes. Dès qu'on dispose de quelques anomalies confirmées, le cadre du module 9 du cours supervisé s'applique — avec sa mise en garde décisive : sur des classes à ce point déséquilibrées, l'exactitude est trompeuse et l'on raisonne en précision et rappel, voire en PR AUC. En production, on complète par le suivi du volume d'alertes : une dérive soudaine signale souvent un changement des données plutôt qu'une vague d'anomalies.

En résumé

  • Les anomalies sont rares, diverses et peu étiquetées : on modélise le normal pour signaler ce qui s'en écarte.
  • Score z et IQR (plus robuste) traitent une variable à la fois, et manquent les anomalies de combinaison.
  • La forêt d'isolement exploite le fait qu'un point atypique s'isole en peu de coupes aléatoires : rapide et efficace en grande dimension.
  • contamination est une décision métier ; on privilégie le score continu pour prioriser, et l'on évalue par expertise puis en précision/rappel.

Module suivant : les modèles de mélange gaussien, qui généralisent les k-moyennes en affectations probabilistes.