AI Atlas
Başlangıç· ~2 dk okuma#confusion-matrix#classification#evaluation

Karmaşıklık Matrisi

Confusion Matrix

Bir sınıflandırma modelinin tahminlerini gerçek etiketlere göre dört (ya da N×N) bölmede özetleyen tablo — modelin nerede ve nasıl yanıldığını tek bakışta gösterir.

KARMAŞIKLIK MATRİSİTahminGerçekNegatifPozitifNegatifPozitifTN99580FP320FN24TP76Hangi tür hatayı yaptığını tek bakışta gösterir.
Tanım

Karmaşıklık matrisi, ikili sınıflandırmada 2×2 bir tablodur: satırlar gerçek sınıfı, sütunlar tahmin edilen sınıfı gösterir. Dört köşe: TP (gerçek pozitif — doğru pozitif tahmin), TN (gerçek negatif — doğru negatif tahmin), FP (yanlış pozitif — model "var" dedi ama yokmuş), FN (yanlış negatif — model "yok" dedi ama varmış).

Bu dört sayı tüm temel metriklerin kaynağıdır. Doğruluk = (TP+TN)/toplam. Precision = TP/(TP+FP). Recall = TP/(TP+FN). Specificity = TN/(TN+FP). False positive rate = FP/(FP+TN). Bir matrise bakmak, modelin hangi tür hatayı daha çok yaptığını görmenin en hızlı yoludur.

Çok sınıflı problemde matris N×N olur. Köşegen doğru tahminler, köşegen dışı sınıfların birbirine karıştığı yerleri gösterir. "Köpek tahminlerinin %12'si kurt diye işaretlenmiş" gibi içgörüler buradan çıkar; modelin hangi sınıflarda zayıf olduğunu anlarsın.

Benzetme

Bir tıbbi test düşün: "Bu hasta hasta mı?" sorusuna evet/hayır cevap veriyor. Sonuçları dört kategoriye atarsın: gerçekten hasta ve test pozitif (TP), gerçekten sağlıklı ve test negatif (TN), gerçekte sağlıklı ama test pozitif (yanlış alarm — FP), gerçekten hasta ama test negatif (kaçırılmış vaka — FN). Hangi hatanın daha pahalı olduğu testin nasıl ayarlanacağını belirler. Karmaşıklık matrisi tam olarak bu dört durumun sayılmasıdır.

Gerçek dünyadan örnek

Bir banka kart dolandırıcılığı modelini değerlendiriyor. 100.000 işlemlik test setinde sonuçlar:

| | Tahmin: Geçerli | Tahmin: Dolandırıcılık | |--------------|------------------|------------------------| | Gerçek: Geçerli | 99.580 (TN) | 320 (FP) | | Gerçek: Dolandırıcılık | 24 (FN) | 76 (TP) |

Hızlı yorum: 100 gerçek dolandırıcılığın 76'sı yakalandı (recall %76). 396 alarm verildi, 76'sı gerçek (precision %19). Yani modelin verdiği her 5 alarmdan 1'i doğru. Bu çok düşük bir precision; müşteri hizmetleri ekibi 320 yanlış alarmı incelemek zorunda kalır. Eşik yükseltilirse precision artar ama recall düşer; iş ekibi bu trade-off'u maliyet hesabıyla seçmeli.

Kod örnekleri
scikit-learn · matris ve görselleştirmePython
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
from sklearn.metrics import classification_report
import matplotlib.pyplot as plt

preds = model.predict(X_test)

# Ham matris
cm = confusion_matrix(y_test, preds, labels=[0, 1])
print(cm)
# [[TN  FP]
#  [FN  TP]]

# Görsel
disp = ConfusionMatrixDisplay(
    confusion_matrix=cm,
    display_labels=["geçerli", "dolandırıcılık"],
)
disp.plot(cmap="Blues", values_format="d")
plt.savefig("cm.png", dpi=150, bbox_inches="tight")

# Kapsamlı metrik raporu
print(classification_report(y_test, preds))

# Çok sınıflı: normalize edilmiş matris hangi sınıfların karıştığını gösterir
cm_norm = confusion_matrix(y_test, preds, normalize="true")
Ne zaman kullan
  • Her sınıflandırma değerlendirmesinde — temel teşhis aracı
  • Modelin hangi tür hatada zayıf olduğunu görmek
  • Sınıflar arası karışıklığı analiz etmek (çok sınıflı)
  • Ürün ekibine model davranışını sayısal göstermek
Ne zaman kullanma
  • Universal araç; her zaman kullanılır
Sık yapılan hatalar

Normalize etmeden çok sınıflı yorumlamak

10 sınıflı bir matriste her sınıfın örnek sayısı çok farklıysa ham sayılar yanıltıcıdır. Satıra göre normalize ederek 'gerçek X sınıfının % kaçı Y diye etiketlendi' sorusuna cevap al.

Sadece köşegene bakmak

Köşegen toplamı doğruluğu verir ama hangi sınıfın hangi sınıfla karıştırıldığı asıl içgörüdür. Köşegen dışındaki en büyük hücreleri her zaman incele.

Test seti çok küçük

Az test örneğinde matris değerleri rastlantıyla oynaşır. Az veride güven aralığı hesapla; yorumu rakamların değişkenliğine göre yap.