Outlier Nedir?
Outlier, istatistiksel verilerde normal dağılımın dışında kalan ve diğer verilere göre belirgin şekilde farklı olan değerlerdir. Bu değerler, analiz ettiğiniz veri kümesinin genel yapısını etkileyebilir ve yanlış sonuçlara yol açabilir. Dolayısıyla, outlier’ların tespiti, verilerin güvenilirliğini sağlamak ve doğru analizler yapabilmek için kritik bir adımdır.
Örneğin, bir öğrenci grubunun sınav notlarını analiz ettiğinizde, eğer bir öğrenci notunu diğerlerinden çok daha yüksek ya da düşük almışsa, bu durum outlier olarak değerlendirilir. Outlier’lar, verilerinizi etkileyebilir; bu nedenle, onları analiz sürecinde göz önünde bulundurmak önemlidir.
Python, verilerde outlier tespiti yapmak için bir dizi kütüphane ve teknik sunar. Bu yazıda, Python ile outlier tespiti yapmanın farklı yöntemlerini, adım adım inceleyeceğiz.
Outlier Tespitinde Kullanılan Yöntemler
Outlier’ları belirlemenin birkaç farklı yöntemi bulunmaktadır. Bu yöntemlerin bazıları istatistiksel analiz, bazıları ise görselleştirme temellidir. En yaygın kullanılan yöntemler arasında Z-skoru, IQR (Interquartile Range) ve görsel teknikler bulunmaktadır. Bu yazıda, bu yöntemleri yakından inceleyip Python ile nasıl uygulanacağını göstereceğiz.
İlk olarak Z-skoru yöntemine bakalım. Z-skoru, bir verinin ortalamadan ne kadar uzakta olduğunu belirten bir ölçüttür. Her bir veri noktasının Z-skorunu hesaplayarak, hangi değerlerin normal dağılımın dışına çıktığını belirleyebiliriz. Z-skoru |3|’ten büyük olan değerlerin genellikle outlier olarak kabul edildiğini söyleyebiliriz.
IQR ise, verinin çeyrek değerlerini kullanarak outlier’ları belirlemenin bir diğer yaygın yöntemidir. Verilerin %25 ila %75’lik dilimlerini alarak bu iki çeyrek arasındaki farkı (IQR) hesaplarız. IQR değerinin 1.5 katı kadar alt veya üstte kalan değerler outlier olarak tanımlanabilir.
Python ile Outlier Tespitine Giriş
Python, istatistiksel ve matematiksel hesaplamalar için güçlü kütüphanelere sahiptir. Örneğin, NumPy, Pandas ve Scikit-learn gibi kütüphaneler, numeric veriler üzerinde kolaylıkla hesaplama yapmamıza olanak tanır. Bu kütüphaneleri kullanarak öncelikle veri setimizi yüklemeye başlıyoruz.
Öncelikle gereken kütüphaneleri yükleyelim. Terminal veya komut istemcisine şu kodları yazabilirsiniz:
pip install numpy pandas matplotlib seaborn
Bu komut, gerekli kütüphaneleri sisteminize kuracaktır. Kurulumdan sonra, verimizi Pandas kütüphanesini kullanarak yükleyebilir ve işleyebiliriz.
Örnek Veri Kümesi Oluşturma
Öncelikle, basit bir veri kümesi oluşturalım. Aşağıdaki örnek, rastgele sayıların yanı sıra birkaç outlier içermektedir. Bu sayede, uygulamamız gereken yöntemleri daha iyi gözlemleyebiliriz:
import pandas as pd import numpy as np # Rastgele veri oluşturma data = {'Notlar': np.random.normal(70, 10, 100).tolist() + [10, 100]} df = pd.DataFrame(data) print(df.head())
Yukarıdaki kod, ortalaması 70 ve standart sapması 10 olan 100 adet rastgele sayı oluşturmakta ve 10 ve 100 sayılarını belirgin outlier olarak eklemektedir. Bu veri kümesi ile çalışarak farklı yöntemlerle outlier tespitinde bulunacağız.
Z-Skoru ile Outlier Tespiti
Z-skoru ile outlier tespiti yapmak için, her bir veri noktasının Z-skorunu hesaplayabilmemiz gerekiyor. Bunu yapmak için önce ortalama ve standart sapmayı hesaplayacağız:
mean = np.mean(df['Notlar']) std_dev = np.std(df['Notlar'])
Daha sonra, Z-skorunu hesaplayabiliriz:
df['Z-skoru'] = (df['Notlar'] - mean) / std_dev outliers = df[df['Z-skoru'].abs() > 3]
Yukarıdaki kodlar, veri çerçevemize Z-skorunu ekleyerek her bir notanın Z-skorunu hesaplamakta ve Z-skoru |3|’ten büyük olan outlier’ları maskeleyerek yeni bir veri çerçevesi oluşturmaktadır.
IQR ile Outlier Tespiti
IQR ile outlier tespitine geçmeden önce, veri kümesinde 1. ve 3. çeyrekleri bulmamız gerekmektedir:
Q1 = df['Notlar'].quantile(0.25) Q3 = df['Notlar'].quantile(0.75) IQR = Q3 - Q1
Bu değerleri hesapladıktan sonra, alt ve üst sınırları belirleyebiliriz:
lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR outliers_iqr = df[(df['Notlar'] < lower_bound) | (df['Notlar'] > upper_bound)]
Burada, bulduğumuz alt ve üst değerler ile veri kümesindeki outlier’ları tespit edebiliriz. IQR yöntemi, özellikle normal dağılım göstermeyen verilerde etkili bir yöntemdir.
Görselleştirme ile Outlier Tespiti
Veri analizi sürecinde, görselleştirmenin ne kadar önemli olduğunu unutmamak gerekir. Outlier’ları tespit etmenin yanı sıra, verilerinizi daha iyi anlamak ve analiz etmek için görselleştirmeniz büyük fayda sağlar. Matplotlib ve Seaborn kütüphaneleri, verilerinizi görselleştirmek için harika araçlardır. Örneğin, aşağıdaki kodları kullanarak bir kutu grafiği oluşturabiliriz:
import matplotlib.pyplot as plt import seaborn as sns plt.figure(figsize=(10,6)) sns.boxplot(data=df, y='Notlar') plt.title('Notların Kutu Grafiği') plt.show()
Bu görselleştirme yöntemi, veri setindeki outlier’ları açıkça görebilmemizi sağlar. Kutu grafıkları, verilerin dağılımını ve çeyrek değerlerini görsel bir biçimde sunar ki bu da outlier tespitinde oldukça etkilidir.
Sonuç ve Uygulama
Outlier tespiti, herhangi bir veri analizi sürecinin önemli bir parçasıdır. Python kullanarak bu süreci kolayca gerçekleştirebiliriz. Z-skoru ve IQR yöntemleri ile birlikte görselleştirme teknikleri, hangi değerlerin veri kümenizde outlier olduğunu belirlemenize yardımcı olacaktır. Bu yazıda öğrendiğiniz yöntemlerle, kendi veri setlerinizde outlier’ları rahatça tespit edebilirsiniz.
Bunun yanı sıra, verilerinizi analiz ederken outlier’lar ile ne yapacağınızı da düşünmelisiniz. Bazı durumlarda, outlier’ları veri kümesinden çıkarabilirsiniz; bazen de bu değerleri tutmak daha makul olabilir. Bu tamamen analiz ettiğiniz veri kümesine ve hedeflerinize bağlıdır.
Umarım bu yazı, outlier tespiti konusunu daha iyi anlamanızı sağlamıştır. Artık verilerinizdeki anormallikleri belirlemek ve gerektiğinde onlarla başa çıkmak konusunda daha donanımlısınız. Kendi projelerinizde bu teknikleri uygulamaktan çekinmeyin!