CodeBlanks Logo Icon CodeBlanks

Precision

Precision, pozitif tahminlerin kaçının doğru olduğunu gösterir.

Ortalama türleri

Çok sınıflı kesinlik (ve duyarlılık, F1) için sınıf skorları birleştirilmelidir:

  • macro: sınıf skorlarının düz ortalaması; küçük sınıflar eşit söz sahibidir.
  • weighted: sınıf büyüklüğüne göre ağırlıklı ortalama.
  • micro: tüm TP ve FP'ler toplanıp tek oran hesaplanır.
for a in ["macro", "weighted", "micro"]:
    print(a, round(precision_score(y_true, y_pred, average=a), 3))

Küçük sınıfın başarısı önemliyse macro raporlanır.

Sınıf başına kesinlik

average=None her sınıfın kesinliğini ayrı verir. Karmaşıklık matrisinde bu, köşegenin sütun toplamlarına bölünmesidir (duyarlılıkta satır toplamları):

print(precision_score(y_true, y_pred, average=None))
cm = confusion_matrix(y_true, y_pred)
print(cm.diagonal() / cm.sum(axis=0))   # aynısı

Kesinlik "bu sınıf dediklerimin kaçı doğru?", duyarlılık "bu sınıftakilerin kaçını buldum?" sorusudur.

Uygulama Üç ortalama

Verilen etiketler için macro, weighted ve micro kesinliği hesapla. Her satırda adı ve değeri round(..., 3) ile yazdır.

Başlangıç kodu

model.py
from sklearn.metrics import precision_score

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

# buraya yaz

Örnek çözüm

model.py
from sklearn.metrics import precision_score

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

for a in ["macro", "weighted", "micro"]:
    print(a, round(precision_score(y_true, y_pred, average=a), 3))

Beklenen çıktı

macro 0.778
weighted 0.8
micro 0.8

Soru ve cevaplar

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

1 Tek etiketli çok sınıflı problemde micro kesinlik neye eşittir?

  • Duyarlılığın yarısına
  • Doğruluğa Doğru cevap
  • Macro kesinliğe
  • Sıfıra

Açıklama: Her yanlış tahmin bir sınıf için FP'dir; toplam TP / toplam tahmin = doğruluk.

2 Sınıf büyüklüğüne göre ağırlıklı kesinlik al.

Soru
precision_score(y_true, y_pred, average=____)
Cevap
precision_score(y_true, y_pred, average="weighted")

Açıklama: "weighted" her sınıfı destek (support) sayısıyla ağırlıklandırır.

3 Ortalama türlerini eşleştir.

Kavram Anlamı
macro Sınıflara eşit ağırlık
weighted Büyüklüğe göre ağırlık
micro Toplam TP / toplam tahmin
None Sınıf başına dizi

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