Doğruluk
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 66/112
- 5 dk
Doğruluk, en yaygın sınıflandırma metriğidir.
Doğruluk ve hata oranı
Doğruluk = (TP + TN) / toplam. Tersi hata oranıdır: 1 - doğruluk. Karmaşıklık matrisinden doğrudan hesaplanır:
cm = confusion_matrix(y_true, y_pred)
dogruluk = np.trace(cm) / cm.sum() # köşegen / toplamnp.trace, köşegen elemanlarının toplamıdır; çok sınıflı matriste de doğru tahmin sayısını verir.
Dengeli doğruluk
Dengesiz veride dengeli doğruluk, her sınıfın kendi içindeki doğruluğunun ortalamasıdır; çoğunluk sınıfını tahmin eden model 0.5 alır:
from sklearn.metrics import balanced_accuracy_score
y_true = [0] * 9 + [1]
y_pred = [0] * 10
print(accuracy_score(y_true, y_pred)) # 0.9
print(balanced_accuracy_score(y_true, y_pred)) # 0.5Tek bir sayıyla dengesiz veriyi özetlemek gerekiyorsa düz doğruluktan daha dürüsttür.
Uygulama İki doğruluk
Verilen etiketler için accuracy_score ve balanced_accuracy_score değerlerini round(..., 3) ile alt alta yazdır.
Başlangıç kodu
from sklearn.metrics import accuracy_score, balanced_accuracy_score
y_true = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1]
y_pred = [0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
# buraya yazÖrnek çözüm
from sklearn.metrics import accuracy_score, balanced_accuracy_score
y_true = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1]
y_pred = [0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
print(round(accuracy_score(y_true, y_pred), 3))
print(round(balanced_accuracy_score(y_true, y_pred), 3))Beklenen çıktı
0.9 0.75
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 TP=40, TN=45, FP=5, FN=10 ise doğruluk kaçtır?
- 0.45
- 0.85 Doğru cevap
- 0.80
- 0.90
Açıklama: (40 + 45) / 100 = 0.85.
2 Matrisin köşegen toplamını al.
dogru = np.____(cm)
dogru = np.trace(cm)
Açıklama: trace köşegendeki elemanları toplar.
3 Metrikleri eşleştir.
| Kavram | Anlamı |
|---|---|
doğruluk |
(TP+TN)/toplam |
hata oranı |
1 - doğruluk |
dengeli doğruluk |
Sınıf doğruluklarının ortalaması |
np.trace(cm) |
Doğru tahmin sayısı |