Python'da 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, Python’daki sklearn kitaplığından matthews_corrcoef() işlevini kullanarak bu özel senaryo için MM’nin nasıl hesaplanacağını gösterir.

Örnek: Python’da Matthews Korelasyon Katsayısını Hesaplamak

Aşağıdaki kod, bir dizi tahmin edilen sınıf ve bir dizi gerçek sınıf tanımlanacağını ve ardından Python’da bir modelin Matthews korelasyon katsayısının nasıl hesaplanacağını gösterir:

 import numpy as np
from sklearn. metrics import matthews_corrcoef

#define array of actual classes
actual = np. repeat ([1, 0], repeats=[20, 380])

#define array of predicted classes
pred = np. repeat ([1, 0, 1, 0], repeats=[15, 5, 5, 375])

#calculate Matthews correlation coefficient
matthews_corrcoef(actual, pred)

0.7368421052631579

MM 0,7368’dir . Bu, daha önce manuel olarak hesapladığımız değerle eşleşiyor.

Not : matthews_corrcoef() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde Python’da sınıflandırma modelleri için diğer ortak ölçümlerin nasıl hesaplanacağı açıklanmaktadır:

Python’da Lojistik Regresyona Giriş
Python’da F1 puanı nasıl hesaplanır
Python’da dengeli hassasiyet nasıl hesaplanır

Yorum ekle

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