Makine Öğrenmesi
cross_val_score
cross_val_score fonksiyonu, k-fold çapraz doğrulama puanlarını döndürür.
cross_val_score
cross_val_score elle yazdığın döngünün tamamını yapar: bölme, klonlama, eğitme, ölçme. cv bir sayı ya da bölücü nesne alır; n_jobs=-1 katmanları paralel çalıştırır:
from sklearn.model_selection import cross_val_score
skorlar = cross_val_score(model, X, y, cv=5, scoring="roc_auc", n_jobs=-1)
print(skorlar.round(3), skorlar.mean().round(3))
Sınıflandırıcıyla sayı verilirse katmanlı (stratified) bölme kullanılır; regresörle düz KFold.
cross_validate ve cross_val_predict
cross_validate birden çok metrik, süreler ve istenirse eğitim skorlarını döndürür. cross_val_predict her örnek için, onu görmemiş modelin tahminini verir; tüm veride karmaşıklık matrisi çıkarmak için idealdir:
from sklearn.model_selection import cross_validate, cross_val_predict
r = cross_validate(model, X, y, cv=5, scoring=["accuracy", "recall"], return_train_score=True)
print(r["train_accuracy"].mean(), r["test_accuracy"].mean())
p = cross_val_predict(model, X, y, cv=5)
Eğitim ve doğrulama skorları arasındaki fark, aşırı öğrenmenin CV içindeki göstergesidir.
Uygulama Katman dışı matris
cross_val_predict(model, X, y, cv=5) ile tüm veri için tahminleri al ve karmaşıklık matrisini yazdır. Ardından cross_validate ile return_train_score=True kullanıp eğitim ve doğrulama doğruluk ortalamalarını round(..., 3) ile aynı satırda yazdır.
Örnek çözümü göster
from sklearn.datasets import load_breast_cancer
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
X, y = load_breast_cancer(return_X_y=True)
model = make_pipeline(StandardScaler(), LogisticRegression())
from sklearn.model_selection import cross_val_predict, cross_validate
from sklearn.metrics import confusion_matrix
p = cross_val_predict(model, X, y, cv=5)
print(confusion_matrix(y, p))
r = cross_validate(model, X, y, cv=5, return_train_score=True)
print(round(r["train_score"].mean(), 3), round(r["test_score"].mean(), 3))
Kendini test et
-
<code>n_jobs=-1</code> ne işe yarar?
- Katman sayısını sınırsız yapar
- Eğitimi atlar
- Tüm işlemci çekirdeklerini paralel kullanır
- Hata ayıklama modunu açar
Cevabı göster
Tüm işlemci çekirdeklerini paralel kullanır — Her katman bağımsız olduğu için paralelleştirme doğrudandır.
-
Her örnek için görmemiş modelin tahminini al.
p = ____(model, X, y, cv=5)
Cevabı göster
p = cross_val_predict(model, X, y, cv=5)
-
Fonksiyonları eşleştir.
- cross_val_score
- Tek metrik skorları
- cross_validate
- Çoklu metrik ve süre
- cross_val_predict
- Katman dışı tahmin
- return_train_score
- Eğitim skorları
Sıradaki ders: Stratified