Detekce anomálií

Designing Machine Learning Workflows in Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Anomálie a odlehlé hodnoty

S učitelem

Dva shluky zobrazené černě s několika izolovanými červenými body.

Bez učitele

Dva shluky zobrazené černě s několika izolovanými černými body.

Designing Machine Learning Workflows in Python

Anomálie a odlehlé hodnoty

Dva shluky zobrazené černě s několika izolovanými černými body.

  • Jedna ze dvou tříd je velmi vzácná
  • Extrémní případ posunu datové sady
  • Příklady:
    • kybernetická bezpečnost
    • detekce podvodů
    • boj proti praní peněz
    • detekce poruch
Designing Machine Learning Workflows in Python

Postupy bez učitele

Dva shluky zobrazené černě s několika izolovanými černými body zakroužkovanými červeně.

  • Jak natrénovat algoritmus bez štítků?
  • Jak odhadnout jeho výkonnost?

Pečlivé využití malého počtu štítků:

  • příliš málo pro trénování bez přeučení
  • dostatečně pro výběr modelu
  • nestranný odhad přesnosti

Datová sada rozdělena na část pro trénování, výběr a validaci; štítky jsou dostupné pouze pro výběr.

Designing Machine Learning Workflows in Python
  • Odlehlá hodnota: datový bod mimo rozsah většiny dat

Dva shluky zobrazené černě s několika izolovanými černými body. Bod nejdále od ostatních je zakroužkován červeně.

  • Lokální odlehlá hodnota: datový bod v izolované oblasti bez dalších dat

Dva shluky zobrazené černě s několika izolovanými černými body. Izolované body mezi oběma shluky jsou zakroužkovány červeně.

Designing Machine Learning Workflows in Python

Faktor lokální odlehlosti (LoF)

Dva shluky zobrazené černě s několika izolovanými černými body. Jeden bod mezi dvěma třídami je zakroužkován červeně a jeho nejbližší soused u jednoho ze shluků je zakroužkován modře.

Designing Machine Learning Workflows in Python

Faktor lokální odlehlosti (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]])

Stejné shluky s několika izolovanými body. Velký počet bodů je zakroužkován červeně – jak uvnitř shluků, tak mezi izolovanými body.

Designing Machine Learning Workflows in Python

Faktor lokální odlehlosti (LoF)

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

Stejné shluky s několika izolovanými body. Červeně jsou zakroužkovány pouze izolované body.

Designing Machine Learning Workflows in Python

Kdo potřebuje štítky!

Designing Machine Learning Workflows in Python

Preparing Video For Download...