ÖRNEK ile Makine Öğreniminde Karışıklık Matrisi
⚡ Akıllı Özet
Karışıklık matrisi, sınıflandırma modelleri için bir performans ölçüm tablosudur; tahmin edilen etiketleri bilinen gerçek etiketlerle karşılaştırarak, bir sınıflandırıcının hangi sınıfları doğru, hangilerini yanlış belirlediğini tam olarak ortaya koyar.

Karışıklık Matrisi Nedir?
A karışıklık matrisi , bir performans ölçme tekniğidir. makine öğrenme Sınıflandırma. Bu, gerçek değerleri zaten bilinen bir test veri kümesi üzerinde bir sınıflandırma modelinin nasıl performans gösterdiğini gösteren bir tablodur. "Karışıklık matrisi" terimi oldukça basittir, ancak üzerine inşa edilen terminoloji kafa karıştırıcı olabilir, bu nedenle her bir parça aşağıda sade bir dille açıklanmıştır.
Bu matris her şeye uygulanabilir. denetimli sınıflandırıcı — lojistik regresyon, bir karar ağacı, bir Saf Bayes modeli ya da derin sinir ağı — çünkü yalnızca iki etiket sütununu karşılaştırıyor: modelin tahmin ettiği ve gerçekte olan.
Karışıklık matrisinin dört sonucu
Karmaşıklık matrisi, gerçek ve tahmin edilen sınıfları karşılaştırarak bir sınıflandırıcının doğruluğunu görselleştirir. İkili karışıklık matrisi karelerden oluşur:

Yukarıdaki tablo, her ikili karışıklık matrisinin içerdiği dört kareyi göstermektedir:
- TP: Gerçek Pozitif: Tahmin edilen değerler, gerçek pozitif değerler olarak doğru bir şekilde tahmin edildi.
- FP: Yanlış Pozitif: Tahmin edilen değerler yanlışlıkla pozitif olarak tahmin edildi, yani negatif değerler pozitif olarak tahmin edildi.
- FN: Yanlış Negatif: Pozitif değerler negatif olarak tahmin edildi.
- TN: Gerçek Negatif: Tahmin edilen değerler, gerçekte negatif olarak doğru bir şekilde tahmin edildi.
İstatistiksel analiz, iki hata hücresine kendi adlarını verir. Yanlış pozitif ise şudur: Tip I hatası — model, asla verilmemesi gereken bir alarm verdi. Yanlış negatif, Tip II hatası — model, alarm vermesi gerekirken sessiz kaldı. Sorununuz için hangisinin daha maliyetli olduğunu bilmek, daha sonra hangi ölçütü ayarlayacağınıza karar vermenizi sağlar.
Aşağıdaki formülde gösterildiği gibi, karışıklık matrisinden doğruluk testini hesaplayabilirsiniz:
Karışıklık Matrisi Örneği
Karışıklık Matrisi, Geri Çağırma, Hassasiyet, Doğruluk ve AUC-ROC eğrisini ölçmenizi sağlayan kullanışlı bir makine öğrenme yöntemidir. Aşağıdaki futbol örneği, Gerçek Pozitif, Gerçek Negatif, Yanlış Pozitif ve Yanlış Negatif terimlerinin günlük dilde ne anlama geldiğini göstermektedir.
Gerçek Olumlu:
Olumlu bir tahmin yaptınız ve tahmininiz doğru çıktı. Örneğin, Fransa'nın dünya kupasını kazanacağını tahmin etmiştiniz ve Fransa kazandı.
Gerçek Olumsuz:
Olumsuz bir tahminde bulundunuz ve bu da doğru. İngiltere'nin kazanmayacağını tahmin etmiştiniz ve kaybetti.
Yanlış pozitif:
Tahmininiz olumlu ve yanlıştır.
İngiltere'nin kazanacağını tahmin etmiştiniz, ama kaybetti.
Yanlış Negatif:
Tahmininiz olumsuz ve sonuç da bunu yanlış kılıyor.
Fransa'nın kazanamayacağını tahmin etmiştiniz ama kazandı.
Unutmayın ki ilk kelime tahminin doğru mu yanlış mı olduğunu (Doğru veya Yanlış), ikinci kelime ise modelin neyi tahmin ettiğini (Olumlu veya Olumsuz) belirtir.
Karışıklık Matrisi Nasıl Hesaplanır?
İşte bir karışıklık matrisinin hesaplanması için adım adım süreç: veri madenciliği:
- ) 1 Adım Öncelikle, beklenen sonuç değerleriyle birlikte bir test veri setine ihtiyacınız var.
- ) 2 Adım Test veri setindeki tüm satırları tahmin edin.
- ) 3 Adım Beklenen sonuçları tahminlerle karşılaştırın ve sayın:
- Her sınıfın doğru tahminlerinin toplamı.
- Her sınıfın yanlış tahminlerinin toplamı.
Daha sonra bu sayılar aşağıdaki yöntemlere göre düzenlenir:
- Matrisin her satırı gerçek bir sınıfa karşılık gelir.
- Matrisin her sütunu, tahmin edilen bir sınıfa bağlanır.
- Doğru ve yanlış sınıflandırmaların toplam sayıları tabloya girilir.
- Bir sınıf için doğru tahminlerin toplamı, o sınıfın gerçek satırının kendi tahmin edilen sütunuyla kesiştiği hücreye (köşegen) yazılır.
- Bir sınıf için yapılan yanlış tahminlerin toplamı, o sınıf değerine ait gerçek satıra ve modelin bunun yerine seçtiği sınıfa ait tahmin edilen sütuna yazılır.
Satır ve sütun rolleri bir yasa değil, bir gelenektir ve bazı grafik çizme araçları düzeni tersine çevirir; bu nedenle bir matrisi yorumlamadan önce her zaman eksen etiketlerini okuyun. Burada kullanılan yönlendirme — satırlarda gerçek, sütunlarda tahmin edilen — scikit-learn'ün ürettiği yönlendirmedir.
Karışıklık Matrisini Kullanan Diğer Önemli Terimler
Dört temel unsur belirlendikten sonra, ikincil terimler ailesi aynı tablonun farklı dilimlerini tanımlar:
- Pozitif Öngörü Değeri (PPV): Bu, kesinliğe çok yakındır. İki terim arasındaki önemli bir fark, PPV'nin yaygınlığı hesaba katmasıdır. Sınıfların mükemmel bir şekilde dengelendiği bir durumda, pozitif tahmin değeri kesinlikle aynıdır.
- Boş Hata Oranı: Bu terim, her zaman çoğunluk sınıfını tahmin etmeniz durumunda tahmininizin ne sıklıkla yanlış olacağını tanımlar. Bunu, sınıflandırıcınızı karşılaştırmak için bir temel ölçüt olarak kullanabilirsiniz.
- F Puanı: F1 skoru, doğru pozitif oranı (geri çağırma) ve hassasiyetin ağırlıklı ortalama skorudur.
- ROC Eğrisi: ROC eğrisi, çeşitli kesme noktalarında doğru pozitif oranını yanlış pozitif oranına karşı çizer. Ayrıca duyarlılık (geri çağırma) ve özgüllük (doğru negatif oranı) arasındaki dengeyi de gösterir.
- Hassas: Hassasiyet metriği pozitif sınıfın doğruluğunu gösterir. Pozitif sınıfın tahmininin ne kadar doğru olduğunu ölçer.
Sınıflandırıcı tüm pozitif değerleri mükemmel bir şekilde sınıflandırdığında maksimum puan 1'dir. Hassasiyet tek başına çok yardımcı olmaz çünkü negatif sınıfı göz ardı eder. Bu ölçüt genellikle geri çağırma ölçütüyle birlikte kullanılır. Geri çağırma, duyarlılık veya gerçek pozitif oranı olarak da adlandırılır ve aşağıda gösterildiği gibi yazılır.
- Duyarlılık: Duyarlılık, doğru şekilde tespit edilen pozitif sınıfların oranını hesaplar. Bu ölçüt, modelin pozitif bir sınıfı tanımada ne kadar iyi olduğunu gösterir.
Karmaşıklık Matrisi Ölçütleri ve Formülleri
Yukarıdaki her bir ölçüt, aynı dört temel unsur üzerinden aritmetik işlemlerden oluştuğu için, bunları her birinin yanıtladığı soruyla yan yana görmek faydalı olacaktır.
| metrik | formül | Soruyu cevaplıyor | Bunu ne zaman kullanacaksın? |
|---|---|---|---|
| doğruluk | (TP + TN) / (TP + TN + FP + FN) | Toplamda kaç tahmin doğru çıktı? | Sınıflar kabaca dengelidir. |
| Hassas | TP / (TP + FP) | Model olumlu sonuç verdiğinde, ne sıklıkla doğru çıkıyor? | Yanlış alarmlar pahalıya mal olur. |
| Geri Çağırma (Hassasiyet) | TP / (TP + FN) | Tüm olumlu gelişmeler arasında kaç kişi yakalandı? | Kaçırılan pozitif sonuçlar pahalıya mal olur. |
| Özgünlük | Türkçe / (Türkçe + ÇP) | Tüm olumsuzluklardan kaç tanesi ortadan kaldırıldı? | Negatif sınıf da önemlidir. |
| F1 Skoru | 2 × (Hassasiyet × Geri Çağırma) / (Hassasiyet + Geri Çağırma) | İkisi arasındaki denge nedir? | İkisi için de tek bir numaraya ihtiyacınız var. |
100 e-posta üzerinde test edilen bir spam filtresinin TP = 45, FN = 5, FP = 10 ve TN = 40 sonuçlarını verdiğini varsayalım. Doğruluk (45 + 40) / 100 = 0.85'tir. Hassasiyet 45 / (45 + 10) = 0.82, geri çağırma 45 / (45 + 5) = 0.90 ve özgüllük 40 / (40 + 10) = 0.80'dir. F1 puanı 0.86 olarak hesaplanmıştır.
Bu rakamlar, tek bir doğruluk oranının gizlediği bir hikaye anlatıyor: filtre gerçek spam'lerin %90'ını yakalıyor ancak işaretlenen her beş meşru e-postadan birini yanlışlıkla karantinaya alıyor. Bu takasın kabul edilebilir olup olmadığı, her hatanın maliyetine bağlıdır; bu nedenle doğruluk oranı tek başına değil, matris rapor ediliyor.
Çok Sınıflı Sınıflandırma için Karışıklık Matrisi
Sınıflandırma problemleri nadiren iki etiketle sınırlı kalır ve matris şekli değişmeden ölçeklenir. N sınıf için tablo N×N'lik bir ızgara haline gelir: köşegen her doğru tahmini içerir ve köşegen dışındaki her hücre, hangi sınıfın hangi diğer sınıfla karıştırıldığını tam olarak kaydeder.
Görüntüleri kedi, köpek ve tavşan olarak sınıflandıran üç sınıflı bir model, 3×3'lük bir ızgara oluşturur. Eğer "kedi" satırındaki "köpek" sütunundaki hücre 12 değerini içeriyorsa, on iki kedi görüntüsü köpek olarak etiketlenmiştir. Bu detay seviyesi, matrisi bir puandan daha kullanışlı kılan şeydir: modelin ayıramadığı belirli sınıf çiftini adlandırır.
Hassasiyet, geri çağırma ve F1 puanları, her sınıf için bir-diğerleri yaklaşımı kullanılarak tanımlanır; burada söz konusu sınıf pozitif sınıf, diğer her şey ise negatiftir. Daha sonra sınıf başına elde edilen bu değerler üç şekilde birleştirilir:
- Makro ortalama: Her sınıf için metriği bağımsız olarak hesaplar, ardından ağırlıksız ortalamayı alır. Her sınıf eşit derecede önem taşır, bu nedenle nadir sınıflar göz ardı edilmez.
- Mikro ortalama: Metriği hesaplamadan önce tüm sınıflardaki TP, FP ve FN sayılarını bir araya getirir. Büyük sınıflar baskındır ve tek etiketli problemler için mikro hassasiyet, mikro geri çağırma ve doğruluk aynıdır.
- Ağırlıklı ortalama: Her sınıfın gerçek örnek sayısını ağırlık olarak kullanarak sınıf başına puanların ortalamasını alır; bu da sınıf dengesizliğini görünür kılar.
Her sınıfın eşit derecede önemli olduğu durumlarda makro seçeneğini, sınıf dağılımının gerçek trafiği yansıttığı durumlarda ise ağırlıklı seçeneği tercih edin.
Karmaşıklık Matrisi Nasıl Oluşturulur? Python
Scikit-learn kütüphanesi, tüm tabloyu iki etiket dizisinden oluşturur, bu nedenle manuel sayım gerekmez. Aşağıdaki örnek, on gerçek etiketi on tahminle karşılaştırır.
from sklearn.metrics import confusion_matrix y_true = [1, 0, 1, 1, 0, 1, 0, 0, 1, 0] y_pred = [1, 0, 1, 0, 0, 1, 1, 0, 1, 0] cm = confusion_matrix(y_true, y_pred) print(cm)
Bu çağrı, 0. satırın gerçek negatif sınıfı, 1. satırın ise gerçek pozitif sınıfı temsil ettiği 2x2'lik bir NumPy dizisi döndürür:
[[4 1] [1 4]]
Diziyi scikit-learn kuralına göre okuduğumuzda TN = 4 (sol üst), FP = 1 (sağ üst), FN = 1 (sol alt) ve TP = 4 (sağ alt) değerlerini elde ederiz. Bu dört değeri tek bir satırda açmak, haritayı oluşturur.ping açık:
tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
Yukarıda açıklanan makro ve ağırlıklı ortalamalar da dahil olmak üzere, her sınıf için aynı anda hassasiyet, geri çağırma ve F1 puanlarını elde etmek için şu komutu kullanın: classification_report() Her bir ölçütü elle hesaplamak yerine:
from sklearn.metrics import classification_report print(classification_report(y_true, y_pred))
Grafiksel bir versiyon için, ConfusionMatrixDisplay.from_predictions(y_true, y_pred) Aynı tabloyu etiketli bir ısı haritası olarak görüntüler. Tam argüman listesi, aşağıdakileri içerir: labels hem de normalize seçenekler, belgelenmiştir. scikit-learn confusion_matrix referansıAynı değerlendirme adımı, aşağıdaki yöntemlerle oluşturulan modeller için de geçerlidir. TensorFlowÇünkü bu ölçüt yalnızca tahmin edilen etiketlere bağlıdır.
Neden Karışıklık matrisine ihtiyacınız var?
İşte karışıklık matrisi kullanmanın avantajları ve faydaları.
- Bu, bir sınıflandırma modelinin tahmin yaparken nasıl karışıklığa düştüğünü gösteriyor.
- Karmaşıklık matrisi, sınıflandırıcınızın yaptığı hataların yanı sıra, yaptığı hata türleri hakkında da size fikir verir.
- Bu analiz, yalnızca sınıflandırma doğruluğunu kullanmanın getirdiği sınırlamaların üstesinden gelmenize yardımcı olur.
- Karışıklık matrisinin her sütunu, tahmin edilen sınıfın örneklerini temsil eder.
- Karışıklık matrisinin her satırı gerçek sınıfın örneklerini temsil eder.
- Bu, model değerlendirmesini bir teşhise dönüştürerek, daha fazla veriye veya daha iyi bir özelliğe ihtiyaç duyan belirli sınıf çiftini işaret eder.
Bu tanısal değer, karışıklık matrisinin herhangi bir değerlendirme aşamasının merkezinde yer almasının nedenidir. veri bilimi İş akışı ve bir sınıflandırıcı üretime geçirilmeden önce genellikle incelenen ilk tablo olmasının nedenleri.


