Deteksi anomali

Merancang Alur Kerja Machine Learning di Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Anomali dan outlier

Terawasi

Dua klaster berwarna hitam, dengan beberapa titik merah terisolasi.

Tak terawasi

Dua klaster berwarna hitam dengan beberapa titik hitam terisolasi.

Merancang Alur Kerja Machine Learning di Python

Anomali dan outlier

Dua klaster berwarna hitam dengan beberapa titik hitam terisolasi.

  • Salah satu dari dua kelas sangat jarang
  • Kasus ekstrem pergeseran dataset
  • Contoh:
    • keamanan siber
    • deteksi penipuan
    • anti pencucian uang
    • deteksi kerusakan
Merancang Alur Kerja Machine Learning di Python

Alur kerja tak terawasi

Dua klaster berwarna hitam dengan beberapa titik hitam terisolasi yang dilingkari merah.

  • Bagaimana melatih algoritma tanpa label?
  • Bagaimana mengukur kinerjanya?

Pemakaian sedikit label secara hati-hati:

  • terlalu sedikit untuk pelatihan tanpa overfitting
  • cukup untuk seleksi model
  • jatuhkan estimasi akurasi yang tidak bias

Satu dataset dibagi menjadi bagian pelatihan, seleksi, dan validasi, dengan label hanya untuk seleksi.

Merancang Alur Kerja Machine Learning di Python
  • Outlier: titik data yang berada di luar rentang mayoritas data

Dua klaster berwarna hitam dengan beberapa titik hitam terisolasi. Titik yang paling jauh dilingkari merah.

  • Outlier lokal: titik data di wilayah terisolasi tanpa data lain

Dua klaster berwarna hitam dengan beberapa titik hitam terisolasi. Titik terisolasi di antara dua klaster dilingkari merah.

Merancang Alur Kerja Machine Learning di Python

Local outlier factor (LoF)

Dua klaster berwarna hitam dengan beberapa titik hitam terisolasi. Satu titik di antara dua kelas dilingkari merah, dan tetangga terdekatnya dekat salah satu klaster dilingkari biru.

Merancang Alur Kerja Machine Learning di 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]])

Klaster yang sama dengan beberapa titik terisolasi. Banyak titik dilingkari merah, baik dari dalam klaster maupun yang terisolasi.

Merancang Alur Kerja Machine Learning di 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]])

Klaster yang sama dengan beberapa titik terisolasi. Hanya titik terisolasi yang dilingkari merah.

Merancang Alur Kerja Machine Learning di Python

Siapa butuh label?

Merancang Alur Kerja Machine Learning di Python

Preparing Video For Download...