Détection d'anomalies

Concevoir des flux de travail Machine Learning en Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Anomalies et valeurs aberrantes

Apprentissage supervisé

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

Non supervisé

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

Concevoir des flux de travail Machine Learning en Python

Anomalies et valeurs aberrantes

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

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

Flux de travail non supervisés

Deux grappes en noir avec quelques points noirs isolés encerclés en rouge.

  • Comment entraîner un algorithme sans étiquettes ?
  • Comment estimer sa performance ?

Utiliser avec prudence quelques étiquettes :

  • trop peu pour l'entraînement sans surajustement
  • juste assez pour la sélection de modèle
  • abandonner l'estimation impartiale de l'exactitude

Un ensemble de données scindé en segments d'entraînement, de sélection et de validation, avec des étiquettes seulement pour la sélection.

Concevoir des flux de travail Machine Learning en Python
  • Valeur aberrante : point de données situé hors de l'intervalle de la majorité des données

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

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

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

Concevoir des flux de travail Machine Learning en Python

Facteur de valeur aberrante locale (LoF)

Deux grappes en noir avec quelques points noirs isolés. Un point entre les deux classes est encerclé en rouge, et son plus proche voisin près d'une grappe est encerclé en bleu.

Concevoir des flux de travail 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 grappes avec quelques points isolés. Un grand nombre de points sont encerclés en rouge, à la fois dans les grappes et parmi les isolés.

Concevoir des flux de travail 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 grappes avec quelques points isolés. Seuls les points isolés sont encerclés en rouge.

Concevoir des flux de travail Machine Learning en Python

Qui a besoin d'étiquettes, de toute façon !

Concevoir des flux de travail Machine Learning en Python

Preparing Video For Download...