Özet - Model değerlendirme
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 70/112
- 6 dk
Bu grupta train-test split, doğruluk, kesinlik ve F1'i öğrendin.
Özet: model değerlendirme
Bu grupta:
- Test verisi eğitimden tamamen ayrı tutulur; zaman serisinde
shuffle=False. - Doğruluk dengeli veride iyidir; dengesizde dengeli doğruluk daha dürüsttür.
- Kesinlik yanlış alarmları, duyarlılık kaçırmaları ölçer; eşik ikisini dengeler.
- F1 ikisinin harmonik ortalamasıdır;
classification_reporthepsini sınıf başına verir.
Metrik seçimi teknik değil, iş kararıdır: hangi hata daha pahalı?
Uygulama Raporu çıkar
Meme kanseri verisinde ölçekli lojistik regresyonla test tahminlerini al. F1 skorunu round(..., 3) ile yazdır, ardından classification_report(..., digits=3) çıktısının satırlarından accuracy satırını bulup split() ile ikinci değerini yazdır.
Başlangıç kodu
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import f1_score, classification_report
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0, stratify=y)
m = make_pipeline(StandardScaler(), LogisticRegression()).fit(X_train, y_train)
# buraya yazÖrnek çözüm
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import f1_score, classification_report
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0, stratify=y)
m = make_pipeline(StandardScaler(), LogisticRegression()).fit(X_train, y_train)
p = m.predict(X_test)
print(round(f1_score(y_test, p), 3))
rapor = classification_report(y_test, p, digits=3)
for s in rapor.splitlines():
if s.strip().startswith("accuracy"):
print(s.split()[1])Beklenen çıktı
0.967 0.958
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Sahte işlem tespitinde hem kaçırmalar hem yanlış alarmlar önemliyse hangi metrik uygundur?
- R²
- F1 Doğru cevap
- Doğruluk
- Yalnızca kesinlik
Açıklama: F1 ikisini birden hesaba katar ve dengesiz veride doğruluk gibi yanıltmaz.
2 Sınıf başına raporu üç basamakla yazdır.
print(classification_report(y_test, y_pred, ____=3))
print(classification_report(y_test, y_pred, digits=3))
Açıklama: digits, rapordaki ondalık basamak sayısıdır.
3 Problemleri metriklerle eşleştir.
| Kavram | Anlamı |
|---|---|
Kanser taraması |
Duyarlılık |
Spam filtresi |
Kesinlik |
Dengeli 3 sınıf |
Doğruluk |
Sahtekârlık tespiti |
F1 |