İnteraktif Laboratuvar
5.1. Metrikler Laboratuvarı
Regresyon metriklerini interaktif deneylerle öğrenin. Veriyi manipüle edin, metriklerin nasıl değiştiğini gerçek zamanlı görün!
🎯 Öğrenme Hedefleri
R² Anlayışı
Açıklama Gücü
Hata Metrikleri
RMSE vs MAE
Pratik Yorumlama
İş Bağlamı
🔬 Metrik Laboratuvarı
🎮 Kontrol Panel
30%
20 nokta
0 aykırı
Orta
📈 Gerçek vs Tahmin Dağılımı
🎯 R² (Açıklama Gücü)
0.00
-
📊 RMSE
0.00
-
💡 MAE
0.00
-
📉 Hata Dağılımı Analizi
R²
Açıklama Gücü
0-1 arası değer alır
1'e yakın = Mükemmel uyum
0.7+ = İyi
0.5-0.7 = Orta
0.5- = Zayıf
İş Yorumu: "Bağımsız değişkenler hedefin %XX'sini açıklıyor"
RMSE
Kök Ort. Kare Hata
Gerçek birimde hata
Aşırı değerlere duyarlı
Kareler sayesinde büyük hataları cezalandırır
Düşük = İyi
İş Yorumu: "Tahminler ortalama ±X birim hata yapıyor"
MAE
Ort. Mutlak Hata
Daha robust metrik
Aykırı değerlerden daha az etkilenir
İş birimleri için daha anlaşılır
Düşük = İyi
İş Yorumu: "Ortalama X birim hata var"
💼 Pratik Uygulama: Senaryo Analizi
Deney Yapın:
- • Gürültüyü artırın → R²'nin düştüğünü görün
- • Aykırı değer ekleyin → RMSE'nin MAE'den daha fazla arttığını görün
- • Mükemmel uyum yapın → R² = 1.0 olacak
- • Veri noktalarını azaltın → Metriklerin değişkenliğini görün
Gözlemleyin:
- • R² ne zaman güvenilir değil?
- • RMSE vs MAE farkı ne zaman belirginleşiyor?
- • Hangi durumlarda model revize edilmeli?
- • İş bağlamında hangi metriği kullanırdınız?
🚀 Python ile Metrik Hesaplama
from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error
import numpy as np
# Örnek veri
y_true = [100, 200, 150, 300, 250]
y_pred = [110, 190, 140, 320, 240]
# Metrik hesaplama
r2 = r2_score(y_true, y_pred)
rmse = np.sqrt(mean_squared_error(y_true, y_pred))
mae = mean_absolute_error(y_true, y_pred)
print(f"R² Skoru: {r2:.3f}")
print(f"RMSE: {rmse:.2f}")
print(f"MAE: {mae:.2f}")
# İş zekası raporu
print(f"\n📊 İş Raporu:")
print(f"• Model değişkenlerin %{r2*100:.1f}'sini açıklıyor")
print(f"• Ortalama tahmin hatası: ±{rmse:.1f} birim")
print(f"• Mutlak ortalama hata: {mae:.1f} birim")
if r2 > 0.7:
print("✅ Mükemmel: Model iş kararları için uygun")
elif r2 > 0.5:
print("⚠️ Orta: İyileştirme gerekebilir")
else:
print("❌ Zayıf: Model revize edilmeli")