CodeBlanks Logo Icon CodeBlanks

Özet - Cross-validation

Bu grupta k-fold cross-validation ve cross_val_score'u öğrendin.

Özet: çapraz doğrulama

Bu grupta:

  • CV tek bölmenin şansını ortadan kaldırır; sonuç ortalama ± standart sapmadır.
  • KFold, StratifiedKFold, GroupKFold, TimeSeriesSplit: bölücü verinin gerçek kullanımını taklit etmeli.
  • cross_val_score, cross_validate (çoklu metrik, eğitim skoru), cross_val_predict (katman dışı tahmin).
  • Tekrarlı CV kararlılık, iç içe CV seçim dahil dürüst skor verir.

Test kümesi CV'den sonra da yalnızca bir kez, en sonda kullanılır.

Uygulama Zaman serisi CV

20 adımlık X için TimeSeriesSplit(n_splits=4) katmanlarını gez. Her satırda eğitim kümesinin boyutunu ve doğrulama indekslerinin ilk ve son değerini yazdır.

Başlangıç kodu

model.py
import numpy as np
from sklearn.model_selection import TimeSeriesSplit

X = np.arange(20).reshape(-1, 1)

# buraya yaz

Örnek çözüm

model.py
import numpy as np
from sklearn.model_selection import TimeSeriesSplit

X = np.arange(20).reshape(-1, 1)

for egitim, dogrulama in TimeSeriesSplit(n_splits=4).split(X):
    print(len(egitim), dogrulama[0], dogrulama[-1])

Beklenen çıktı

4 4 7
8 8 11
12 12 15
16 16 19

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Müşteri başına birden çok işlem içeren veride doğru bölücü hangisidir?

  • KFold
  • LeaveOneOut
  • Bölmeye gerek yok
  • GroupKFold (müşteri kimliğine göre) Doğru cevap

Açıklama: Aynı müşterinin işlemleri ayrı katmanlara düşerse model müşteriyi ezberler.

2 Zaman sırasını koruyan bölücüyü kullan.

Soru
cv = ____(n_splits=5)
Cevap
cv = TimeSeriesSplit(n_splits=5)

Açıklama: TimeSeriesSplit her katmanda yalnızca geçmişle eğitir.

3 Çıktıları eşleştir.

Kavram Anlamı
cross_val_score Skor dizisi
cross_validate Sözlük
cross_val_predict Tahmin dizisi
get_n_splits Katman sayısı

Orta seviye bölümündeki tüm dersler