Виявлення аномалій

Проєктування робочих процесів машинного навчання в Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Аномалії та викиди

Кероване

Два кластери чорним, окремі червоні точки.

Некероване

Два кластери чорним з окремими чорними точками.

Проєктування робочих процесів машинного навчання в Python

Аномалії та викиди

Два кластери чорним з окремими чорними точками.

  • Один із двох класів дуже рідкісний
  • Крайній випадок зсуву набору даних
  • Приклади:
    • кібербезпека
    • виявлення шахрайства
    • протидія відмиванню коштів
    • виявлення несправностей
Проєктування робочих процесів машинного навчання в Python

Некеровані конвеєри

Два кластери чорним з окремими чорними точками, обведеними червоним.

  • Як навчити алгоритм без міток?
  • Як оцінити його якість?

Обережне використання небагатьох міток:

  • їх замало для навчання без перенавчання
  • достатньо лише для вибору моделі
  • відмовтесь від неупередженої оцінки точності

Набір даних поділено на частини для навчання, вибору та валідації; мітки доступні лише для вибору.

Проєктування робочих процесів машинного навчання в Python
  • Викид: точка даних, що лежить поза діапазоном більшості даних

Два кластери чорним з окремими чорними точками. Найвіддаленішу точку обведено червоним.

  • Локальний викид: точка даних в ізольованій ділянці без інших даних

Два кластери чорним з окремими чорними точками. Ізольовані точки між двома кластерами обведено червоним.

Проєктування робочих процесів машинного навчання в Python

Local outlier factor (LoF)

Два кластери чорним з окремими чорними точками. Точку між двома класами обведено червоним, її найближчого сусіда біля одного з кластерів — синім.

Проєктування робочих процесів машинного навчання в Python

Local outlier factor (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]])

Ті самі кластери з окремими точками. Багато точок обведено червоним як усередині кластерів, так і серед ізольованих.

Проєктування робочих процесів машинного навчання в Python

Local outlier factor (LoF)

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

Ті самі кластери з окремими точками. Лише ізольовані точки обведено червоним.

Проєктування робочих процесів машинного навчання в Python

Кому взагалі потрібні мітки!

Проєктування робочих процесів машинного навчання в Python

Preparing Video For Download...