← 3.2

3.3. Özellik Seçimi & VIF Analizi
MODÜL 3.3

Özellik Seçimi & VIF Analizi

Aynı hikayeyi iki kere anlatan değişkenleri tespit edin! 📊
Modelinizin kafasını karıştıran gereksiz özellikleri temizleyin.

🎯 Nasıl Kullanacaksınız? (3 Adım)

1

Verinizi Girin

Aşağıdaki kutuya sayısal verilerinizi girin veya örnek veriyi kullanın

2

"Analiz Et" Butonuna Tıklayın

Sistem otomatik olarak korelasyonları ve VIF değerlerini analiz edecek

3

Sonuçları Yorumlayın

Kırmızı renkli hücrelere ve yüksek VIF değerlerine dikkat edin

Neden Özellik Seçimi Gerekli?

🤔 Problem: Aynı Bilgiyi Tekrar Eden Değişkenler

Eğer iki değişken aynı bilgiyi taşıyorsa (örneğin "metrekare" ve "metrekare + 1"), modeliniz hangisinin daha önemli olduğuna karar veremez. Bu da kararsız ve güvenilmez sonuçlara yol açar.

📊 Korelasyon Nedir? Nasıl Yorumlanır?

🟢
Düşük Korelasyon

|r| < 0.5

Değişkenler bağımsız
🟡
Orta Korelasyon

0.5 ≤ |r| < 0.8

Dikkat edilmeli
🔴
Yüksek Korelasyon

|r| ≥ 0.8

Problem! Birini çıkarın

🎯 VIF (Variance Inflation Factor) Nedir?

VIF, bir değişkenin diğer değişkenler tarafından ne kadar iyi açıklandığını ölçer. Yüksek VIF değeri (> 5-10), o değişkenin gereksiz olduğunu gösterir.

Formül: VIF ≈ 1 / (1 - R²)  |  İyi: VIF < 5  |  Kötü: VIF > 10

✅ Ne Yapmalıyım?

Yüksek korelasyon bulursan:
  • Değişkenlerden birini çıkar
  • Domain bilgisine göre seçim yap
  • Yeni bir özellik oluştur (ortalama, oran vb.)
Yüksek VIF bulursan:
  • Değişkeni çıkar
  • Ridge/Lasso regresyon kullan
  • PCA ile boyut indirgeme yap

🔍 A) Verinizi Analiz Edin

Örnek veriyi kullanabilir veya kendi verinizi yapıştırabilirsiniz:

🎨 B) Korelasyon Isı Haritası

Renkler değişkenler arasındaki ilişkiyi gösterir:

Güvenli (|r| < 0.5)
Dikkat (0.5 ≤ |r| < 0.8)
Riskli (|r| ≥ 0.8)
💡 İpucu: Çapraz çizgi (kendisiyle korelasyon) her zaman 1.0'dır, bunları görmezden gelin!

📊 C) Analiz Sonuçları & Öneriler

🎯 "Analiz Et" butonuna tıklayın, sonuçlar burada görünecek

📈 D) VIF Değerleri (Yaklaşık)

Her değişkenin diğer değişkenlerle ilişkisini gösteren yaklaşık VIF değerleri:

Analiz sonuçları burada görünecek...
💡 VIF < 5: Güvenli  |  VIF 5-10: Dikkat  |  VIF > 10: Riskli - Çıkarılmalı

🎮 E) Problem Yaratmayı Deneyin!

Aşağıda yapay olarak mükemmel korelasyonlu bir sütun ekleyin ve ısı haritasının nasıl kırmızıya döndüğünü gözlemleyin.

Deneyin: a=1, b=0 yaparsanız mükemmel korelasyon (kırmızı) yaratırsınız!
Formül: yeni_sütun = a × metrekare + b

💻 Gerçek Kod Örneği

import pandas as pd
import numpy as np
from statsmodels.stats.outliers_influence import variance_inflation_factor

# Korelasyon matrisi ile yüksek korelasyonlu değişkenleri bul
correlation_matrix = df.corr()
high_corr_pairs = []
for i in range(len(correlation_matrix.columns)):
    for j in range(i):
        if abs(correlation_matrix.iloc[i, j]) > 0.8:  # Eşik değer
            high_corr_pairs.append((correlation_matrix.columns[i], correlation_matrix.columns[j]))

# VIF değerlerini hesapla
def calculate_vif(data):
    vif_data = pd.DataFrame()
    vif_data["feature"] = data.columns
    vif_data["VIF"] = [variance_inflation_factor(data.values, i) for i in range(len(data.columns))]
    return vif_data

vif_results = calculate_vif(df)
high_vif_features = vif_results[vif_results["VIF"] > 10]  # Eşik değer

print("Yüksek korelasyonlu çiftler:", high_corr_pairs)
print("Yüksek VIF'li değişkenler:")
print(high_vif_features)

# Çözüm: Gereksiz değişkenleri çıkar
# df_clean = df.drop(columns=['gereksiz_degisken1', 'gereksiz_degisken2'])

✅ Bulduğunuz Problemleri Nasıl Çözeceksiniz?

🎯 Hangi Değişkeni Çıkaracaksınız?

  • Domain bilgisi: Hangisi daha mantıklı?
  • Basitlik: Hangisi daha anlaşılır?
  • Veri kalitesi: Hangisinde daha az eksik veri var?
  • Yorumlanabilirlik: Hangisini açıklaması daha kolay?

🛠️ Pratik Çözümler:

  • Değişkenlerden birini silin
  • Yeni bir özellik oluşturun (ortalama, oran)
  • Ridge/Lasso regresyon kullanın
  • PCA ile boyut indirgeme yapın