Veri ön işleme, model kurulmadan önce veri seti üzerinde yapılan bir takım düzeltmeler, eksik gözlemlerin çeşitli yöntemlerle giderilmesi, verileri kaldırma, dönüştürme gibi işlemlerdir. Özetle, veriyi sindirmek ve makine öğrenmesi modellerinin veriden daha fazla ve daha doğru bir şekilde yararlanmasını sağlamak için kullanılan teknik/yöntemler bütününe Veri Ön İşleme diyoruz.
Bu yazı serisinde tüm veri ön işleme adımlarını kısaca ele almayı düşünüyorum, şimdi aykırı gözlem ile başlayabiliriz 🙂
Kime Göre Aykırı Gözlem ?
Aykırı gözlem, veri seti içerisinde ortalamayı ve standart sapmayı bozan değerler olarak düşünülebilir. Verimizin ortalamasını ve standart sapmasını saptırarak içerisinde yer alan bilginin yanılmasına sebep olur. Bunu bir örnekle açıklamak istersek, araç kilometresine göre fiyat tahmini yaptığımızı düşünelim; veri setinin ortalamasını 60.000 km’ye sahip araçların oluşturduğunu biliyoruz ve veri seti içerisinde 1 km’ye sahip, 400.000 km’ye sahip az sayıda araç olduğunu gördük. Bu değerler bizim için aykırı gözlem olarak değerlendirilebilir, ortalamamızın sapmasına ve bilginin yanılmasına sebep olacaktır.
Aykırı Gözlem Neye Göre Belirlenir ?
- Sektör Bilgisi
- Standart Sapma Yaklaşımı
- Z Skoru Yaklaşımı
- Boxplot (IQR) Yöntemi
Şimdi bu seçeneklerden bir kaçını ele alalım:
Bir değişkenin ortalaması üzerine aynı değişkenin standart sapması eklenir ve bu değer eşik değer olarak belirlenir. Eşik değere göre bir tıraşlama yapılarak aykırı gözlem problemi çözülür. Probleme ve veri setine göre 1–2–3 standart sapma eklenerek farklı değerlendirmeler yapılabilir.
Z skoru, normal dağıldığı kabul edilen verinin standart normal dağılıma (StandardScaler) dönüştürülmesi sonucu verinin yeni değerleridir. Bu değerler bize verinin ortalamadan kaç standart sapma uzakta olduğunu gösterir. Burada bir eşik değer belirleriz, örneğin; sağdan ve soldan ‘ + , — ‘ 2.5 veya 3 değer belirleyerek bu değeri eşik değer olarak alırız. Sonrasında normallik varsayımını bozan değerler bu eşik değerin dışında kalan değerlerdir ve bunlar aykırı değer olarak belirlenir.
Bu yöntemde öncelikle aykırı değer sınırları belirleriz, sınırları belirlemek için çeyreklikleri kullanırız. Çeyreklikler arası mesafeyi kontrol etmek için IQR değerini kullanırız. Alt sınır, üst sınır belirleyelim ve formülü ele alalım:
- IQR = Q3 — Q1
- Alt Aykırı Değer Sınırı = Q1 — 1.5 * IQR
- Üst Aykırı Değer Sınırı = Q3 + 1.5 * IQR
belirlenen bu sınırların dışında kalan değerler aykırı değer olarak işaretlenir. Burada Q3 — Q1 değeri çeyrekler açıklığı olarak bilinen Betimsel İstatistiktir. Çeyrekler açıklığı, veri setinin %50’sini kapsayan üçüncü çeyreklik ve birinci çeyreklik farkını gösteren istatistiksel bir ölçüdür ve aykırı değerlerden etiklenmez.
Burada Q3 ve Q1 çeyrekliklerini elimizdeki veri setine ve probleme göre 0.25-0.75 veya 0.05-0.95 olarak seçebiliriz. Bu yöntem için Python kodu paylaşacağım;
Q1 = dataframe[column].quantile(0.25)
Q3 = dataframe[column].quantile(0.75)
IQR = Q3 - Q1
up_limit = Q3 + 1.5 * IQR
low_limit = Q1 - 1.5 * IQR
Bu yöntemde aykırı değerleri kutu grafiği ile gözlemlemek mümkündür, bunu için seaborn kütüphanesindeki boxplot grafiğini kullanarak aykırı değerleri gözlemleyebiliriz.
burada üst çizginin yukarısında kalan değerler aykırı değer olarak gözlemlenir. Kutunun üst çizgisi %75’lik kısmı alt çizgisi %25’lik kısmı ortadaki çizgi isi medyanı verir.
Veriler her zaman tek başına incelendiğinde aykırı olarak gözlemlenmeyebilir, bazı durumlarda veriyi birlikte incelediğimizde aykırı bir durum gözlemleyebiliriz. Buna örnek olarak incelediğimiz veri setinde yaş ve hamilelik sayısı değişkenlerinin olduğunu düşünelim, yaş ve hamilelik değişkeni tek başına bir aykırılık ifade etmezken hamilelik ve yaş birlikte incelendiğinde 18 yaşında birisinin 5 hamilelik sayısına sahip olması aykırılık olarak gözlemlenir.
Çok değişkenli aykırı gözlem analizinde Local Outlier Factor yöntemi kullanabiliriz. Bu yöntemi kısaca açıklamak gerekirse;
Local Outlier Factor, gözlemleri bulundukları konumda yoğunluk tabanlı skorlayarak buna göre aykırı değer olabilecek değerleri tanımlayabilmemize imkan sağlar. Bir noktanın lokal yoğunluğu bu noktanın komşuları ile kıyaslanır eğer nokta komşularının yoğunluğundan anlamlı bir şekile düşük ise bu komşulardan daha seyrek bir bölgede bulunuyor yorumu yapılabilir. Bir değerin çevresi yoğun değil ise bu değer aykırı değerdir şeklinde değerlendirilebilir.
Veri Ön İşleme serimizin ilk yazısını burada noktalıyorum. Bir sonraki yazımızda eksik değerleri ele almak üzere, hoşçakalın 🙂
Kaynak: https://www.veribilimiokulu.com/bootcamp-programlari/veri-bilimci-yetistirme-programi/