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