Modelleri test etme

Üretim İçin Machine Learning Modelleri Geliştirme

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Bireysel ve Grup adaleti

Bireysel adalet

Benzer bireyleri benzer şekilde değerlendir.

  • Örn. Benzer deneyime sahip kişilere benzer iş fırsatları ver.

Grup adaleti

Farklı grupları eşit değerlendir.

  • Örn. Okul kabul modellerinde belirli ırksal ya da etnik gruplara karşı ayrımcılık yapma.
Üretim İçin Machine Learning Modelleri Geliştirme

Holdout testi

  • Holdout testi, ayrı bir veri kümesiyle model güvenilirliğini kontrol eder
  • Eğitim zamanındaki gibi, eğitilmemiş verideki performansı ölçer
  • Aşırı öğrenme veya yetersiz öğrenme gibi sorunları yakalar

veri kullanan robotlar

Üretim İçin Machine Learning Modelleri Geliştirme

Model kaymasını aramak

Kavram kayması (concept drift)

  • Özellikler ile yanıt arasındaki ilişkinin değişmesi
    • Örn. bir duygu analizi algoritması
      • Terimlerin anlamı kayabilir (bir şeyin "sick" olması iyi anlamına gelebilir)

Tahmin kayması (prediction drift)

  • Modelin tahmin dağılımının değişmesi
    • Örn. geçici bir kesinti, chatbot'un için "outage" niyetinde artışa yol açar
    • Teknik olarak bir "hata" yoktur ama bu kayma kullanıcılar için yanıt süresini yavaşlatabilir
Üretim İçin Machine Learning Modelleri Geliştirme

Model kaymasını aramaya örnek

Kurulum:

# Gerekli kütüphaneleri içe aktar ve veriyi böl
X_train, X_test, y_train, y_test = ...

Modeli eğitmek:

# Eğitim verisiyle bir sınıflandırıcı eğit
clf = DecisionTreeClassifier(random_state=42)
clf.fit(X_train, y_train)

# Test verisinde doğruluğu hesapla
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

Daha sonra kayma testi:

X_test_drift = X_test + 1.0  # Veri kaymasını simüle et
# Kaymış veride doğruluğu hesapla
y_pred_drift = clf.predict(X_test_drift)
accuracy_drift = accuracy_score(
    y_test, y_pred_drift)
print(f"Accuracy with drift: {accuracy_drift}")

# Doğruluğa dayalı kayma eşiği
drift_threshold = accuracy * 0.9

# Kaymış veride doğruluk düşüşünü kontrol et
if accuracy_drift < drift_threshold:
    print("Concept drift detected!")
else:
    print("No concept drift detected.")
Üretim İçin Machine Learning Modelleri Geliştirme

Karmaşık modellerin maliyeti vs temel modeller

  • Karmaşık modeller daha pahalıdır ve verimliliği etkileyebilir
  • Gecikme tek bir girdiyi işleyip tahmin üretme süresini ölçer
  • Bant genişliği bir modelin belirli sürede üretebildiği tahmin sayısını ölçer
  • Gecikme ve bant genişliğini test ederek modelin ne kadar karmaşık olması gerektiğini belirle
  • Hedef, doğruluk ve verimlilik arasında denge kurmaktır
Üretim İçin Machine Learning Modelleri Geliştirme

Hadi pratik yapalım!

Üretim İçin Machine Learning Modelleri Geliştirme

Preparing Video For Download...