0Pricing
Learn AI with Python · Ders

Ç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 here

Sı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
    pass

cross_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

  1. Çapraz Doğrulama Stratejileri
  2. Sınıflandırma Ölçütlerine Derinlemesine Bakış
  3. Izgara Araması ve Rastgele Arama
  4. Optuna ile Bayesçi Optimizasyon
← Learn AI with Python Sayfasına Dön