React Flow mini map
🛠️ Uygulamalı MLorta20 dk

Model Seçimi ve Karşılaştırma

Doğru algoritmayı seçme stratejileri

Doğru modeli seçmek, bir şef için doğru bıçağı seçmek gibidir: en keskin bıçak her zaman en iyisi değildir, göreve uygun olanı seçmelisiniz. Bu derste model seçim kriterlerini, bias-variance dengesini ve deneylerini sistematik takip etmeyi öğreneceksiniz.

Her model her probleme uymaz. Karar verirken şunları değerlendirin:…

**Bias (yanlılık)**: Modelin varsayımlarından kaynaklanan sistematik hata. Çok basit model…

Underfitting (Yüksek Bias)

  • ·Eğitim ve test hatası yüksek
  • ·Model çok basit
  • ·Veri örüntülerini yakalayamıyor
  • ·Çözüm: Daha karmaşık model veya daha fazla özellik

Overfitting (Yüksek Variance)

  • ·Eğitim hatası düşük, test hatası yüksek
  • ·Model çok karmaşık
  • ·Gürültüyü ezberliyor
  • ·Çözüm: Regularization, dropout, daha fazla veri

Cross-validation sonuçlarını karşılaştırırken **şans faktörünü** elemek için istatistiksel…

t = (μ_A - μ_B) / (s_diff / √n)

Paired t-test istatistiği: μ_A ve μ_B iki modelin ortalama skorları, s_diff fark skorlarının standart sapması, n fold sayısı. |t| > kritik değer ise fark anlamlıdır.

🧪Deney Defteri Analojisi

MLflow ve Weights & Biases, bir bilim insanının laboratuvar defteri gibidir. Her deneyde hangi parametreleri kullandığınızı, hangi sonuçları aldığınızı ve hangi model dosyalarını ürettiğinizi kaydeder. Altı ay sonra 'en iyi sonucu veren o konfigürasyon neydi?' diye sorduğunuzda, defteriniz size cevabı verir.

MLflow üç temel kavram üzerine kurulu:…

MLflow ile basit deney takibi

Python
1import mlflow
2from sklearn.ensemble import RandomForestClassifier
3from sklearn.model_selection import cross_val_score
4
5# Deney başlat
6mlflow.set_experiment("model-karsilastirma")
7
8with mlflow.start_run(run_name="rf_baseline"):
9 # Parametreleri kaydet
10 n_estimators = 100
11 max_depth = 10
12 mlflow.log_param("n_estimators", n_estimators)
13 mlflow.log_param("max_depth", max_depth)
14
15 # Model eğit ve değerlendir
16 rf = RandomForestClassifier(n_estimators=n_estimators, max_depth=max_depth)
17 scores = cross_val_score(rf, X, y, cv=5, scoring="f1_macro")
18
19 # Metrikleri kaydet
20 mlflow.log_metric("f1_mean", scores.mean())
21 mlflow.log_metric("f1_std", scores.std())
22
23 # Modeli artifact olarak kaydet
24 rf.fit(X, y)
25 mlflow.sklearn.log_model(rf, "model")

💡MLflow UI'ı `mlflow ui` komutuyla başlatın. Tarayıcıda tüm deneylerinizi tablo ve grafik olarak karşılaştırabilirsiniz.

Production'da model güncellemesi risklidir. **Champion/Challenger** yaklaşımı bu riski aza…

Scipy ile model karşılaştırma testi

Python
1from scipy import stats
2import numpy as np
3
4# 5-fold CV sonuçları (aynı fold'lar, farklı modeller)
5model_a_scores = np.array([0.85, 0.87, 0.84, 0.86, 0.88])
6model_b_scores = np.array([0.88, 0.90, 0.87, 0.89, 0.91])
7
8# Paired t-test
9t_stat, p_value = stats.ttest_rel(model_a_scores, model_b_scores)
10print(f"t-statistic: {t_stat:.3f}, p-value: {p_value:.4f}")
11
12# Non-parametrik alternatif
13w_stat, w_pvalue = stats.wilcoxon(model_a_scores, model_b_scores)
14print(f"Wilcoxon p-value: {w_pvalue:.4f}")
15
16# Karar
17alpha = 0.05
18if p_value < alpha:
19 print("Model B istatistiksel olarak anlamlı şekilde daha iyi!")

⚠️p < 0.05 olması modelin production'a alınması için yeterli değildir. Pratik anlamlılık (effect size), çıkarım süresi ve bakım maliyeti de değerlendirilmelidir.

ℹ️Weights & Biases (W&B), MLflow'a benzer işlevler sunar ancak bulut tabanlı dashboard'u ve takım işbirliği özellikleriyle öne çıkar. Özellikle derin öğrenme projelerinde tercih edilir.

✦ Quiz

Bir model eğitim verisinde %98, test verisinde %65 doğruluk gösteriyorsa bu durum neyi işaret eder?

✦ Quiz

İki modeli 5-fold CV sonuçlarıyla karşılaştırırken hangi test daha uygundur?

✦ Quiz

MLflow'da model dosyası hangi kavram altında saklanır?

Bağlantılı Konular