CodeBlanks Logo Icon CodeBlanks

Özet - Model değerlendirme

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_report hepsini 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

model.py
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

model.py
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.

Soru
print(classification_report(y_test, y_pred, ____=3))
Cevap
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

Başlangıç bölümündeki tüm dersler