R'de Karışıklık Matrisi: Nasıl Yapılır ve Hesaplanır [Örneklerle]

Yayınlanan: 2021-03-09

R, günümüzde veri ve istatistiksel analiz için önde gelen yazılım paketlerinden biri olarak ortaya çıkmıştır. Güçlü bilgi işlem, görsel ve grafik yetenekleri nedeniyle tercih edilen açık kaynaklı bir ortamdır. Mühendislik öğrencisi, iş analitiği uzmanı veya veri bilimine yoğun ilgi duyan biriyseniz, R programlama dilini öğrenmek size birçok yönden yardımcı olabilir.

Bu yazıda, bu entegre paket aracılığıyla makine öğreniminin bazı temel kavramlarını ele alacağız. Daha spesifik olarak, R'de bir karışıklık matrisinin nasıl hesaplanacağını tartışacağız .

Ancak teknik konulara geçmeden önce, bu amaç için neden R'yi seçtiğimizi anlayalım. Bu programlama dilinin dünya çapında istatistikçiler ve veri bilimcileri arasında popülerlik kazanmasının nedeni aşağıdaki avantajlardır:

  • Tekrarlanabilir: R ile raporları çoğaltabilir ve yeniden kullanılabilir kod yazabilirsiniz
  • Paylaşılabilir: İşbirliği için yollar açan düşük bir öğrenme eğrisine sahiptir
  • Tekrarlanabilir: Herkes sadece ne yaptığınızı anlayamaz, aynı zamanda kendi makinelerinde aynı işlevleri oluşturmak için adımları tekrarlayabilir.

R dilinin makine öğrenimi alanında kullanımı da yukarıdaki nedenlerden dolayı toplanmıştır. Sözdizimini anlamak için uzman bir programcı olmanıza gerek yok. Ve böylece, bir sonraki bölümde size bazı temel bilgileri tanıtıyoruz.

İçindekiler

Karışıklık Matrisi nedir?

Bir karışıklık matrisi veya bir hata matrisi, istatistikteki standart sınıflandırma problemiyle ilgilenir. Veri analistlerinin bir algoritmanın nasıl çalıştığını görselleştirmesini kolaylaştıran özel bir tablo düzeni içerir. Bu özellikle denetimli öğrenme algoritmaları için geçerlidir.

Daha fazla detaylandırmak için, bir karışıklık matrisi N x N biçimini takip eder, burada N, hedef sınıfların sayısını ifade eder. Bir sınıflandırma modelinin performansını değerlendirmek için bu tabloyu veya matrisi kullanabilirsiniz. Bu mümkündür çünkü matris, tahmin edilen değerleri hedef değerlerle karşılaştırır.

Özetle, bu durumda bir sınıflandırıcı olan makine öğrenme modelinizin bir dizi test verisi üzerinde (zaten gerçek değerlere sahip olduğunuz) nasıl çalıştığını açıklayabilirsiniz.

Bu yöntemi anlamak için aşağıdaki terimlere aşina olmanız gerekir:

  • True Positive (TP): Pozitif değerler doğru tahmin edilir
  • Yanlış Pozitif (FP): Negatif değerler yanlış olarak pozitif olarak tahmin edilir
  • Yanlış Negatif (FN): Negatif olarak tahmin edilen pozitif değerler
  • Gerçek Negatif (TN): Gerçek negatif değerler olarak tahmin edilen negatif değerler

Daha fazla netlik kazanmak için bazı örneklere bakalım.

Karışıklık Matrisi Örnekleri

  • gerçek pozitif

Hindistan'ın Kriket Dünya Kupası'nı kazanacağını tahmin ettiğinizde ve kazandı.

  • Yanlış pozitif

Hindistan'ın kazanmasını beklediğiniz zaman, ama kaybetti.

  • Yanlış Negatif

Fransa'nın kazanamayacağını tahmin ettiğinizde, ama kazandı.

  • Gerçek Negatif

Hindistan'ın Kriket dünya kupasını 'kazanmayacağını' ve gerçek hayatta seriyi kaybettiğini tahmin ettiğinizde.

İlerledikçe, tahmin edilen tüm değerlerin şu şekilde tanımlandığını hatırlamalısınız: Pozitif, Negatif, Doğru ve Yanlış.

R'deki Karışıklık Matrisi Nasıl Hesaplanır?

Beklenen veya bilinen değerler listesine ve makine öğrenimi modelinizden başka bir tahmin listesine sahip olduğunuz bir senaryo düşünün. R'de, şapka kitaplığındaki basit bir işlevi kullanarak karışıklık matrisini hesaplayabilirsiniz: conceptMatrix(). Yalnızca matrisi hesaplamakla kalmaz, aynı zamanda sonuçlar için ayrıntılı bir rapor da verir.

Veri madenciliği sürecini uygulamak için aşağıdaki adımları takip edebilirsiniz:

  • Verilen veri kümesini beklenen sonuçlarla test edin.
  • Test veri kümenizin satırlarını tahmin edin.
  • Her sınıf için toplam doğru ve yanlış tahmin sayısını belirleyin.

Bunu yaptıktan sonra, aşağıdaki şekilde düzenlenmiş sayıları bulacaksınız:

  • Matrisin her satırı tahmin edilen bir sınıfa karşılık gelecek ve her sütun gerçek bir sınıfa bağlanacaktır.
  • Doğru ve yanlış sınıflandırmaların toplam sayısı, her sınıf için toplamlarla birlikte tabloda yansıtılmaktadır.

Diyelim ki kadın ve erkek olmak üzere iki sınıfa ayrılmış 10 kişiniz var. 2 erkeğin kadın, 1 kadının erkek olarak sınıflandırıldığını bildiğinizde bilgileri bir karışıklık matrisi olarak düzenlemeniz gerekir.

kadın erkek

kadınlar 3 1

erkekler 2 4

Burada doğru değerler, matrisin sol üst köşesinden sağ alt köşesine (3 + 4) çapraz bir çizgide düzenlenir. Sonuçlar bize, erkek üyeleri kadın olarak tahmin etmede, kadınları erkek olarak tahmin etmekten daha fazla hata olduğunu söylüyor . Algoritma, 10 olası sonuçtan 7'sini doğru tahmin etti, bu da %70'lik bir doğruluk oranına sahip olduğu anlamına geliyor.

R'de C onfusion Matrisi Oluşturma ve Hesaplama Kılavuzu

Gördüğünüz gibi, karışıklık matrisi işlevi , tahminlerinizin olası sonuçlarını incelemek için kullanışlı bir araçtır. Bu nedenle, matrisinizi oluşturmaya başlamadan önce, olasılık değerlerinizin bir "kesilmesi" gerekir. Başka bir deyişle, olasılıklarınızı sınıf tahminlerine dönüştürmek için bir eşik işaretlemeniz gerekir.

Bunu yapmak için ifelse() işlevini kullanabilirsiniz. Örneğin:

sınıf_tahmini <-

ifelse (olasılık_tahmin > 0,50,

"pozitif_sınıf",

"negatif_sınıf"

)

Ayrıca, taban R'de bir beklenmedik durum tablosu yapmak için table() işlevini de yazabilirsiniz. Bununla birlikte, blurMatrix() işlevinin değerli yardımcı istatistikler sağladığı bilinmektedir.

Bir sonraki adım, karışıklık matrisini ve diğer ilişkili istatistikleri hesaplamaktır. Burada, tahmin edilen ve gerçek sonuçlara ihtiyacınız olacaktır. Örneğin, aşağıda verilen ifadeyi alın:

karışıklıkMatrix(öngörülen, gerçek)

Şimdi, sayısal tahminlerinizi bir sınıf tahminleri vektörüne dönüştürmeye devam etmelisiniz, sat p_class. 0,50'lik bir kesim kullanmak istediğinizi varsayalım.

Ayrıca tahmin yaparken pozitif ve negatif sınıfları ayrı göstergelerle adlandırmayı unutmayın. Pozitif sınıfları “T” olarak adlandıralım ve negatif olanları “L” olarak adlandıralım. Bu, sınıfları orijinal verilerle eşleştirmek için yapılır.

Artık test veri setinde bir p_class ve gerçek değerlere sahip olduğunuza göre, blurMatrix() işlevini çağırarak karışıklık matrisinizi oluşturmaya başlayabilirsiniz.

Alternatif olarak, veri madenciliği modelinizin doğruluğundan emin olmak isteyebilirsiniz. Bu gibi durumlarda 0,90 değil 0,10 eşik kullanılması tavsiye edilir. bundan sonra, önceki alıştırmada yaptığınız adımlarla aynı adımlarla devam edebilirsiniz.

Yeni öngörülen sınıflarınızla bu çağrıyı tekrarlayabilirsiniz:

pred <- ifelse(olasılık > eşik, “T”, “L”)

Son olarak, şapka işareti içinde configurationMatrix() işlevini kullanabilirsiniz:

karışıklıkMatrix(öngörülen, gerçek)

Bununla, R'de makine öğrenimi için karışıklık matrisi işleviyle ilgili bu öğreticiyi tamamlıyoruz. Umarım faydalı bulmuşsunuzdur!

Çözüm

R, veri bilimi hakkında bilgi edinmek istiyorsanız, çalışan profesyoneller için oluşturulan ve 10'dan fazla vaka çalışması ve proje, uygulamalı uygulamalı atölyeler, endüstri uzmanlarıyla mentorluk, 1'e 1 sunan Veri Biliminde PG Diplomamıza göz atın. Sektör danışmanlarıyla 1 numara, en iyi firmalarla 400+ saat öğrenim ve iş yardımı.

Bir karışıklık matrisi yaratmanın ihtiyacı nedir?

Aşağıdaki nedenler bize bir karışıklık matrisine sahip olmanın faydalarını ve performans sorunlarıyla nasıl ilgilendiğini tanıtmaktadır.
1. Sorunu sınıflandırma doğruluğu ile ortadan kaldırmak için karışıklık matrisine ihtiyaç vardır. Sınıflandırma oranı, çoğu zaman modelin gerekli detaylarını gizleyerek bazı sorunlara neden olur.
2. Karışıklık matrisi, tahminlere ve sınıflandırma modelinde yapılan hataların türüne ilişkin bir fikir verir. Doğru ve hatalı tahminler özet olarak sunulmuştur.
3. Hatalar ve türleri, modelinizin performansını anlamanız için sınıflandırılmıştır.

R'deki karışıklık matrisi nasıl hesaplanır?

R'deki karışıklık matrisi, şapka kitaplığının “confusionMatrix()” işlevi kullanılarak hesaplanabilir. Bu işlev yalnızca matrisi hesaplamakla kalmaz, aynı zamanda matrisin ayrıntılı bir raporunu da verir. Karışıklık matrisinizi hesaplamak için bazı adımları izlemelisiniz.
1. Veri kümenizi test edin.
2. Toplam satır sayısını tahmin edin.
3. Her sınıf için toplam doğru ve yanlış tahminleri tahmin edin.
Verilerinizi çıkardıktan sonra, satırlar halinde düzenlenmiş sayıları alacaksınız. Sütunlar gerçek sınıfa bağlanırken satırlar tahmin edilen sınıfa bağlanacaktır. Doğru değerler çapraz bir çizgide olacaktır. Tüm değerleri ekleyin ve matrisinizin doğruluk yüzdesini elde edeceksiniz.

Bir karışıklık matrisinde performans nasıl ölçülür?

2x2 karışıklık matrisi kullanarak bir modelin doğruluk oranını hesaplayabilirsiniz. Aşağıdaki formül size başarı oranını veya doğruluk oranını verecektir:
Doğruluk = (TP+TN)/(TP+TN+FP+FN)
Burada, TP = Doğru Pozitif ,TN = Doğru Negatif,FP =Yanlış Pozitif, FN =Yanlış Negatif
Modelinizin hata oranı, oran hesaplama formülü ile de hesaplanabilir:
Doğruluk = (TP+TN)/(TP+TN+FP+FN) = 1-Doğruluk
Hata oranı kavramı çok basittir. Modelinizin doğruluk oranının %80 olduğunu varsayalım, o zaman modelinizin hata oranı %20 olacaktır.