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