Çapraz Doğrulama Stratejileri
k-katlı, katmanlı k-katlı, birini dışarıda bırakma ve zaman serisi bölmesi — her birinin kullanım zamanı.
Çapraz Doğrulama Stratejileri, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
Çapraz Doğrulama Neden Kullanılır
Tek bir eğitim/sınama bölmesi şanslı veya şanssız olabilir. Çapraz doğrulama, değerlendirmeyi farklı bölmeler üzerinde yineler ve puanların ortalamasını alır. Böylece performans için daha güvenilir bir tahmin elde edilir.
K Katlı Çapraz Doğrulama
KFold, verileri K eşit parçaya böler. Her kat bir kez sınama kümesi olarak kullanılırken kalan parçalar modeli eğitir. Ortalamasını alabileceğiniz K puan elde edersiniz.
from sklearn.model_selection import KFold
kf = KFold(n_splits=5, shuffle=True, random_state=0)
for train_idx, test_idx in kf.split(X):
Xtr, Xte = X[train_idx], X[test_idx]
ytr, yte = y[train_idx], y[test_idx]
# train and evaluate hereSınıflandırma için Tabakalı K Katlı Doğrulama
Sınıflandırmada sıradan K Katlı yöntem, sınıf oranları dengesiz katlar oluşturabilir. StratifiedKFold, her kattaki sınıf oranlarını korur.
from sklearn.model_selection import StratifiedKFold
skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=0)
for train_idx, test_idx in skf.split(X, y):
# each fold keeps the same class balance as the full set
passcross_val_score Kısayolu
cross_val_score, tüm döngüyü sizin için çalıştırır ve kat puanlarından oluşan bir dizi döndürür. Sınıflandırıcılar için otomatik olarak StratifiedKFold kullanır.
from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(random_state=0)
scores = cross_val_score(clf, X, y, cv=5, scoring="accuracy")
print(scores)
print("Mean:", scores.mean(), "Std:", scores.std())Kat Sayısını Seçme
Daha fazla kat (ör. 10), daha az yanlı bir tahmin sağlar; ancak daha fazla hesaplama maliyeti getirir. 5 katlı yöntem yaygın bir dengedir. Çok küçük veri kümelerinde birini dışarıda bırakma yöntemi, her sınama kümesinde bir örnek olacak şekilde N kat kullanır.
from sklearn.model_selection import LeaveOneOut, cross_val_score
loo = LeaveOneOut()
scores = cross_val_score(clf, X, y, cv=loo)
print("Mean:", scores.mean())Zamansal Veriler için TimeSeriesSplit
Zaman serilerinde gelecekle asla eğitim yapmamalısınız. TimeSeriesSplit, eğitim için her zaman geçmiş verileri, sınama içinse sonraki bloğu kullanır ve katlar boyunca eğitim penceresini genişletir.
from sklearn.model_selection import TimeSeriesSplit
tscv = TimeSeriesSplit(n_splits=5)
for train_idx, test_idx in tscv.split(X):
# train_idx always precedes test_idx in time
print(len(train_idx), len(test_idx))Zaman Serilerinde Sıra Neden Önemlidir
Zaman sıralı verileri karıştırmak, geleceğe ait bilgileri eğitime sızdırır ve puanları yapay olarak yükseltir. TimeSeriesSplit, gerçek tahmin koşullarını yansıtacak şekilde kronolojik sıraya uyar.
Birden Çok Metrik için cross_validate
cross_validate, cross_val_score gibidir; ancak aynı anda birkaç metrik döndürür ve eğitim puanları ile uyum sürelerini içerebilir.
from sklearn.model_selection import cross_validate
results = cross_validate(
clf, X, y, cv=5,
scoring=["accuracy", "f1_macro", "roc_auc_ovr"],
return_train_score=True,
)
print(results["test_accuracy"])
print(results["test_f1_macro"])cross_validate Çıktısını Okuma
Sonuç, test_<metric>, train_<metric>, fit_time ve score_time gibi anahtarlara sahip bir sözlüktür. Eğitim ve sınama puanlarını karşılaştırmak, aşırı uyumu teşhis etmeye yardımcı olur.
import numpy as np
gap = results["train_accuracy"].mean() - results["test_accuracy"].mean()
print("Overfit gap:", gap)
print("Avg fit time:", np.mean(results["fit_time"]))Çapraz Doğrulama ve Veri Sızıntısı
Ön işleme adımlarını (ölçeklendirme, kodlama) CV döngüsünden önce değil, her zaman döngünün içinde uygulayın. Her katın yalnızca kendi eğitim verilerini kullanarak ölçeklendirme yapmasını ve böylece sızıntıyı önlemesini sağlamak için bir Pipeline kullanın.
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.model_selection import cross_val_score
pipe = make_pipeline(StandardScaler(), SVC())
scores = cross_val_score(pipe, X, y, cv=5)Doğru Stratejiyi Seçme
Sınıflandırma için StratifiedKFold, regresyon için sıradan KFold ve zamansal veriler için TimeSeriesSplit kullanın. Ön işlemeyi bir işlem hattına sarın ve katlar arasındaki mean ile standart sapmayı raporlayın.
Kısa Kontrol
Çapraz doğrulama bilginizi sınayın.
Özet
Özet: Çapraz doğrulama, performansın birden çok bölme üzerindeki ortalamasını alır. Regresyon için KFold, dengeli sınıflandırma için StratifiedKFold ve zamansal veriler için TimeSeriesSplit kullanın. cross_val_score tek bir metrik, cross_validate ise sürelerle birlikte birden çok metrik sağlar. Sızıntıyı önlemek için ön işlemeyi her zaman bir Pipeline içinde uygulayın.
Sıkça Sorulan Sorular
“Çapraz Doğrulama Stratejileri” dersi ücretsiz mi?
Evet — “Çapraz Doğrulama Stratejileri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“Çapraz Doğrulama Stratejileri” dersinde ne öğreneceğim?
k-katlı, katmanlı k-katlı, birini dışarıda bırakma ve zaman serisi bölmesi — her birinin kullanım zamanı. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Çapraz Doğrulama Stratejileri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Çapraz Doğrulama Stratejileri
- Sınıflandırma Ölçütlerine Derinlemesine Bakış
- Izgara Araması ve Rastgele Arama
- Optuna ile Bayesçi Optimizasyon