Veri Ön İşleme Adım 1 : Eksik Gözlem Analizi
Konuya geçmeden önce görseli açıklamak istiyorum. Veri bilimi ve makine öğrenmesi ucu bucağı görünmeyen bir deniz, denizin yaşaması ve yaşatması için bir düzene ve her şeyden önce bir temizliğe ihtiyaç var. Veri ön temizliği bizim için tamda bu denli bir öneme sahip. Birlikte denizimizi temizleyelim ve duru sularda canlıların yaşamına fırsat verelim. Yolculuğumuz başlasın 🙂
Veri bilimi makine öğrenmesi alanına ilk başladığınızda tertemiz sorunsuz veri setleri size kucak açar. Tam çoğu şeye hakim olduğumuzu düşünmeye başlamışken öyle bir veri seti ile karşılaşırız ki ne yapacağımızı bilemeyiz. İşte bu yazı dizisi tam bu sebeple ortaya çıktı. İstedim ki veriyi birlikte uygulamalar yaparak hazır veri (tidy data) haline getirelim.
Makineler veriyi öğrenirken net ve temiz veri ile öğrenmeyi gerçekleştirmek isterler. Bu yüzdendir ki bir veri bilimi projesinin en uzun ve en önemli evresi veri ön işleme (data preprocessing) ve öznitelik seçmi (feature selection) aşamalarıdır. Bu adımları hızlı ve dikkatsiz olarak geçmek modelimizi doğrudan etkiler ve istediğimiz sonuçları alamadığımızda sık sık geri dönüp bir şeyler düzeltme ihtiyacı hissederiz.
Gelin öncelikle veri ön işleme adımları nelerdir bunlara bakalım daha sonra eksik gözlem analizi hakkında derinlemesine konuşalım.
- Eksik Gözlem Analizi
- Aykırı (Uç) Değer Tespiti
- Dönüştürme İşlemleri (Transformation)
- Çok Boyutluluk
- Veri Seti Dengesizliği (İmbalanca)
- Feature Selection
EKSİK VERİ NEDİR?
Veriyi toplarken, kaydederken ya da aktarırken bir şekilde değişken değerlerinin kaybolmasından ya da hiç veri girişi olmamasından kaynaklanan gözlem yokluğuna eksik veri adı verilir.
Veri Toplanırken Nasıl Eksik Gözlem Oluşur?
Yapılan araştırmalarda ya da anlık akıştan oluşturulan veri setlerinde her gözlem birimi açıklayıcılığa sahip olmayabilir. Bu durum birçok sebebi bulunabilir (kişinin çekimser davranması, soruya uygun cevap bulamaması, anlık veri kaybı).
Bazen de bazı sorular birbiriyle öyle bağlantılıdır ki veri setinde eksik gözlem oluşturur. Örneğin bir hastanede araştırma yaptığımızı ve sorularımızın yaş, cinsiyet, kilo, ameliyat olma durumu ve ameliyat yarası iyileşme süresi(gün) olduğunu varsayalım. İlk üç soru için herkesin verebileceği bir cevap varken ameliyat olmayan birinin iyileşme süresine verecek bir cevabı olamaz ve böylelikle veri setimizde eksik gözlem oluşmuş olur. Bu örnekteki eksik gözlemi korelasyonlu eksik gözlem olarak adlandırırız bu konuyu aşağıda açıklayacağım sadece şimdiden aklınızda bulunmasını istedim.
Korelasyon nedir daha detaylı bilgi için buraya bakabilirsiniz.
Veri Setinde Eksik Gözlem Analizi Nasıl Yapılır
Eksik gözlem ile karşılaştığımızda temel olarak yapabileceğimiz iki yöntem vardır.
- 1) Eksik Gözlemi Silmek
- 2) Eksik Gözlemleri Doldurmak
Bu yöntemlere geçmeden önce dikkat etmemiz gereken çok önemli bir nokta var. Veri setinde eksik gözlem tanımını çok iyi yapmamız gerekir. Çünkü bazı eksiklikler tamamen rastlantısal olabileceği gibi bazı gözlemler ise rastlantısal değildir.
Rastlantısal olan kayıp gözlemler başka parametrelerden (öznitelik) etkilenmemiş tamamen kendine bağlı olarak eksiklik oluşmuş gözlemlerdir. Rastlantısal olan eksik gözlemler TROK olarak adlandırılır ve veri seti içerisinde rastgele dağılım gösterirler.
Rastlantısal olmayan kayıp gözlemler ise genellikle korelasyonlu (birbiriyle ilişkili) eksik gözlemlerdir. Bu noktada korelasyonlu kayıp gözlem örneğini yeniden aklımıza getirelim.
Peki eksik gözlemlerin rastgeleliğini nasıl kontrol ederiz?
Bunun için birkaç yol var gelin birlikte uygulamalı olarak bunları inceleyelim.
- 1) Missingno Kütüphanesini Kullanarak Kayıp Gözlemleri Görselleştirelim
Beyaz çizgiler eksik gözlemleri temsil ediyor. Eğer kayıp gözlemler hep aynı satırda birlikte yer alıyorsa rastgelelik olmadığını söyleyebiliriz.
- 2) Korelasyon Kontrolü Yapalım
Bu görsel eksik gözlem içeren değişkenler arasındaki ölçünün derecesini bize verir. Eğer bu ilişki derecesi yüksek çıkarsa değişkenlerin birbiriyle yüksek ilişkili olduğu ve kayıpların rastlantısal olmadığı yorumunu yaparız. Bu veri seti için yorumumuz kayıp gözlem değişkenleri arasında ilişki olmadığı şeklindedir.
- 3) Hipotez Testi Kuralım
- H0: X ve Y değişkenlerinin eksik gözlemlerinin dağılımı bakımından fark yoktur.
- H1: X ve Y değişkenlerinin eksik gözlemlerinin dağılımı bakımından fark vardır.
3.1) T-Testi Uygulayalım
T-testini researchpy kütüphanesini kullanarak yapalım.
3.2) Ki Kare Testi Uygulayalım
Eksik gözlemlerin rastlantısallığını kontrol ettikten sonra yukarıda belirttiğimiz yöntemlere geçebiliriz.
Eksik Gözlemlerin Silinmesi
Eksik gözlemleri silmek kolay ve hızlı bir yol olsa da analizi doğru yapılmadan silinen veriler bilgi kaybına neden olacağı için ileride farklı maliyetlere yol açabilir.
Peki eksik veri ne zaman silinmeli ?
Eğer kayıp gözlem toplamı tüm veri setini etkilemeyecek boyuttaysa bu gözlemler silinebilir. Burada bir diğer yaklaşım ise eksik gözlemin çok fazla olduğu özniteliğin tamamen veriden silinmesidir. Eğer yeterli özniteliğe sahipsek ve öznitelik %25’ten fazla eksik veriye sahipse bu sütunu veri setinden kaldırabiliriz. Böylelikle verimiz gözlem birimi (n) bakımından bir kayıp yaşamamış olur. Gelin şimdi bu yöntemin uygulamalarına göz atalım.
Satır Bazında Silme İşlemi
Gözlem birimi bakımından silme işlemi yaptığımızda verimizin 3276’dan 2011’e indiğini görüyoruz. Yani bu yöntemle verimizin yaklaşık %38’ini kaybetmiş olduk böyle bir bilgi kaybını istemeyiz.
Tresh Değerini Belirleyelim
Sütun Bazında Silme İşlemi
Silmek İstediğimiz Sütunları Belirleyelim
Eksik Gözlemlerin Doldurulması
Eksik gözlemi direkt doldurmak gibi bu gözlemleri dikkatsiz doldurmakta zararlıdır. Dikkatle doldurulmayan gözlemler veride yanlılığa sebep olabilir ve veri setinin vermek istediği asıl bilgiyi değiştirmiş olur.
Eksik gözlemleri doldurmak için iki yöntem bulunur bunlar,
- 1) Değer Atama Yöntemleri
- 2) Tahmine Dayalı Yöntemleri
1.1) Eksik Gözlemleri Ortalama Değer ile Doldurma
1.2) Eksik Gözlemleri Medyan ile Doldurma
1.3) Eksik Gözlemleri Mod ile Doldurma
2.1) Tahmine Dayalı KNN Imputer ile Doldurma
2.2) EM ile Doldurma
2.3) Makine Öğrenmesi ile Doldurma
Makine öğrenmesi ile doldurma yönteminde klasik bir ML süreci uygularız. Tahmin etmek istediğimiz sütunu target değişken seçerek eksik gözlemleri drop ettikten sonra modele sokarız. Model hata metrıkleri istediğimiz gibi sonuç verdiğinde ise ham veri setini modele vererek değişken için predict değerleri elde etmiş oluruz.
BONUS BÖLÜM!!!
Eksik gözlem analizi üzerine anlatacaklarım burada bitiyor 🙂 Veri bilimi kategorisinde amacım veri ön işleme adımlarını detaylı basit ve uygulamalı kodlar ile sizlere aktarabilmek. Bu yüzden detaylı anlatmamı istediğiniz ve takıldığınız konuları sormaktan ve yapıcı eleştirilerinizi bana iletmekten lütfen çekinmeyin.
Bir Sonraki Yazıda Görüşmek Dileğiyle,
Keyifli Çalışmalar Dilerim 🙂