Şule Akçay
3 min readOct 3, 2021

🎃NEDİR BU LOCAL OUTLIER FACTOR ?

Herkese selamlar,😉 sizlere bir çoğumuzun kafasında tam anlamıyla ilk başta yer bulamayan local outlier factor konusunu anlatacağım. Tabi ki kodlarımızda bizlere eşlik edecek. Kemerlerimizi taktıysak yolculuğumuza başlayabiliriz. 💯

Local outlier factor(LOF), veri kümesinde bulunan aykırı değerleri tanımlayan bir algoritmadır. Peki bu aykırı değer ne demek?

wikipedia

Eşik değer olarak belirlenmiş bir noktanın, diğer komşularına göre aykırı değer olarak kabul edilmesidir. Local outlier factor(LOF) çevresindeki verilerin yoğunluğunu gözlemleyerek bir aykırı değer belirler. Local outlier factor, verinin yoğunluğu veri kümesi boyunca aynı olmadığında daha iyi performans gösterir.

Local outlier factor(LOF) kavramını daha iyi anlayabilmek için aşağıdaki 4 bölümü incelememiz bize fayda katacaktır.

  • K-Mesafe ve K-Komşu (K-distance and K-neighbors)
  • Erişebilirlik Mesafesi (Reachability distance (RD))
  • Yerel Erişebilirlik Yoğunluğu (Local reachability density (LRD))
  • Yerel Aykırı Faktör (Local Outlier Factor (LOF))

K-Mesafe ve K-Komşu (K-distance and K-neighbors)

Sınıflandırma ve regresyon problemleri için kullanılan denetimli öğrenme algoritmasıdır. Yukarıdaki resimde k = 3 demek verinin kendisine en yakın 3. komşuya olan uzaklığına bakılacağını belirtir.

Erişebilirlik Mesafesi (Reachability distance (RD))

İstenilen iki noktanın(xi ve xj gibi )uzaklığının arasındaki maksimum mesafe olarak tanımlanabilir. Burada verilen iki noktanın arasındaki uzaklık ölçme probleme özeldir. Örneğin Öklid, Manhattan, Minkowski uygun olan herhangi biri ile ölçülebilir.

Reachability_Distance( xj, xi) = max{ k-distance ( xj) , normal_distance ( xi, xj) }

Yerel Erişebilirlik Yoğunluğu (Local reachability density (LRD))

Bir sonraki nokta veya noktalara ulaşabilmek amacıyla bulunduğunuz noktadan ne kadar uzağa gitmeniz gerektiğini sizlere ifade eder.

Local_reachability_density ( xj) = 1 / ( sum ( Reachability_Distance (xj , n ) ) / k)

Yerel Aykırı Faktör (Local Outlier Factor (LOF))

scikit-learn

LOF bizim aykırı değerleri, aykırı olmayan değerler arasındaki farkı görebilmemiz açısından yardımcı olur. Kesin kural olmamakla birlikte LOF her bir nokta için bir değer üretir. Biz LOF>1 ise aykırı değer olarak kabul ederiz. Elimizdeki verilerin değeri LOF>1 ise burada bir aykırılık vardır yorumu yapılabilir. Bu değerin altında kalan noktalar ise kümelenmiş aykırı değer olmadığı anlamına gelir. Özetlersek elinizde birden fazla değişken var. Her bir değişken için bir değer üretiliyor. Bu değer 1'den ya da belirlenen maksimum LOF değerinden büyük ise burada aykırılık vardır, denilebilir.

💥Bu anlattığımı bir kod parçasıyla destekleyecek olursak,

💤diamonds veri setini yükledik. n_neighbors = 20 aldık. Buradaki veriler için bir skor tahmini yaptık. Amacımız aykırı eşik değeri belirleyip, bu eşik değerin(biz eşik değerin indexini 3 olarak belirledik. Bizim için bu nokta ile diğer noktalar arasında grafikte gözle görülür farklılık vardı.)altında kalan verilerin indexlerini tutup veri setinden kaldırmak.

💫Bir sonraki yazımda görüşmek üzere kendinize iyi bakın…

KAYNAKÇA

https://www.veribilimiokulu.com/local-outlier-factor-ile-anormallik-tespiti/.

https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.LocalOutlierFactor.html.

https://towardsdatascience.com/local-outlier-factor-lof-algorithm-for-outlier-identification-8efb887d9843.

https://github.com/Sulecs1