Avantajlar
- Makine Öğrenmesi kursu
- Orta seviye
- Ders 17/112
- 5 dk
Cross-validation, tek train-test bölmeden daha güvenilir sonuç verir.
Tekrarlı CV
Tek bir K katlı CV de katman atamasına bağlıdır. RepeatedStratifiedKFold, CV'yi farklı karıştırmalarla birkaç kez tekrarlar ve daha kararlı bir ortalama verir:
from sklearn.model_selection import RepeatedStratifiedKFold
cv = RepeatedStratifiedKFold(n_splits=5, n_repeats=3, random_state=0)
skor = cross_val_score(model, X, y, cv=cv)
print(len(skor)) # 15Küçük veri setlerinde iki model arasındaki farkı değerlendirmenin en güvenilir yollarından biridir.
İç içe CV
Hiperparametreler CV ile seçilince o CV skoru iyimserleşir. İç içe CV, dışta bir CV ile ölçerken içte ayrı bir CV ile seçim yapar; seçim sürecinin tamamının dürüst skorunu verir:
ic = GridSearchCV(SVC(), {"C": [0.1, 1, 10]}, cv=3)
dis_skor = cross_val_score(ic, X, y, cv=5) # her dış katmanda yeni arama
print(dis_skor.mean())Hesaplaması pahalıdır (5 × 3 × 3 eğitim) ama yayımlanacak bir sonuç için en doğru yöntemdir.
Uygulama İç içe doğrulama
Iris'te GridSearchCV(SVC(), {"C": [0.1, 1, 10]}, cv=3) iç arayıcısını cross_val_score(..., cv=5) ile dışta değerlendir. Dış skorların ortalamasını round(..., 3) ile, ardından aramanın tüm veride bulduğu best_score_ değerini round(..., 3) ile yazdır.
Başlangıç kodu
from sklearn.datasets import load_iris
from sklearn.model_selection import GridSearchCV, cross_val_score
from sklearn.svm import SVC
X, y = load_iris(return_X_y=True)
# buraya yazÖrnek çözüm
from sklearn.datasets import load_iris
from sklearn.model_selection import GridSearchCV, cross_val_score
from sklearn.svm import SVC
X, y = load_iris(return_X_y=True)
ic = GridSearchCV(SVC(), {"C": [0.1, 1, 10]}, cv=3)
print(round(cross_val_score(ic, X, y, cv=5).mean(), 3))
print(round(ic.fit(X, y).best_score_, 3))Beklenen çıktı
0.98 0.973
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>n_splits=10, n_repeats=5</code> ile kaç eğitim yapılır?
- 50 Doğru cevap
- 15
- 10
- 5
Açıklama: 10 katman × 5 tekrar = 50 eğitim.
2 CV'yi 3 kez tekrarla.
cv = RepeatedStratifiedKFold(n_splits=5, ____=3, random_state=0)
cv = RepeatedStratifiedKFold(n_splits=5, n_repeats=3, random_state=0)
Açıklama: n_repeats tekrar sayısıdır.
3 Yöntemleri eşleştir.
| Kavram | Anlamı |
|---|---|
Tekrarlı CV |
Daha kararlı ortalama |
İç içe CV |
Seçim dahil dürüst skor |
İç CV |
Hiperparametre seçimi |
Dış CV |
Genelleme ölçümü |