Eksik Verilerin Tanımı
Eksik veriler, veri setinde bazı gözlemlerin eksik olduğu durumlardır. Eksik veriler, analizlerin doğruluğunu ve güvenilirliğini olumsuz etkileyebilir. Bu nedenle, eksik verilerin doğru bir şekilde tespit edilmesi ve işlenmesi önemlidir.
Eksik Veri Türleri
MCAR (Missing Completely at Random): Verilerin tamamen rastgele eksik olduğu durumlar.
MAR (Missing at Random): Eksik verilerin, diğer gözlemlenen değişkenlerle ilişkili olduğu durumlar.
MNAR (Missing Not at Random): Eksik verilerin, eksik olan gözlemlerin kendileriyle ilişkili olduğu durumlar.
Eksik Verilerin Tespit Edilmesi
Öncelikle, veri setinde eksik verilerin tespit edilmesi gerekmektedir. Bu, eksik verilerin sayısını ve yerini belirlememize yardımcı olur.
import pandas as pd
# Veri setini yükleme
df = pd.read_csv('customer_data.csv')
# Eksik verilerin tespiti
print(df.isnull().sum())
Eksik Verilerin İşlenme Yöntemleri
Eksik verilerle başa çıkmak için çeşitli yöntemler kullanılabilir. Bu yöntemler, eksik verilerin türüne ve veri setinin özelliklerine bağlı olarak değişir.
1. Eksik Verilerin Kaldırılması
Satırların Kaldırılması: Eksik veri içeren satırların tamamen kaldırılması.
# Eksik veri içeren satırları kaldırma
df_dropped_rows = df.dropna()
print(df_dropped_rows.shape)
Sütunların Kaldırılması: Eksik veri içeren sütunların tamamen kaldırılması.
# Eksik veri içeren sütunları kaldırma
df_dropped_columns = df.dropna(axis=1)
print(df_dropped_columns.shape)
2. Eksik Verilerin Doldurulması
Ortalama ile Doldurma: Sayısal verilerde, eksik değerleri sütunun ortalaması ile doldurma.
# Yaş sütunundaki eksik verileri ortalama ile doldurma
df['Age'].fillna(df['Age'].mean(), inplace=True)
Medyan ile Doldurma: Sayısal verilerde, eksik değerleri sütunun medyanı ile doldurma.
# Yıllık gelir sütunundaki eksik verileri medyan ile doldurma
df['AnnualIncome'].fillna(df['AnnualIncome'].median(), inplace=True)
Mod ile Doldurma: Kategorik verilerde, eksik değerleri sütunun modu ile doldurma.
# Cinsiyet sütunundaki eksik verileri mod ile doldurma
df['Gender'].fillna(df['Gender'].mode()[0], inplace=True)
3. Eksik Verilerin Tahmin Edilmesi
Eksik verileri tahmin etmek için makine öğrenimi algoritmaları kullanılabilir. Bu, daha karmaşık ancak genellikle daha doğru sonuçlar sağlayan bir yöntemdir.
KNN (K-Nearest Neighbors) ile Doldurma: KNN algoritması, eksik değerleri tahmin etmek için kullanılabilir.
from sklearn.impute import KNNImputer
import numpy as np
# KNN imputer oluşturma
imputer = KNNImputer(n_neighbors=5)
# Sayısal sütunları seçme
numeric_columns = df.select_dtypes(include=[np.number]).columns
# KNN ile eksik verileri doldurma
df[numeric_columns] = imputer.fit_transform(df[numeric_columns])
4. Eksik Verilerin İşaretlenmesi
Eksik verilerin olduğu yerleri işaretlemek ve bu bilgiyi modellemelerde kullanmak da bir strateji olabilir.
Eksik Veri İşaretleme:
# Eksik veri içeren sütunları işaretleme
for column in df.columns:
df[column + '_missing'] = df[column].isnull().astype(int)
Eksik Verilerin İşlenmesi Sonrası Kontrol
Eksik verilerin işlendiği adımlardan sonra veri setini tekrar kontrol etmek, işlemlerin doğruluğunu ve eksik verilerin tamamen işlendiğini doğrulamak için önemlidir.
# Eksik verilerin yeniden tespiti
print(df.isnull().sum())
Sonuç
Eksik verilerin doğru bir şekilde işlenmesi, veri analizinin doğruluğunu ve güvenilirliğini artırır. Eksik veriler çeşitli yöntemlerle işlenebilir: eksik verilerin kaldırılması, ortalama, medyan veya mod ile doldurulması, makine öğrenimi algoritmaları ile tahmin edilmesi ve eksik verilerin işaretlenmesi. Bu adımlar, veri setinin temizlenmesini ve analizler için uygun hale getirilmesini sağlar.
Bu içerik, eksik verilerin tespiti ve işlenmesi için temel yöntemleri detaylandırır. Eksik verilerin yanı sıra, pratik örneklerle bu kavramların nasıl kullanılabileceğini gösterir. Bir sonraki bölümde, "Aykırı Değerlerin Tespiti ve İşlenmesi" konusunu ele alarak, aykırı değerlerin tespiti ve işlenmesi için temel yöntemleri inceleyeceğiz.
Python temellerini atıp, veri analizi ve bilimi için yetkinlik kazanmak istiyorsanız, 1 aylık yoğun Python kampına hemen kayıt olabilirsiniz. ~40 saat canlı ders, ~50 adet kapsamlı proje, ~15 adet quiz ve sayısız kodlama egzersizinden oluşan, Finlandiya eğitim modellerinden esinlenilerek Helsinki'de geliştirilen interaktif ve pratik odaklı eğitim programına hemen göz atın !