Aykırı değer tespiti için KNN

Python ile Anomali Tespiti

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

KNN’in uygulamaları

  • Denetimli:
    • Regresyon
    • Sınıflandırma
  • Denetimsiz:
    • Kümeleme
    • Aykırı değer tespiti
Python ile Anomali Tespiti

KNN’in sadeliği

Anomali puanları şu şekilde hesaplanır
  • Isolation Forest:
    • Ağaç derinliği
    • Alt örneklem boyutu
    • Diğer birçok bileşen
  • KNN:
    • Yalnızca örnekler arası mesafe
Python ile Anomali Tespiti

Ansur Erkek Veri Kümesi

import pandas as pd

males = pd.read_csv("ansur_male.csv")
males.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4082 entries, 0 to 4081
Data columns (total 95 columns):
 #   Column                          Non-Null Count  Dtype
 0   abdominalextensiondepthsitting  4082 non-null   int64
 1   acromialheight                  4082 non-null   int64
 2   acromionradialelength           4082 non-null   int64
 3   anklecircumference              4082 non-null   int64
 4   axillaheight                    4082 non-null   int64
  ...
Python ile Anomali Tespiti

KNN uygulamada

from pyod.models.knn import KNN

knn = KNN(contamination=0.01, n_jobs=-1)

knn.fit(males)
Python ile Anomali Tespiti

Aykırı olasılıklarıyla KNN

probs = knn.predict_proba(males)


# Filtreleme için %55 eşik kullanın is_outlier = probs[:, 1] > 0.55 # Aykırı değerleri ayırın outliers = males[is_outlier] len(outliers)
13
Python ile Anomali Tespiti

Komşu sayısı

# k=20, bulaşma <=%10 iken
knn = KNN(n_neighbors=20, n_jobs=-1)
knn.fit(males)

probs = knn.predict_proba(males)

is_outlier = probs[:, 1] > .55
outliers = males[is_outlier]

len(outliers)
15

8 örnekten oluşan bir veri kümesinin grafiği; A aykırı değer ve A ile en yakın 4 komşusu arasına oklar çizilmiş.

Python ile Anomali Tespiti

KNN’in özellikleri

8 örnekten oluşan bir veri kümesinin grafiği; A aykırı değer ve A ile en yakın 4 komşusu arasına oklar çizilmiş.

Python ile Anomali Tespiti

KNN’in dezavantajları

  • Veri kümesini ezberler: bellek verimsiz
  • Tahmin aşaması yavaştır
  • Özellik ölçeklerine duyarlıdır
Python ile Anomali Tespiti

Haydi pratik yapalım!

Python ile Anomali Tespiti

Preparing Video For Download...