R'de matthews korelasyon katsayısı nasıl hesaplanır?


Matthews Korelasyon Katsayısı (MCC), bir sınıflandırma modelinin performansını değerlendirmek için kullanabileceğimiz bir ölçümdür.

Aşağıdaki şekilde hesaplanır:

MM = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)

Altın:

  • TP : Gerçek pozitiflerin sayısı
  • TN : Gerçek negatiflerin sayısı
  • FP : Yanlış pozitiflerin sayısı
  • FN : Yanlış negatiflerin sayısı

Bu ölçüm özellikle iki sınıf dengesiz olduğunda, yani bir sınıfın diğerinden çok daha fazla göründüğü durumlarda kullanışlıdır.

MM’nin değeri -1 ile 1 arasındadır; burada:

  • -1, öngörülen sınıflar ile gerçek sınıflar arasındaki toplam anlaşmazlığı gösterir
  • 0 tamamen rastgele tahminler anlamına gelir
  • 1, tahmin edilen sınıflar ile gerçek sınıflar arasındaki tam uyumu gösterir

Örneğin, bir spor analistinin 400 farklı üniversite basketbol oyuncusunun NBA’e alınıp alınmayacağını tahmin etmek için lojistik regresyon modeli kullandığını varsayalım.

Aşağıdaki karışıklık matrisi, modelin yaptığı tahminleri özetlemektedir:

Modelin MM’sini hesaplamak için aşağıdaki formülü kullanabiliriz:

  • MM = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)
  • MM = (15*375-5*5) / √ (15+5)(15+5)(375+5)(375+5)
  • MM = 0,7368

Matthews korelasyon katsayısı 0,7368 olarak çıkıyor.

Bu değerin bire yakın olması, modelin oyuncuların draft edilip edilmeyeceğini tahmin etme konusunda iyi bir iş çıkardığını gösteriyor.

Aşağıdaki örnek, R’deki mltools paketindeki mcc() işlevini kullanarak bu özel senaryo için MCC’nin nasıl hesaplanacağını gösterir.

Örnek: R’de Matthews Korelasyon Katsayısının Hesaplanması

Aşağıdaki kod, tahmin edilen sınıflardan oluşan bir vektörün ve gerçek sınıflardan oluşan bir vektörün nasıl tanımlanacağını ve ardından mltools paketindeki mcc() işlevini kullanarak Matthews korelasyon katsayısının nasıl hesaplanacağını gösterir:

 library (mltools)

#define vector of actual classes
actual <- rep (c(1, 0), times =c(20, 380))

#define vector of predicted classes
preds <- rep (c(1, 0, 1, 0), times =c(15, 5, 5, 375))

#calculate Matthews correlation coefficient
mcc(preds, actual)

[1] 0.7368421

Matthews korelasyon katsayısı 0,7368’dir .

Bu, daha önce manuel olarak hesapladığımız değerle eşleşiyor.

Bir karışıklık matrisi için Matthews korelasyon katsayısını hesaplamak istiyorsanız, karışıklıkM bağımsız değişkenini aşağıdaki gibi kullanabilirsiniz:

 library (mltools)

#create confusion matrix
conf_matrix <- matrix(c(15, 5, 5, 375), nrow= 2 )

#view confusion matrix
conf_matrix

     [,1] [,2]
[1,] 15 5
[2,] 5,375

#calculate Matthews correlation coefficient for confusion matrix
mcc(confusionM = conf_matrix)

[1] 0.7368421

Yine Matthews korelasyon katsayısı 0,7368’dir.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

R’de lojistik regresyon nasıl gerçekleştirilir
Ggplot2 kullanılarak bir ROC eğrisi nasıl çizilir
R’de F1 puanı nasıl hesaplanır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir