Makine öğrenmesi modellerinin gerçek dünya performansını doğru tahmin etmek, uygun veri bölme ve çapraz doğrulama stratejilerine bağlıdır. Yanlış bölünmüş veri, aşırı öğrenmeyi maskeleyebilir veya model seçimini yanıltabilir. Bu adım adım rehber, sağlam bir değerlendirme çerçevesi oluşturmanızı sağlayacak temel uygulamaları sunar.
1. Veri Setini Doğru Bölme Adımları
Model eğitimi öncesi verinizi üç parçaya ayırmalısınız: eğitim, doğrulama ve test seti. Aşağıdaki adımları takip edin:
- Veriyi karıştırın: Veri setinizde sıra bağımlılığı varsa (zaman serisi gibi) karıştırmayın. Aksi halde rastgele karıştırma yapın.
- Eğitim seti (%60-80): Modelin öğrenmesi için en büyük parça. Veri arttıkça oran düşürülebilir.
- Doğrulama seti (%10-20): Hiperparametre ayarlama ve model seçimi için kullanılır. Not: Hiperparametre optimizasyonu yaparken XGBoost, LightGBM ve CatBoost Hiperparametre Ayarlama: Pratik Kontrol Listesi rehberinden faydalanabilirsiniz.
- Test seti (%10-20): En son, sadece bir kez kullanılacak nihai performans ölçümü için ayrılır. Test setine asla eğitim sırasında bakmayın.
2. K-Fold Çapraz Doğrulama Uygulama
K-fold çapraz doğrulama, veriyi k parçaya bölerek her parçanın sırayla doğrulama seti olmasını sağlar. İşte uygulama adımları:
- K değerini seçin: Genellikle k=5 veya k=10 kullanılır. Küçük veri setlerinde k=10, büyüklerde k=5 tercih edilir.
- Veriyi k parçaya bölün: Dengeyi korumak için tabakalı (stratified) bölme kullanın - her parçada sınıf dağılımı orijinalle aynı olsun.
- Her iterasyonda: 1 parça doğrulama, kalan k-1 parça eğitim olarak kullanılır. Modeli eğitim setinde eğitin, doğrulama setinde değerlendirin.
- Sonuçları toplayın: k doğrulama skorunun ortalaması ve standart sapmasını hesaplayın. Bu, modelin genel performansı hakkında daha sağlam bir fikir verir.
3. Farklı Çapraz Doğrulama Yöntemleri ve Ne Zaman Kullanılmalı?
| Yöntem | Açıklama | Kullanım Senaryosu |
|---|---|---|
| K-Fold | Veri rastgele k parçaya bölünür | Genel amaçlı, sınıf dengesi iyiyse |
| Stratified K-Fold | Her parçada sınıf oranı korunur | Dengesiz sınıflandırma problemleri |
| Leave-One-Out (LOO) | Her gözlem bir defa doğrulama olur | Çok küçük veri setleri (<100 örnek) |
| Time Series Split | Zaman sırasına göre bölme, geçmişten geleceğe | Zaman serisi verileri |
| Group K-Fold | Gruplar (örneğin aynı hastaya ait) aynı parçada kalır | Veride grup içi korelasyon varsa |
4. Sık Yapılan Hatalar ve Kaçınılması Gerekenler
- Veri sızıntısı (Data leakage): Doğrulama veya test setinden bilgi sızar. Örneğin, tüm veri üzerinde ölçeklendirme yapmak. Bu hatayı önlemek için ölçeklendirme parametrelerini sadece eğitim setinden hesaplayın.
- Test setine çok fazla bakmak: Hiperparametre ayarlarken test setini kullanmayın; doğrulama seti kullanın. Aksi halde test seti şişirilmiş performans gösterir.
- Rastgele tohum belirlememek: Sonuçların tekrarlanabilir olması için random_state parametresini sabitleyin.
- Küçük veri setinde büyük test seti: Test seti çok küçükse güven aralığı geniş olur. Alternatif olarak k-fold çapraz doğrulama kullanın.
5. Adım Adım: Sağlam Bir Değerlendirme İş Akışı
- Veriyi keşfedin: Sınıf dengesizliği, eksik değerler ve korelasyonları kontrol edin. Kategorik değişkenleri uygun şekilde kodlayın - Kategorik Değişkenler İçin One-Hot Encoding, Label Encoding ve Target Encoding: Hangi Yöntemi Ne Zaman Kullanmalısınız? rehberi bu konuda yardımcı olacaktır.
- Veriyi bölün: Stratified train-test split (0.7-0.15-0.15) yapın. Test setini tamamen ayırın.
- Çapraz doğrulama ile model seçimi: Eğitim seti üzerinde k-fold çapraz doğrulama (k=5, stratified) uygulayın. Her model için ortalama doğrulama skorunu karşılaştırın.
- Hiperparametre optimizasyonu: Doğrulama seti veya iç içe çapraz doğrulama (nested CV) ile hiperparametreleri ayarlayın.
- Nihai modeli eğitin: Tüm eğitim verisi (eğitim+doğrulama) ile en iyi modeli eğitin.
- Test setinde değerlendirin: Test setini sadece bir kez kullanarak nihai raporu oluşturun.
6. Otomatik Doğrulama Süreçleri
Bu adımları manuel yapmak yerine, iş akışınızı otomatikleştirmek için pipeline araçları kullanın. Örneğin scikit-learn'ün cross_validate fonksiyonu ve GridSearchCV ile kolayca uygulayabilirsiniz. Ayrıca, doğrulama sonuçlarını kaydederek farklı denemeleri karşılaştırın. Bu süreç, t-SNE ve UMAP gibi görselleştirme yöntemleriyle birlikte kullanıldığında daha anlamlı hale gelir.
7. Son Adım: Güven Aralığı Hesaplama
Modelin başarısını sadece ortalamayla değil, aynı zamanda varyansla da raporlayın. K-fold sonuçlarının standart sapması, modelin ne kadar kararlı olduğunu gösterir. Düşük sapma, yüksek güven demektir.
Bu rehberdeki adımları uygulayarak modelinizin gerçek performansına daha yakın tahminler elde edebilir, aşırı öğrenmeyi erken fark edebilir ve kaynaklarınızı daha verimli kullanabilirsiniz.
Sık Sorulan Sorular
Makine öğrenmesinde veri bölme oranları nelerdir?
Genel kullanımda eğitim seti %60-80, doğrulama seti %10-20, test seti %10-20 aralığında ayrılır. Küçük veri setlerinde test seti oranı düşürülebilir, büyük setlerde ise doğrulama ve test için daha küçük oranlar yeterlidir.
K-fold çapraz doğrulamada k değeri nasıl seçilir?
Genellikle k=5 veya k=10 kullanılır. Veri setiniz küçükse (örneğin 100 örnek) k=10 daha kararlı sonuç verir, büyük setlerde (10.000+ örnek) k=5 yeterlidir. Hesaplama maliyeti de dikkate alınmalıdır.
Stratified K-fold nedir, ne zaman kullanılır?
Stratified K-fold, her parçada sınıf dağılımını orijinal veri setiyle aynı oranda tutar. Özellikle dengesiz sınıflandırma problemlerinde (örneğin %90-%10 sınıf dağılımı) kullanılması önerilir.
Veri sızıntısı nasıl önlenir?
Veri sızıntısını önlemek için tüm ön işleme adımlarını (ölçeklendirme, eksik değer doldurma, özellik seçimi) sadece eğitim seti üzerinde uygulayın, daha sonra aynı dönüşümleri doğrulama ve test setlerine uygulayın.
Test seti olmadan çapraz doğrulama yeterli mi?
Çapraz doğrulama, model seçimi ve hiperparametre optimizasyonu için kullanılır. Ancak final modelin başarısını ölçmek için hâlâ ayrılmış bir test setine ihtiyaç vardır. Test seti olmadan, modelin genelleme başarısı hakkında yanıltıcı sonuçlar alabilirsiniz.






