Yapay Zeka Modelini Test Et: %99'un Bilmediği 3 Altın Kural
Pizza Tespit Modeli: Ezberci Model Sendromu
Diyelim ki Domino's'ta çalışıyorsunuz ve bir AI modeli yaptınız. Görevi: Fotoğraftaki pizzayı tanımak! Model süper! %99 başarılı! Ama bir gün...
Müşteri calzone fotoğrafı gönderdi ve modeliniz "Bu bir araba lastiği" dedi!
Ezberci Model Sendromu
İşte bu felaketin adı: Ezberci Model Sendromu! Model sadece eğitim setindeki pizzaları ezberlemiş, pizza'nın ne olduğunu öğrenmemiş.
Ezberci vs. Gerçek Zeki Model
Ezberci Öğrenci
- Sadece gördüğü pizzaları tanır
- Yeni bir malzeme görünce panikler
- "Bu pizzada ananas var, ERROR ERROR!"
- Hiç görmediği pizza türlerini tanıyamaz
Zeki Model
- Pizza'nın özelliklerini öğrenir
- "Yuvarlak, üstünde malzeme, hamur var = Pizza!"
- Hawaiili bile olsa tanır!
- Genelleme yapabilir
Doktor Model: Hayat Kurtaran Test
Şimdi ciddi olalım. Diyelim ki kanser teşhis eden bir model yaptınız. İki tip hata yapabilir:
İki Kritik Hata Türü
Tip 1 - Yanlış Alarm (False Positive)
Sağlıklı insana "Hastasın" der
Sonuç: Gereksiz stres, masraf, gereksiz tedavi
Tip 2 - Kaçırma (False Negative)
Hasta insana "Sağlıklısın" der
Sonuç: Hastalık atlanır, tedavi gecikir, hayati risk
Hangisi daha kötü? İşte MODEL DOĞRULAMA tam da bunu ölçer!
3 Altın Kural: Böl, Test Et, Tekrarla!
1. Kural: Veriyi Akıllı Böl (Train-Test Split)
Veriyi bölmeyi pasta kesmek gibi düşünün:
├── Eğitim (%70) = 700 foto → Model bunları görecek
└── Test (%30) = 300 foto → Model BUNLARI HİÇ GÖRMEYECEK!
Pizza Testi: Model 700 pizzayı gördü. Şimdi 301. pizzayı gösteriyoruz... Bakalım tanıyacak mı?
2. Kural: 4 Süper Metrik
Model performansını ölçmek için 4 temel metrik kullanırız:
Accuracy (Doğruluk)
Attığın şutların kaçı basket? Genel başarı oranı.
Precision (Kesinlik)
"Basket olacak" dediğinde haklılık oranın. Pozitif tahminlerin doğruluğu.
Recall (Duyarlılık)
Tüm basket fırsatlarının kaçını değerlendirdin? Tüm pozitifleri yakalama oranı.
F1 Score
Genel performansın. Precision ve Recall'un dengeli ortalaması.
# Gerçek kod parçası - KOPYALAYIN!
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
print(f"Doğruluk: {accuracy_score(y_test, predictions):.2%}")
print(f"Kesinlik: {precision_score(y_test, predictions):.2%}")
print(f"Duyarlılık: {recall_score(y_test, predictions):.2%}")
print(f"F1 Skoru: {f1_score(y_test, predictions):.2%}")
3. Kural: 5 Kere Test (K-Fold Cross Validation)
Tek sınav yeterli değil! Veriyi 5'e böl, 5 kez sınav yap!
Test 2: [□■□□□] → Skor: %89
Test 3: [□□■□□] → Skor: %91
Test 4: [□□□■□] → Skor: %90
Test 5: [□□□□■] → Skor: %93
━━━━━━━━━━━━━━━━━━━━━━
ORTALAMA: %91 ✓
Neden 5 test? Çünkü bir testte şanslı olabilirsiniz. Ortalama alınca gerçek performans ortaya çıkar.
Canlı Demo: Telefon Oyunu
Hadi canlı deneyelim! Elimde 2 model var:
Model Karşılaştırması
Model A - "Ezberci"
- Sadece eğitim verisindeki köpek ırklarını ezberlemiş
- Golden Retriever ✓
- Husky ✓
- Türk sokak köpeği ✗ ("Bu bir kedi!")
Model B - "Zeki"
- Köpek özelliklerini öğrenmiş
- 4 bacak ✓, kuyruk ✓, havlama ✓ = Köpek!
- Her ırkı tanıyor!
- Genelleme yapabiliyor
Test Sonuçları:
Model A - Overfitting
Train Accuracy: %99
Test Accuracy: %67
Ezber yapmış!
Model B - İyi Fit
Train Accuracy: %95
Test Accuracy: %93
Gerçekten öğrenmiş!
Gerçek Hayat Hikayesi: Bebek Bezi Felaketi
2019 E-ticaret Felaketi
2019'da bir e-ticaret sitesi, "süper" bir öneri modeli yaptı. Test etmeden canlıya aldılar...
Model herkese SADECE bebek bezi önermeye başladı!
- 18 yaşındaki öğrenciye → Bebek bezi
- 70 yaşındaki dedeye → Bebek bezi
- Bebek bezi alana → Daha fazla bebek bezi!
Sonuç: 1 haftada %40 müşteri kaybı!
Ders: Eğer 5 dakika test etselerdi, bu felaketi önleyebilirlerdi!
Siz de Yapabilirsiniz! Komple Kod
İşte size VIP hediyem! Bu kodu kopyalayın, yapıştırın, çalıştırın:
# KOMPLE ÇALIŞAN KOD - DİREKT KOPYALA!
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
# 1. Veriyi böl
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.3, random_state=42
)
# 2. Modeli eğit
model = RandomForestClassifier()
model.fit(X_train, y_train)
# 3. Test et
predictions = model.predict(X_test)
print(classification_report(y_test, predictions))
# 4. Çapraz doğrula
scores = cross_val_score(model, X, y, cv=5)
print(f"5-Fold Ortalama: {scores.mean():.2%}")
Hemen Deneyin: Kaggle'a girin, Titanic veri setini indirin, bu kodu çalıştırın. 10 dakikada model test uzmanı olacaksınız!
Altın Özetler: Unutmayın!
3 altın kural:
- Veriyi böl - Pizza'nın %30'unu teste sakla!
- 4 metriği ölç - Doktor gibi düşün!
- 5 kez test et - Tek sınav yalan söyler!
Önemli Uyarı: Modelinizi test etmeden canlıya almayın! Bu basit adımlar, milyonlarca TL'lik hataları önleyebilir.
Artık AI modellerinizi profesyonelce test edebilirsiniz. Train accuracy %99 ama test accuracy %67 gördüğünüzde, hemen overfitting olduğunu anlayacaksınız!
🎥 Video İçeriklerimiz için YouTube'dan Takip Edin!
Bu konuları video formatında da açıklıyoruz. Daha fazla veri bilimi ve programlama içeriği için Verinin Mutfağı kanalımızı takip etmeyi unutmayın!
📺 Verinin Mutfağı YouTube Kanalı