Accuracy
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 98/112
- 5 dk
Accuracy, doğru tahminlerin oranını gösterir.
Çok sınıflı doğruluk
Çok sınıflı problemde genel doğruluk iyi görünse de bazı sınıflar kötü tahmin ediliyor olabilir. Sınıf başına doğruluk karmaşıklık matrisinin köşegeninin satır toplamlarına bölünmesiyle bulunur:
cm = confusion_matrix(y_true, y_pred)
print(cm.diagonal() / cm.sum(axis=1)) # her sınıfın kendi doğruluğuBüyük sınıf iyi, küçük sınıf kötü tahmin ediliyorsa genel doğruluk bunu gizler.
Top-k doğruluk
Çok sınıflı problemlerde (örneğin 1000 sınıflı görüntü tanıma) doğru sınıfın en olası k tahmin arasında olması da başarı sayılabilir:
from sklearn.metrics import top_k_accuracy_score
olasilik = [[0.5, 0.3, 0.2], [0.1, 0.3, 0.6], [0.4, 0.4, 0.2]]
print(top_k_accuracy_score([1, 2, 1], olasilik, k=1)) # 0.333
print(top_k_accuracy_score([1, 2, 1], olasilik, k=2)) # 1.0Arama ve öneri sistemlerinde "ilk 5 sonuçta doğru var mı?" sorusu tam olarak budur.
Uygulama Sınıf başına doğruluk
Verilen etiketler için genel doğruluğu yazdır. Ardından karmaşıklık matrisinden sınıf başına doğruluğu (cm.diagonal() / cm.sum(axis=1)) round(3) ile yazdır.
Başlangıç kodu
from sklearn.metrics import accuracy_score, confusion_matrix
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
from sklearn.metrics import accuracy_score, confusion_matrix
y_true = [0, 0, 0, 0, 0, 0, 1, 1, 2, 2]
y_pred = [0, 0, 0, 0, 0, 1, 1, 0, 2, 2]
print(accuracy_score(y_true, y_pred))
cm = confusion_matrix(y_true, y_pred)
print((cm.diagonal() / cm.sum(axis=1)).round(3))Beklenen çıktı
0.8 [0.833 0.5 1. ]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 90 örnekli A sınıfının hepsini, 10 örnekli B sınıfının hiçbirini bilen modelin doğruluğu kaçtır?
- 1.0
- 0.1
- 0.9 Doğru cevap
- 0.5
Açıklama: 90 / 100 = 0.9; ama B sınıfının doğruluğu 0'dır, dengeli doğruluk 0.5 olurdu.
2 Doğru sınıf ilk 3 tahminde mi, ölç.
top_k_accuracy_score(y_true, olasilik, ____=3)
top_k_accuracy_score(y_true, olasilik, k=3)
Açıklama: k, kaç en olası tahminin sayılacağıdır.
3 Ölçüleri eşleştir.
| Kavram | Anlamı |
|---|---|
genel doğruluk |
Tüm doğruların oranı |
sınıf başına doğruluk |
Köşegen / satır toplamı |
top-k doğruluk |
İlk k içinde doğru |
dengeli doğruluk |
Sınıf doğruluklarının ortalaması |