Wykrywanie anomalii

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Anomalie i wartości odstające

Z nadzorem

Dwa czarne skupiska z kilkoma izolowanymi czerwonymi punktami.

Bez nadzoru

Dwa czarne skupiska z kilkoma izolowanymi czarnymi punktami.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Anomalie i wartości odstające

Dwa czarne skupiska z kilkoma izolowanymi czarnymi punktami.

  • Jedna z klas jest bardzo rzadka
  • Skrajny przypadek przesunięcia rozkładu danych
  • Przykłady:
    • cyberbezpieczeństwo
    • wykrywanie oszustw
    • przeciwdziałanie praniu pieniędzy
    • wykrywanie usterek
Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Przepływy pracy bez nadzoru

Dwa czarne skupiska z kilkoma izolowanymi czarnymi punktami zaznaczonymi czerwonym kółkiem.

  • Jak dopasować algorytm bez etykiet?
  • Jak ocenić jego wydajność?

Ostrożne wykorzystanie niewielkiej liczby etykiet:

  • zbyt mało do uczenia bez przeuczenia
  • wystarczająco do wyboru modelu
  • umożliwiają bezstronne oszacowanie dokładności

Zbiór danych podzielony na część treningową, selekcyjną i walidacyjną – etykiety dostępne tylko dla selekcji.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie
  • Wartość odstająca: punkt danych leżący poza zakresem większości danych

Dwa czarne skupiska z kilkoma izolowanymi czarnymi punktami. Punkt najbardziej oddalony jest zaznaczony czerwonym kółkiem.

  • Lokalna wartość odstająca: punkt danych w izolowanym obszarze bez innych danych

Dwa czarne skupiska z kilkoma izolowanymi czarnymi punktami. Izolowane punkty między skupiskami są zaznaczone czerwonym kółkiem.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Lokalny współczynnik wartości odstających (LoF)

Dwa czarne skupiska z kilkoma izolowanymi czarnymi punktami. Jeden punkt między skupiskami zaznaczony czerwonym kółkiem, jego najbliższy sąsiad przy jednym ze skupisk zaznaczony niebieskim kółkiem.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Lokalny współczynnik wartości odstających (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]])

Te same skupiska z kilkoma izolowanymi punktami. Duża liczba punktów zaznaczona czerwonym kółkiem – zarówno wewnątrz skupisk, jak i wśród izolowanych.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Lokalny współczynnik wartości odstających (LoF)

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

Te same skupiska z kilkoma izolowanymi punktami. Czerwonym kółkiem zaznaczono tylko izolowane punkty.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Po co nam etykiety!

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Preparing Video For Download...