Web sitemizde size en iyi deneyimi sunmak için çerezleri kullanıyoruz. Hangi çerezleri kullandığımız hakkında daha fazla şey öğrenmek için Gizlilik
Onayla
Türker UZUNTürker UZUN
  • VERİ ANALİZİ
    • Veri Analiz Aşamaları
    • Pandas
    • CRM Analitiği
    • Doğal Dil İşleme (NLP)
    • Makine Öğrenmesi
    • Ölçümleme Problemleri
    • Özellik Mühendisliği
    • Tavsiye Sistemleri
  • PROGRAMLAMA
  • BLOG
  • DİZİ & FİLM
  • İLETİŞİM
Reading: Veri Analizi Aşamaları 04 – Outlier Kontrolü
Paylaş
Aa
Türker UZUNTürker UZUN
Aa
  • VERİ ANALİZİ
  • PROGRAMLAMA
  • BLOG
  • DİZİ & FİLM
  • İLETİŞİM
Ara...
  • VERİ ANALİZİ
    • Veri Analiz Aşamaları
    • Pandas
    • CRM Analitiği
    • Doğal Dil İşleme (NLP)
    • Makine Öğrenmesi
    • Ölçümleme Problemleri
    • Özellik Mühendisliği
    • Tavsiye Sistemleri
  • PROGRAMLAMA
  • BLOG
  • DİZİ & FİLM
  • İLETİŞİM
Follow US
Türker UZUN > Blog > Veri Analizi > Python Veri Analizi > Veri Analizi Aşamaları 04 – Outlier Kontrolü
Python Veri Analizi

Veri Analizi Aşamaları 04 – Outlier Kontrolü

7 Min Read
Paylaş
7 Min Read
Python Blog, Python Soruları, Python Dersleri, Python Veri Analizi, Python İlginç Sorular

Veri analizinde, bilinmeyen ve beklenmedik değerler, analiz sonuçlarını büyük ölçüde etkileyebilen önemli bir sorundur. Bu değerler, outlier veya anomali olarak adlandırılır ve genellikle veri setinin genel dağılımından önemli ölçüde sapma gösterir. Bu blog yazısında, outlier’ları tespit etmenin önemi, farklı outlier türleri, kontrol yöntemleri ve bu konuda dikkat edilmesi gereken stratejileri keşfedeceğiz.

Contents
Outlier TürleriOutlier Kontrol YöntemleriOutlierlarla Mücadele YöntemleriOutlier Kontrolü ile İlgili Dikkat Edilmesi GerekenlerOutlier Kontrolü ÖrnekPYOD ile Outlier tespiti:

Outlier Türleri

  1. Noktasal Anomaliler: Genellikle diğer değerlerden önemli ölçüde farklı olan tek bir veri noktası.
  2. Grup Anomalileri: Belirli bir bölgesinde yoğunlaşmış birden fazla anormal değer içeren grup.
  3. Bağlamsal Anomaliler: Belirli bir bağlam içinde anormal kabul edilen veri noktaları.

Outlier Kontrol Yöntemleri

  1. İstatistiksel Yöntemler:
    • Z-skoru ve IQR gibi istatistiksel metotlar kullanılarak outlier’lar tespit edilebilir.
  2. Görselleştirme Yöntemleri:
    • Kutu çizimi (Boxplot) ve histogram analizi gibi görsel yöntemlerle outlier’lar gözlemlenebilir.
  3. Makine Öğrenmesi Yöntemleri:
    • K-Means gibi algoritmalar kullanılarak veri setindeki kümeleme yapılarından yola çıkarak outlier’lar belirlenebilir.

Outlierlarla Mücadele Yöntemleri

  1. Silme:
    • Yöntem: En basit yöntemlerden biri, belirli bir eşik değeri üzerinde veya altında kalan outlier’ları veri setinden silmektir.
    • Avantajlar: Hızlı ve basit bir çözümdür.
    • Dezavantajlar: Veri kaybına neden olabilir ve analiz sonuçlarını etkileyebilir. Ayrıca, outlier’ların silinmesi, outlier’ların nedenlerini anlamak için bilgi kaybına yol açabilir.
  2. Düzeltme:
    • Yöntem: Outlier değerlerini, genellikle ortalama veya medyan gibi daha tipik değerlere yakın bir değerle değiştirmektir.
    • Avantajlar: Veri kaybını önler ve orijinal veri setini daha az etkiler.
    • Dezavantajlar: Outlier’lar gerçekten anormal durumları yansıtıyorsa, bu yöntem gerçek durumu çarpıtabilir. Ayrıca, ortalama ve medyan gibi istatistiksel ölçüler, dağılımın doğasını yansıtmayabilir.
  3. Etiketleme:
    • Yöntem: Outlier’ları özel bir etiketle işaretlemek, analiz sürecinde bu noktaların özel bir şekilde ele alınmasını sağlamak anlamına gelir.
    • Avantajlar: Outlier’ları belirgin bir şekilde tanımlar ve analistlere dikkat etmeleri için bir uyarı sağlar.
    • Dezavantajlar: Outlier’ların sayısı fazlaysa bu yöntem yönetimi karmaşık hale getirebilir.
  4. Transformasyonlar:
    • Yöntem: Veri setine belirli bir dönüşüm uygulayarak, outlier’ların etkisini azaltmak veya onları daha belirgin hale getirmek mümkündür.
    • Avantajlar: Outlier’ların etkisini azaltabilir ve daha normal bir dağılım elde etmeye yardımcı olabilir.
    • Dezavantajlar: Hangi dönüşümün kullanılacağı, veri setinin özelliklerine bağlı olarak değişebilir.
  5. İstatistiksel Yöntemler:
    • Yöntem: Z-skoru, IQR (interquartile range) gibi istatistiksel yöntemler kullanılarak outlier’lar tespit edilebilir.
    • Avantajlar: İstatistiksel olarak sağlam bir temele dayanır.
    • Dezavantajlar: Eşik değeri seçimi önemli olabilir ve bazı durumlarda outlier’ları belirleme konusunda öznellik içerebilir.
  6. Makine Öğrenmesi:
    • Yöntem: K-Means gibi kümeleme algoritmaları veya belirli bir modeli kullanarak outlier’ları belirlemek mümkündür.
    • Avantajlar: Veri setinin karmaşıklığına daha iyi uyabilir.
    • Dezavantajlar: Eğitim gerektirebilir ve bazı durumlarda yavaş olabilir.

Outlier Kontrolü ile İlgili Dikkat Edilmesi Gerekenler

  1. Etki Analizi:
    • Outlier’ların veri setine etkisi değerlendirilmelidir.
  2. Çoklu Yöntem Kullanımı:
    • Farklı yöntemlerin kullanılması ve sonuçların karşılaştırılması, daha güvenilir sonuçlar elde etmeye yardımcı olabilir.
  3. Veri Kaynaklarına Dikkat:
    • Outlier’ları silmeden önce, bu noktaların hatalı veri girişi veya toplama hatası gibi bir kaynaktan kaynaklanmadığından emin olunmalıdır.

Outlier Kontrolü Örnek

Outlier’ları belirlemek için istatistiksel bir yöntem olan IQR (interquartile range) yöntemini kullanabiliriz. İşte bu işlemi gerçekleştiren kod:

# IQR yöntemi ile outlier'ları belirleme
Q1 = df['sepal_length'].quantile(0.25)
Q3 = df['sepal_length'].quantile(0.75)
IQR = Q3 - Q1

lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

outliers = df[(df['sepal_length'] < lower_bound) | (df['sepal_length'] > upper_bound)]
print("Outlier Noktalar:")
print(outliers)

Aşağıdaki örnekte, Isolation Forest algoritması kullanılarak outlier’lar tespit edilmeye çalışılıyor. Bu algoritma, normal gözlemlerin yoğun bir bölgede bulunması ve outlier’ların bu yoğun bölgeden uzaklaşması prensibine dayanır.

Ancak, Machine Learning algoritmalarını kullanırken dikkate almanız gereken birkaç önemli nokta vardır:

  1. Veri Standardizasyonu: Machine Learning algoritmaları genellikle standartlaştırılmış veri üzerinde daha iyi performans gösterir. Bu nedenle, veri setinizi ölçeklendirmeyi unutmayın.
  2. Model Parametreleri: Algoritmanın parametreleri, outlier tespit performansını etkileyebilir. Bu parametreleri dikkatlice ayarlamak önemlidir.
  3. Doğrulama: Model performansını değerlendirmek için doğrulama yapmak, modelin gerçek dünya verilerine ne kadar iyi uyarlandığını anlamanıza yardımcı olacaktır.
import pandas as pd
from sklearn.ensemble import IsolationForest
import seaborn as sns
import matplotlib.pyplot as plt

def outlier_detection(data, feature, contamination=0.1):
    """
    Verilen bir veri setindeki outlier'ları tespit eder.

    Parameters:
    - data: DataFrame, veri seti
    - feature: str, outlier tespiti yapılacak özellik
    - contamination: float, outlier oranı, varsayılan: 0.1

    Returns:
    - DataFrame, outlier'ları içeren veri seti
    """

    # Modeli oluşturma
    model = IsolationForest(contamination=contamination)

    # Modeli eğitme
    model.fit(data[[feature]])

    # Her bir gözlemin outlier olup olmadığını tahmin etme
    data['outlier'] = model.predict(data[[feature]])

    # Outlier'ları görselleştirme
    sns.scatterplot(data=data, x=feature, y='outlier', hue='outlier', marker='x')
    plt.title(f'{feature} Outlier Tespiti')
    plt.show()

    # Outlier'ları görüntüleme
    outliers = data[data['outlier'] == -1]
    print("Outlier Noktalar:")
    print(outliers[[feature, 'outlier']])

    return outliers

# Iris veri setini yükleme
df = sns.load_dataset("iris")

# Outlier tespiti yapma
outliers = outlier_detection(df, 'sepal_length', contamination=0.1)

PYOD ile Outlier tespiti:

import pandas as pd
from sklearn.preprocessing import StandardScaler
from pyod.models.auto_encoder import AutoEncoder

def summarize_outliers(data, features, threshold=2.5):
    scaler = StandardScaler()
    data_scaled = scaler.fit_transform(data[features])
    model = AutoEncoder(hidden_neurons=[len(features), 2, len(features)])
    model.fit(data_scaled)

    # Tam veri setini kullanarak outlier skorlarını hesapla
    data['outlier_score'] = model.decision_function(data_scaled)
    
    # Eşik değeri üzerindeki outlier'ları seç
    outliers = data[data['outlier_score'] > threshold]
    
    # Özetleme
    num_outliers = len(outliers)
    outlier_percentage = (num_outliers / len(data)) * 100
    
    summary = {
        'Toplam Veri Sayısı': len(data),
        'Outlier Sayısı': num_outliers,
        'Outlier Oranı': f'{outlier_percentage:.2f}%',
        'Eşik Değeri': threshold
    }
    return summary

# Kendi örnek veri setini oluştur
np.random.seed(42)
sample_data = {
    'feature1': np.random.normal(0, 1, 100),
    'feature2': np.random.normal(0, 1, 100),
    'feature3': np.random.normal(0, 1, 100),
}

sample_df = pd.DataFrame(sample_data)


# Eksik değerleri ortalama ile doldur
sample_df.fillna(sample_df.mean(), inplace=True)

# Özetleme fonksiyonunu kullanarak outlier'ları tespit et ve özetle
features_to_check = ['feature1', 'feature2', 'feature3']
summary_result = summarize_outliers(sample_df, features_to_check, threshold=2.5)

# Sonucu göster
print("\nOutlier Tespiti Özeti:")
print(summary_result)

Outlier Tespiti Özeti: {‘Toplam Veri Sayısı’: 100, ‘Outlier Sayısı’: 13, ‘Outlier Oranı’: ‘13.00%’, ‘Eşik Değeri’: 2.5}

ETİKETLER: Outlier Kontrolü, Python Blog, Veri Analizi Aşamaları, Veri Analizi Dersleri
Editor Şubat 25, 2024
Paylaş
Whatsapp Whatsapp LinkedIn Email Copy Link

Son Yazılar

  • Google, Gemma 3’ü Tanıttı: Yenilikler ve Gemma3:12B Değerlendirmesi
  • LLM: Dikkat Mekanizması Hızlandırma Kütüphaneleri Karşılaştırmalı Analiz: Xformers, Flash Attention, DeepSpeed, Apex ve Megatron
  • Büyük Dil Modellerinde Yanıt Süresi Optimizasyonu: Ollama ve Langchain
  • Türkiye’deki Mobil Bankacılık Deneyiminde Neler Gizli: “Part1 – IOS”
  • LinkedIn, Yapay Zeka ile İşe Alım Sürecini Dönüştürüyor: İşe Alım Asistanı Tanıtıldı

Takip Et

Sponsor Linkler

İlginizi Çekebilir

Doğal Dil İşleme (NLP)Python Veri AnaliziVeri Analizi

Türkiye’deki Mobil Bankacılık Deneyiminde Neler Gizli: “Part1 – IOS”

Makine ÖğrenmesiPython Veri AnaliziVeri Analizi

Sorun: CatBoost ve NumPy 2.x Anlaşamıyorlar

BLOGPython Veri AnaliziVeri Analizi

Yemek Yapmayı Kolaylaştıran Gizli Güç: Yapay Zeka ile Tarif Önerisi ve Zorluk Tahmini

PandasVeri Analizi

Verimlilik: Pandas için Kendi Ayar Dosyanızı Oluşturun

Türker UZUNTürker UZUN
Takip Et

Python Veri Analizi Uygulamaları, Makine Öğrenimi, Python Sentiment Analizi, Python NLP Uygulamalar, Web Tasarımı

Removed from reading list

Undo