Confusion Matrix ile kafası karışanlardan mısınız? :)

Confusion Matrix ile kafası karışanlardan mısınız?

Numpy, Pandas, veri görselleştirme derken, en nihayetinde makine öğrenmesine giriş yapabilmiştim. Yavaş yavaş ilerlerken bazı noktalarda takılsam da internetten farklı kaynaklardan bakınca “Aaa tamam, bu da böyleymiş” diyerek ilerlemeye devam ediyordum.

Ne zamanki confusion matrix ilk kez karşıma çıktı, örneklerle TP, FN gibi terimleri okudum, gözlerimin büyüdüğünü hissettim ve içimden “İşte şimdi I am confused!” dedim çünkü anlamamıştım. Daha doğrusu anlamıştım ama mantığını oturtamamıştım. True Positive (TP) ve True Negative’de (TN) sorun yoktu, onlar zaten açıktı ama şu False Positive (FP) ve False Negative (FN) neye göre belirleniyordu? Tahminler ve gerçek durum, satır ve sütun bazında yer değiştirdiğinde, FP ve FN nasıl yerleşmeliydi ve  ben bunu nasıl aklımda tutacaktım? Burada akılda tutmak değil, mantığını anlamak önemliydi ama mantık neydi?

Biraz üzerine eğilince fark ettim ki, confusion matrix’e kelimelerle bakınca kafam karışıyordu. Okuduğum yazılar, baktığım tablolar diyorduki; “Model, hasta olan birini hasta olarak tahmin etmezse FN, hasta olmayanı hasta diye tahmin ederse o zaman FP” Hı hı, peki, ben de tam olarak böyle düşünmüştüm 🙂 Bunun yerine sayılara (0 veya 1) ya da durumun Positive – Negative olduğuna odaklanınca tabloyu daha kolay okuyabiliyordum. İşte sizinle bu yazıda paylaşmak istediğim de bu.

Confusion matrix’e başlamadan önce

İkili sınıflandırma problemlerinde, bağımlı değişken y’nin alacağı değerler 0 ya da 1 oluyor diye öğrenmiştim. Peki 0 ya da 1 neye göre verilecekti? Bunun için de şöyle okumuştum; y için değer verilirken genelde nadir olaylara bakılarak karar verilir ve nadir olaylar genelde 1 olur. Örneğin kanser hastası olup olmama ile ilgili bir çalışmada kanserli hastalara 1, kanser hastası olmayanlara 0 verilir gibi.

(Önemli hatırlatma; Confusion matrix’i öğrenirken genelde 0 ve 1’li (binary) problemleri içeren örnekler görüyoruz. Ancak unutmamamız gereken nokta; confusion matrix sadece binary problemlerde kullanılabilir diye bir koşulun olmaması. Bkz. multi class confusion matrix )

Confusion matrix’e giriş

Diyelim ki üniversitede öğrencisiniz. Son sınıftasınız, ikinci dönemdesiniz. Alttan hiç dersiniz yok, tez hocanızla da aranız iyi, eh artık diploma size hafif hafif göz kırpmaya başlamış:) Aah ama bir de şu x dersinin xxy adındaki gıcık hocası olmasa :/ Yaz okulu yok, bütünleme var ancak finalden geçirmeyen bütünlemeden niye geçirsin? Vizeniz iyi ama eğer finalden geçer not almaz da bu dersten kalırsanız okulunuz uzayacak!! Anlayacağınız stresiniz had safhada. Neyseki hocanın soracağı sorulardan 1 tanesi kesin, yani soracağına kesin gözüyle bakıyorsunuz, çünkü birkaç senedir sorduğu sorulardandan 1 tanesi hep aynı. Ek olarak bir soru daha yapabilseniz bu iş tamam, mezunsunuz:D

Burada hocanın sorması beklenen sorunun (“A” diyelim) çıkmama ihtimali nadir olay (çünkü hoca birkaç senedir A sorusunu soruyor) o halde ona 1 diyoruz.

Dolayısıyla hocanın A sorusunun sınavda çıkması ihtimaline 0 diyoruz.

Confusion matrix’imizi hazırlarsak;

confusion matrix, hata matrisi

Yani;

Nadir olayı (Sınavda A sorusunun çıkmaması tahminimizi) Positive olarak düşünüyoruz ve ona 1 rakamını atıyoruz.

Nadir olmayan, olmasını daha büyük ihtimalle beklediğimiz durumu (sınavda A sorusunun sorulması) ise Negative olarak düşünüyoruz ve ona 0 rakamını atıyoruz.

Burada önemli nokta şu; bizim modelimiz bir tahmin yapıyor ve biz bu tahminlerin doğru olup olmadığını değerlendiriyoruz. Yani kriterimiz tahminimizin ne dediği.

Dolayısıyla,

Tahminlerden giderek değerlendirirsek;

Sınavda A sorusu çıkmayabilir (1 / nadir olay) dedik, o halde bu Positive olacak.

-Peki True Positive mi yoksa False Positive mi?

—Eğer bu bu tahminimiz doğruysa;        True Positive,

—Eğer bu tahminimiz doğru değilse;    False Positive diyoruz.

Diğer tahminimiz ise sınavda A sorusunun kesin sorulacağı (0) yönündeydi. 0’ı Negative olarak değerlendiriyorduk.

-Peki True Negative mi yoksa False Negative mi?

—Eğer bu tahminimiz doğruysa;              True Negative

—Eğer bu tahminimiz doğru değilse;     False Negative diyoruz.

Bir örnek daha?

Konunun biraz daha oturması adına bir örnek daha yapalım mı? İkinci örneğimiz, confusion matrix’ler anlatılırken sıkça değinilen spam mail örneği olsun. Diyelimki yukarıdaki örnekte sınavı verdiniz, mezun oldunuz, çalışıyorsunuz, hoşlandığınız biri var ve ara ara görüşüyorsunuz. Bu hoşlandığınız kişi internette bir indirim kuponu yakalamış ve bunu size yönlendirip akşama yemeğe çıkalım mı diyor 😉 Diyor ama birbirinden hoşlanan bu iki genç insanın arasına spam kutusu giriyor ve o mail spam kutusuna düşüyor :/

Peki burada confusion matrix’i nasıl yaparız?

Öncelikle nadir olayı belirleyelim. Burada mailin spam olması nadir olaydır. Çünkü gelen maillerin çoğu inbox kutumuza düşer, az bir kısmı spam kutumuza düşer.Dolayısıyla nadir olan, mailin spam olma durumuna 1 diyoruz ve bu durumu Positive olarak düşünüyoruz.

Peki  bu TP, FP, FN ve TN’i nasıl yerleştireceğiz?

Yine aynı mantığı kuralım;

Kurduğumuz modele göre gelen maili spam olarak  (nadir durum) tahminliyorsam, ona 1 değerini atayıp, Positive diyoruz demiştik. O halde;

confusion matrix, hata matrisi, true positive, false positive

Kurduğumuz modele göre gelen maili spam değil (nadir olmayan durum) diye tahminliyorsam, ona 0 değerini atayıp, Negative diyoruz demiştik. O halde;

confusion matrix, hata matrisi, true negative, false negative

Bu yazdıklarımızı tabloya dönüştürürsek confusion matrix’ e nihayet ulaşabiliriz.

confusion matrix, hata matrisi

Umarım yazımdan sonra siz de benim gibi artık confusion matrix’e şaşırmış bir halde bakmıyorsunuzdur. 🙂 Daha da önemlisi belki bu yazı ileride kuracağınız modeller vesilesiyle inbox kutusunda buluşacak sevenlerin sayısının artmasında bir fayda sağlamış olur 😛

Veri bilimi ile ve sağlıcakla kalın,

Didem Sönmez Ekin

Kaynaklar;

www.teachtomachines.com

2 thoughts on

Confusion Matrix ile kafası karışanlardan mısınız? :)

  • Ece Şimşek

    Confusion Matrix’leri anlama ve mantığını oturtmaya yönelik harika bir yazı olmuş! Emekleriniz için çok teşekkürler. Kesinlikle elimin altında bulunması gereken açık ve öz kaynaklar arasına girdi 🙂

Bir cevap yazın

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.