Aykırı Değerlerin Tanımı
Aykırı değerler (outliers), veri setindeki diğer gözlemlerden önemli ölçüde farklı olan veri noktalarıdır. Bu değerler, analizlerin doğruluğunu ve güvenilirliğini olumsuz etkileyebilir. Bu nedenle, aykırı değerlerin doğru bir şekilde tespit edilmesi ve işlenmesi önemlidir.
Aykırı Değerlerin Tespit Edilme Yöntemleri
Görsel Yöntemler
İstatistiksel Yöntemler
Makine Öğrenimi Yöntemleri
1. Görsel Yöntemler
Box Plot (Kutu Grafiği): Box plot, verilerin dağılımını ve aykırı değerleri görselleştirmek için kullanılan bir grafik türüdür.
import matplotlib.pyplot as plt
# Kutu grafiği
df.boxplot(column=['Age', 'AnnualIncome', 'SpendingScore'])
plt.title('Kutu Grafiği')
plt.ylabel('Değerler')
plt.show()
Açıklama: Bu kutu grafiği, Age, AnnualIncome ve SpendingScore sütunlarının dağılımını ve aykırı değerleri gösterir. Grafikteki noktalar aykırı değerleri temsil eder.
Scatter Plot: İki değişken arasındaki ilişkiyi ve aykırı değerleri görselleştirmek için scatter plot kullanabiliriz.
# Scatter plot
df.plot(kind='scatter', x='AnnualIncome', y='SpendingScore')
plt.title('Yıllık Gelir ve Harcama Puanı Scatter Plot')
plt.xlabel('Yıllık Gelir')
plt.ylabel('Harcama Puanı')
plt.grid(True)
plt.show()
2. İstatistiksel Yöntemler
Z-Puanı (Z-Score): Z-puanı, veri noktasının ortalamadan kaç standart sapma uzaklıkta olduğunu gösterir. Z-puanı belirli bir eşik değeri aştığında, veri noktası aykırı değer olarak kabul edilir.
import numpy as np
# Z-puanı hesaplama
z_scores = np.abs((df['AnnualIncome'] - df['AnnualIncome'].mean()) / df['AnnualIncome'].std())
print(z_scores)
# Aykırı değerlerin tespiti
threshold = 3
outliers = df[z_scores > threshold]
print(outliers)
Açıklama: Bu örnekte, AnnualIncome sütunu için z-puanları hesaplanmıştır. Z-puanı 3'ten büyük olan veri noktaları aykırı değer olarak kabul edilmiştir.
IQR (Interquartile Range): IQR, verilerin orta %50'sinin yayılımını ölçer. Veri noktası, 1.5 * IQR dışında kalan bir değere sahip olduğunda aykırı değer olarak kabul edilir.
# IQR hesaplama
Q1 = df['AnnualIncome'].quantile(0.25)
Q3 = df['AnnualIncome'].quantile(0.75)
IQR = Q3 - Q1
# Aykırı değerlerin tespiti
outliers = df[(df['AnnualIncome'] < (Q1 - 1.5 * IQR)) | (df['AnnualIncome'] > (Q3 + 1.5 * IQR))]
print(outliers)
Açıklama: Bu örnekte, AnnualIncome sütunu için IQR hesaplanmış ve aykırı değerler tespit edilmiştir. Q1, Q3 ve IQR kullanılarak aykırı değerler belirlenmiştir.
3. Makine Öğrenimi Yöntemleri
Isolation Forest: Isolation Forest, aykırı değerleri tespit etmek için kullanılan bir makine öğrenimi algoritmasıdır.
from sklearn.ensemble import IsolationForest
# Isolation Forest modeli oluşturma
model = IsolationForest(contamination=0.01)
df['Anomaly'] = model.fit_predict(df[['AnnualIncome', 'SpendingScore']])
# Aykırı değerlerin tespiti
outliers = df[df['Anomaly'] == -1]
print(outliers)
Açıklama: Bu örnekte, Isolation Forest algoritması kullanılarak AnnualIncome ve SpendingScore sütunlarındaki aykırı değerler tespit edilmiştir. Anomaly sütunu, aykırı değerleri (-1) ve normal değerleri (1) gösterir.
Aykırı Değerlerin İşlenme Yöntemleri
Aykırı Değerlerin Kaldırılması: Aykırı değerlerin veri setinden tamamen çıkarılması.
# Aykırı değerlerin kaldırılması
df_cleaned = df[df['Anomaly'] != -1]
print(df_cleaned.shape)
Aykırı Değerlerin Dönüştürülmesi: Aykırı değerlerin daha az etkili hale getirilmesi için dönüştürülmesi.
# Aykırı değerlerin dönüştürülmesi
df['AnnualIncome'] = np.where(df['AnnualIncome'] > (Q3 + 1.5 * IQR), Q3 + 1.5 * IQR, df['AnnualIncome'])
df['AnnualIncome'] = np.where(df['AnnualIncome'] < (Q1 - 1.5 * IQR), Q1 - 1.5 * IQR, df['AnnualIncome'])
Aykırı Değerlerin İşaretlenmesi: Aykırı değerlerin işaretlenmesi ve bu bilgilerin modellemelerde kullanılması.
# Aykırı değerlerin işaretlenmesi
df['IsOutlier'] = df['Anomaly'].apply(lambda x: 1 if x == -1 else 0)
Sonuç
Aykırı değerlerin doğru bir şekilde tespit edilmesi ve işlenmesi, veri analizinin doğruluğunu ve güvenilirliğini artırır. Aykırı değerler çeşitli yöntemlerle tespit edilebilir: görsel yöntemler (box plot, scatter plot), istatistiksel yöntemler (z-puanı, IQR) ve makine öğrenimi yöntemleri (Isolation Forest). Aykırı değerler kaldırılabilir, dönüştürülebilir veya işaretlenebilir. Bu adımlar, veri setinin temizlenmesini ve analizler için uygun hale getirilmesini sağlar.
Bu içerik, aykırı değerlerin tespiti ve işlenmesi için temel yöntemleri detaylandırır. Aykırı değerlerin yanı sıra, pratik örneklerle bu kavramların nasıl kullanılabileceğini gösterir. Bir sonraki bölümde, "Veri Türü Problemleri ve Çözüm Yöntemleri" konusunu ele alarak, veri türü problemlerinin tespiti ve çözümü 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 !