Détection d'anomalies

Concevoir des workflows de Machine Learning en Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Anomalies et valeurs aberrantes

Supervisé

Deux groupes en noir, avec quelques points rouges isolés.

Non supervisé

Deux groupes en noir avec quelques points noirs isolés.

Concevoir des workflows de Machine Learning en Python

Anomalies et valeurs aberrantes

Deux groupes en noir avec quelques points noirs isolés.

  • L'une des deux classes est très rare
  • Cas extrême de décalage de jeu de données
  • Exemples :
    • cybersécurité
    • détection de fraude
    • lutte contre le blanchiment
    • détection de pannes
Concevoir des workflows de Machine Learning en Python

Flux de travail non supervisés

Deux groupes en noir avec quelques points noirs isolés entourés en rouge.

  • Comment entraîner un algorithme sans labels ?
  • Comment évaluer ses performances ?

Utiliser avec prudence quelques labels :

  • trop peu pour l'entraînement sans surapprentissage
  • juste assez pour la sélection de modèle
  • abandonner l'estimation non biaisée de la précision

Un jeu de données scindé en blocs entraînement, sélection et validation, avec labels disponibles seulement pour la sélection.

Concevoir des workflows de Machine Learning en Python
  • Valeur aberrante : point de données en dehors de la plage de la majorité

Deux groupes en noir avec quelques points noirs isolés. Le point le plus éloigné est entouré en rouge.

  • Valeur aberrante locale : point de données dans une zone isolée sans autres données

Deux groupes en noir avec quelques points noirs isolés. Les points isolés entre les deux groupes sont entourés en rouge.

Concevoir des workflows de Machine Learning en Python

Facteur de valeur aberrante locale (LoF)

Deux groupes en noir avec quelques points noirs isolés. Un point situé entre les deux classes est entouré en rouge, et son plus proche voisin près d'un des groupes est entouré en bleu.

Concevoir des workflows de Machine Learning en Python

Facteur de valeur aberrante locale (LoF)

from sklearn.neighbors import 
   LocalOutlierFactor as lof
clf = lof()
y_pred = clf.fit_predict(X)
y_pred[:4]
array([ 1,  1,  1, -1])
clf.negative_outlier_factor_[:4]
array([-0.99, -1.02, -1.08 , -0.97])
confusion_matrix(
   y_pred, ground_truth)
array([[  5,  16],
       [  0, 184]])

Les mêmes groupes avec quelques points isolés. Un grand nombre de points sont entourés en rouge, à la fois dans les groupes et parmi les isolés.

Concevoir des workflows de Machine Learning en Python

Facteur de valeur aberrante locale (LoF)

clf = lof(contamination=0.02)
y_pred = clf.fit_predict(X)
confusion_matrix(
   y_pred, ground_truth)
array([[  5,   0],
       [  0, 200]])

Les mêmes groupes avec quelques points isolés. Seuls les points isolés sont entourés en rouge.

Concevoir des workflows de Machine Learning en Python

Qui a besoin de labels, après tout !

Concevoir des workflows de Machine Learning en Python

Preparing Video For Download...