Detectarea anomaliilor

Proiectarea fluxurilor de lucru pentru Machine Learning în Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Anomalii și outlieri

Supervizat

Două clustere în negru cu câteva puncte roșii izolate.

Nesupervizat

Două clustere în negru cu câteva puncte negre izolate.

Proiectarea fluxurilor de lucru pentru Machine Learning în Python

Anomalii și outlieri

Două clustere în negru cu câteva puncte negre izolate.

  • Una dintre cele două clase este foarte rară
  • Caz extrem de schimbare a distribuției datelor
  • Exemple:
    • securitate cibernetică
    • detectarea fraudelor
    • prevenirea spălării banilor
    • detectarea defecțiunilor
Proiectarea fluxurilor de lucru pentru Machine Learning în Python

Fluxuri de lucru nesupervizate

Două clustere în negru cu câteva puncte negre izolate, încercuite cu roșu.

  • Cum se antrenează un algoritm fără etichete?
  • Cum se estimează performanța sa?

Utilizarea atentă a unui număr redus de etichete:

  • prea puține pentru antrenare fără supraadaptare
  • suficiente pentru selecția modelului
  • oferă o estimare imparțială a acurateței

Un set de date împărțit într-o parte pentru antrenare, una pentru selecție și una pentru validare, cu etichete disponibile doar pentru selecție.

Proiectarea fluxurilor de lucru pentru Machine Learning în Python
  • Outlier: un punct de date în afara intervalului majorității datelor

Două clustere în negru cu câteva puncte izolate. Punctul cel mai îndepărtat este încercuit cu roșu.

  • Outlier local: un punct de date într-o regiune izolată, fără alte date

Două clustere în negru cu câteva puncte izolate. Punctele izolate dintre cele două clustere sunt încercuite cu roșu.

Proiectarea fluxurilor de lucru pentru Machine Learning în Python

Factorul de outlier local (LoF)

Două clustere în negru cu câteva puncte izolate. Un punct dintre cele două clase este încercuit cu roșu, iar cel mai apropiat vecin, aflat lângă unul din clustere, este încercuit cu albastru.

Proiectarea fluxurilor de lucru pentru Machine Learning în Python

Factorul de outlier local (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]])

Aceleași clustere cu câteva puncte izolate. Un număr mare de puncte sunt încercuite cu roșu, atât din clustere, cât și din cele izolate.

Proiectarea fluxurilor de lucru pentru Machine Learning în Python

Factorul de outlier local (LoF)

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

Aceleași clustere cu câteva puncte izolate. Doar punctele izolate sunt încercuite cu roșu.

Proiectarea fluxurilor de lucru pentru Machine Learning în Python

Cine mai are nevoie de etichete!

Proiectarea fluxurilor de lucru pentru Machine Learning în Python

Preparing Video For Download...