R에서 matthews 상관 계수를 계산하는 방법


MCC( Matthews Correlation Coefficient )는 분류 모델 의 성능을 평가하는 데 사용할 수 있는 측정항목입니다.

다음과 같이 계산됩니다.

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

금:

  • TP : 참양성의 수
  • TN : 참음성의 수
  • FP : 오탐지 수
  • FN : 위음성의 수

이 측정항목은 두 클래스의 균형이 맞지 않을 때, 즉 한 클래스가 다른 클래스보다 훨씬 더 많이 나타날 때 특히 유용합니다.

MCC의 값은 -1과 1 사이입니다. 여기서:

  • -1은 예측 클래스와 실제 클래스 간의 총 불일치를 나타냅니다.
  • 0은 완전히 무작위 추측을 의미합니다.
  • 1은 예측 클래스와 실제 클래스가 완전히 일치함을 나타냅니다.

예를 들어, 스포츠 분석가가 로지스틱 회귀 모델을 사용하여 400명의 대학 농구 선수가 NBA에 선발될지 여부를 예측한다고 가정해 보겠습니다.

다음 혼동 행렬은 모델의 예측을 요약합니다.

모델의 MCC를 계산하려면 다음 공식을 사용할 수 있습니다.

  • MCC = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)
  • MCC = (15*375-5*5) / √ (15+5)(15+5)(375+5)(375+5)
  • MCC = 0.7368

Matthews 상관계수는 0.7368 로 나타났습니다.

이 값은 다소 1에 가까우며, 이는 모델이 선수의 드래프트 여부를 적절하게 예측하고 있음을 나타냅니다.

다음 예에서는 R의 mltools 패키지에 있는 mcc() 함수를 사용하여 이 특정 시나리오에 대한 MCC를 계산하는 방법을 보여줍니다.

예: R에서 Matthews 상관 계수 계산

다음 코드는 예측 클래스의 벡터와 실제 클래스의 벡터를 정의한 다음 mltools 패키지의 mcc() 함수를 사용하여 Matthews 상관 계수를 계산하는 방법을 보여줍니다.

 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

매튜스 상관계수는 0.7368 입니다.

이는 이전에 수동으로 계산한 값과 일치합니다.

혼동 행렬에 대한 Matthews 상관 계수를 계산하려면 다음과 같이 ConfusionM 인수를 사용할 수 있습니다.

 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

다시 매튜스 상관계수는 0.7368입니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 로지스틱 회귀를 수행하는 방법
ggplot2를 사용하여 ROC 곡선을 그리는 방법
R에서 F1 점수를 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다