CodeBlanks Logo Icon CodeBlanks

F1 skoru

F1, precision ve recall'un harmonik ortalamasıdır.

F-beta

F1, kesinlik ve duyarlılığa eşit ağırlık verir. F-beta dengeyi ayarlar: β > 1 duyarlılığı, β < 1 kesinliği öne çıkarır.

from sklearn.metrics import fbeta_score
print(fbeta_score(y_true, y_pred, beta=2))     # duyarlılık öncelikli
print(fbeta_score(y_true, y_pred, beta=0.5))   # kesinlik öncelikli

Hastalık taramasında F2, spam filtresinde F0.5 doğal seçimlerdir.

F1'i en yükselten eşik

precision_recall_curve tüm eşikler için kesinlik ve duyarlılığı verir; buradan her eşiğin F1'i hesaplanıp en iyisi seçilebilir:

from sklearn.metrics import precision_recall_curve
pr, re, esik = precision_recall_curve(y_val, p_val)
f1 = 2 * pr * re / (pr + re + 1e-12)
en_iyi = esik[f1[:-1].argmax()]

Eşik doğrulama verisinde seçilmelidir; test verisinde seçmek yine iyimser sonuç verir. pr ve re dizileri eşiklerden bir uzundur, bu yüzden f1[:-1] kullanılır.

Uygulama Üç F skoru

Verilen etiketler için beta 0.5, 1 ve 2 ile fbeta_score hesapla. Her satırda beta ve skoru round(..., 3) ile yazdır.

Başlangıç kodu

model.py
from sklearn.metrics import fbeta_score

y_true = [1, 1, 1, 1, 0, 0, 0, 0, 0, 0]
y_pred = [1, 1, 0, 0, 0, 0, 0, 0, 0, 0]

# buraya yaz

Örnek çözüm

model.py
from sklearn.metrics import fbeta_score

y_true = [1, 1, 1, 1, 0, 0, 0, 0, 0, 0]
y_pred = [1, 1, 0, 0, 0, 0, 0, 0, 0, 0]

for b in [0.5, 1, 2]:
    print(b, round(fbeta_score(y_true, y_pred, beta=b), 3))

Beklenen çıktı

0.5 0.833
1 0.667
2 0.556

Soru ve cevaplar

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

1 Kaçırılan pozitiflerin çok pahalı olduğu bir problemde hangisi uygundur?

  • F0.5
  • Yalnızca kesinlik
  • Doğruluk
  • F2 Doğru cevap

Açıklama: β = 2 duyarlılığa kesinlikten daha çok ağırlık verir.

2 Duyarlılığa öncelik veren F-skorunu hesapla.

Soru
f = fbeta_score(y_true, y_pred, beta=____)
Cevap
f = fbeta_score(y_true, y_pred, beta=2)

Açıklama: beta = 2, duyarlılığı kesinlikten iki kat önemli sayar.

3 Değerleri eşleştir.

Kavram Anlamı
beta = 1 F1
beta = 2 Duyarlılık öncelikli
beta = 0.5 Kesinlik öncelikli
precision_recall_curve Tüm eşikler

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