Local Outlier Factor

Deteksi Anomali dengan Python

Bekhruz (Bex) Tuychiev

Data Science Writer

Apa itu Local Outlier Factor (LOF)?

Fitur

  • Algoritma berbasis kepadatan
  • Diusulkan pada 2000
  • Baik untuk data berdimensi sedang-tinggi
  • Dapat lebih cepat daripada KNN dan Isolation Forest
Deteksi Anomali dengan Python

Bagaimana LOF bekerja?

  • Titik diklasifikasikan dengan skor bernama local outlier factor (LOF)
  • LOF berbasis konsep kepadatan lokal
  • Lokalitas dipilih dengan menetapkan nilai parameter n_neighbors
  • Titik dengan kepadatan lebih rendah diklasifikasikan sebagai outlier

LOF divisualisasikan

Deteksi Anomali dengan Python

Pentingnya lokalitas

  • Kata kunci: lokal
  • Skor LOF hanya dibandingkan dengan skor titik di sekitarnya
Deteksi Anomali dengan Python

Visualisasi LOF

LOF divisualisasikan

Deteksi Anomali dengan Python

Visualisasi LOF

LOF divisualisasikan

Deteksi Anomali dengan Python

Visualisasi LOF

LOF divisualisasikan

Deteksi Anomali dengan Python

Dataset yang ditransformasi

import pandas as pd

males_transformed = pd.read_csv("males_transformed.csv")

males_transformed.head()
   abdominalextensiondepthsitting  acromialheight  acromionradialelength  ...
0                        0.365531        0.427976               0.113152   
1                       -0.492137       -0.724973              -0.529301   
2                        0.857097       -0.146048               0.357496   
3                       -0.462610       -1.521525              -1.467860   
4                       -0.026349        2.151957               1.985876
Deteksi Anomali dengan Python

LOF dalam praktik

from pyod.models.lof import LOF


# Fit lof = LOF(n_neighbors=20, metric="manhattan") lof.fit(males_transformed) print(lof.labels_)
array([0, 0, 0, ..., 0, 0, 1])
Deteksi Anomali dengan Python

Penyaringan dengan LOF

# Isolasi outlier
probs = lof.predict_proba(males_transformed)

is_outlier = probs[:, 1] > 0.55
outliers = males_transformed[is_outlier]

len(outliers)
2
Deteksi Anomali dengan Python

Detail LOF

  • n_neighbors paling penting
  • Aturan praktis menyetel n_neigbors:
    • 20 tetangga untuk <10% kontaminasi
  • Tidak ada agregasi:
    • method selalu largest
Deteksi Anomali dengan Python

Kekurangan LOF

  • Sulit diinterpretasikan
  • Skor LOF menggabungkan:
    • jarak antar titik
    • reachability distance
    • banyak komponen lain
  • Tidak ada rentang skor LOF spesifik untuk outlier
Deteksi Anomali dengan Python

Ayo berlatih!

Deteksi Anomali dengan Python

Preparing Video For Download...