Veri Ön İşleme - Aykırı Değerler ( Outliers)

Buket Yüce
5 min readJun 14, 2022

--

Verideki genel eğilimin oldukça dışına çıkan değerlere aykırı değer denir. Aykırı değerler tahmin edicilerin ve bu tahmin edicilere dayanan testlerin etkinliklerini olumsuz olarak etkiler.

Grafikleri yorumlayalım:

  • Birinci grafikte herhangi bir aykırı değer yok. x ile y arasındaki ilişki bir doğru aracılığıyla modellenmiş.
  • İkinci grafikte veri setine aykırı değerler eklendi ve bu iki değişken arasındaki ilişkiyi ifade eden doğrunun yönü ve şiddeti değişti.

Not: Özellikle doğrusal problemlerde aykırı değerlerin etkileri daha şiddetlidir. Ağaç yöntemlerinde bu etkiler daha düşüktür.

Aykırı Değerler Neye Göre Belirlenir?

Kullanılabilecek pek çok yöntem vardır.

  • Sektör bilgisi
  • Standart Sapma Yaklaşımı
  • Z-skoru yaklaşımı
  • Boxplot (interquartile range - IQR) Yöntemi

Kullanılan veri seti:

  • Titanic veri seti

Aykırı değerleri yakalama:

Grafik teknikle aykırı değerleri bir görmek istersek bu durumda kutu grafik kullanılabilir.

Kutu grafik üzerinde görsel bir teknik ile aykırı değerleri görebildik. Bu aykırı değerlere nasıl erişebiliriz?

Öncelikle eşik değerlere erişmeliyiz. Bir değişkenin çeyrek değerlerini hesaplamamız gerekli. Onun üzerinden de iqr hesaplaması yapabiliriz.

Hızlıca aykırı değer var mı diye sormak istersek:

Her seferinde değişken özelinde alt limit ve üst limit belirlememek için işlemleri fonksiyonlaştırmak daha iyi olacaktır.

“Aykırı değer var mı?” sorusu için de bir fonksiyon tanımlayabiliriz.

Veri setinde sayısal değişkenlerin haricinde farklı tipte de değişkenler olabilir.

  • Sayısal değişkenler
  • Katagorik değişkenler
  • Sayısal görünümlü ama katagorik olan değişkenler (hayatta kalma durumu gibi)
  • Katagorik görünümlü olup bilgi taşımayan, ölçüm değeri olmayan değişkenler

Bu fonksiyon sayesinde artık veri setindeki değişkenlere göz atabilir ve değişken analizini gerçekleştirebiliriz.

Titanic veri setindeki değişkenleri fonksiyon ile analiz edelim.

Aykırı Değerlere Erişmek:

Aykırı değerlere erişmek için bir fonksiyon tanımlayalım.

Fonkiyonun açıklaması:

  • İlgili dataframe’i sütün ismini ve değişkenin ismini girmemiz gerekli.
  • Daha önce tanımladığımız outlier_thresholds fonksiyonu alt ve üst limitleri hesapladı.
  • Eğer alt limitten küçük ya da üst limitten büyük olanlar varsa bunları getir ve eğer bu getirdiklerinin sayısı 10 dan büyükse head’ini al. Eğer 10 dan büyük değilse hepsini getir.
  • Eğer index argümanı True ise indexleri return et.

Yaş değişkeni için fonksiyonumuzu çalıştıralım.

Aykırı Değer Problemini Çözme:

Aykırı olarak yakaladığımız değerleri veri setinden silebiliriz.

Alt sınırdan küçük ya da üst sınırdan büyük olmayanları getiriyoruz ve atama işlemi yapıyoruz. Titanic veri setinde fonskiyonumuzu kullanalım.

Toplamda 116 gözlem silindi ve aykırı değerlerden kurtulmuş olduk. Fakat bir hücrede bulunan aykırılıktan dolayı diğer gözlemleri de silmiş olduk. Bu nedenle veri kaybetmek istemiyorsak silmek yerine baskılamayı da tercih edebiliriz.

Baskılama yönteminde aykırı değerler eşik değerler ile değiştirilir.

  • Bu fonksiyonda da yine daha önce tanımladığımız outlier_thresholds fonksiyonu alt ve üst limitleri hesapladı.
  • Daha sonra alt limitten aşağıda olan değerleri alt limitle, üst limitten yukarıda olan ilgili değişkenleri de üst limit ile değiştirdi.

Fonksiyonu Titanic veri seti üzerinde deneyelim ve önceden tanımlamış olduğumuz aykırı değer var mı sorgulaması yapan fonskiyon ile kontrol edelim.

Aykırı değerleri baskılamış olduk.

Çok Değişkenli Aykırı Değer Analizi ( Local Outlier Factor )

Bazen bir değişken tek başına aykırı gibi gözükmezken başka değerler ile birlikte ele alındığında aykırılık yaratıyor olabilir.

Örneğin tek başına baktığımızda bir insanın 2 çocuğunun olması gayet normal gözükebilir. Ama bu kişi 15 yaşındaysa bu oldukça aykırı bir değer haline gelir.

LOF yöntemi çok değişkenli bir aykırı değer belirleme yöntemidir.

Gözlemleri bulundukları konumda yoğunluk tabanlı skorlayarak buna göre aykırı değer olabilecek değerleri tanıma imkanı sağlar.

Bir noktanın local yoğunluğu demek ilgili noktanın etraafındaki komşuluklar demektir. Eğer bir nokta komşularının yoğunluğundan anlamlı bir şekilde düşük ise bu durumda bu nokta aykırı değer olabilir yorumu yapılır.

Burada görüldüğü üzere A noktası aykırı bir değerdir.

LOF yöntemi için iki boyutlu bir gösterim ise şu şekildedir:

LOF yöntemi bize skor verir, bu skor 1'e ne kadar yakınsa o kadar iyidir.

Seaborn kütüphanesi içinde bulunan ‘diamonds’ veri setini import edelim. Sadece sayısal değerlerini seçelim ve eksik değerleri de silelim.

Daha önce tanımlamış olduğumuz check_outlier fonksiyonu ile aykırı değer olup olmadığına bakalım.

Aykırı değerlerin olduğunu öğrenmiş olduk.

Bu noktada eşik değerin ne olacağına karar vermemiz gerekiyor. Temel bileşen analizinde elbow yöntemi ile eşik değer belirleyebiliriz.

Eşik değerlerin noktaları incelenirse en dik eğim değişikliği olan nokta 3 noktası gibi gözüküyor. Dolayısıyla bu noktayı eşik değer olarak belirleyebiliriz.

Bu eşik değeri kullanarak aykırı olan gözlemleri getirmiş olduk. Bu noktadan sonra tercihe bağlı olarak aykırı gözlemleri silebilir veya baskılayabiliriz.

Vakit ayırıp okuduğunuz için teşekkürler, yeni konularda görüşmek üzere 🤩👋🏻

--

--

Buket Yüce

I’m interested in Data Science and Analytics. I have motivated to learn, grow, and excel in Data Science.