토리의 데굴데굴 공부일기

분류모델 평가산식 정리(Accuracy, Precision, Recall, F1-score) 본문

ML DL

분류모델 평가산식 정리(Accuracy, Precision, Recall, F1-score)

도토오오리 2023. 6. 29. 21:01

분류모델을 평가하기 위해서는 TP, TN, FP, FN의 개념을 이해해야 한다. 

  • TP(True Positive): 실제로 Positive인 정답을 Positive라고 예측
  • TN(True Negative): 실제로 Negative인 정답을 Negative라고 예측
  • FP(False Positive): 실제로는 Negative인 정답을 Positive라고 예측
  • FN(False Negative): 실제로는 Positive인 정답을 Negative라고 예측

이러한 행렬을 Confusion Matrix(오차 행렬, 혼동 행렬)이라고 한다. 

 

 

1. Accuracy(정확도)

전체 예측 건수에서 정답을 맞힌 건수의 비율 

특징

  • 가장 직관적으로 모델의 성능을 나타낼 수 있는 평가지표
  • domain의 편중(bias)의 문제가 발생할 수 있음
  • 예를 들어, 더운 지역에 눈이오는 날 수를 예측한다고 할 때, 모두 '오지 않는다'라고만 분류기를 만들어도 분류기는 상당히 높은 정확도를 보임. 이처럼 data 자체의 domain이 불균형할 경우 문제가 발생할 수 있다. 

 

이러한 상황에서 도움을 줄 수 있는 통계치가 바로 precision(정밀도)와 recall(재현율)이다. 

2. Precision(정밀도) / Recall(재현율)

 

Precision의 특징

  • Precision(정밀도)은 True라고 분류한 것들 중에서 실제로 True인 것의 비율
  • PPV(Positive Predictive Value) 즉 Positive 정답률이라고도 불림

Recall의 특징 

  • Recall(재현율)은 실제 True인 것 중에서 True라고 예측한 것의 비율
  • Sensitivity 혹은 Hit rate이라고도 불림

즉, Precision이나 Recall은 모두 모델이 True라고 예측한 것과 관련이 있으나, 관점이 다름. 

감기 예측 모델을 예로 들면 Accuracy는 전체 예측에 대해 얼마나 올바르게 예측했는지에 대한 지표이고, Precision은 얼마나 정확하게 감기라고 예측하는지에 대한 지표이며, Recall은 실제 감기인 사람에 대해서 얼마나 정확하게 감기라고 예측하는지에 대한 지표이다. 

Precision과 Recall은 상호보완적이기 때문에, Recall을 올리면 Precision이 내려가고, Precision을 올리면 Recall이 내려갈 수 밖에 없음.

이를 보완하려 생겨난 것이 Recall과 Precision의 조화평균인 F1 score이다. 

 

3. F1-score

:Recall과 Precision의 조화평균으로 모델을 평가한다.

0에서 1 사이의 값을 가지며 1에 가까울수록 좋다. 

특징 

  • 산술평균이 아니라 조화평균을 이용하는 이유는 두 지표(Precision, Recall)를 모두 균형있게 반영하기 위함
  • Accuracy와 달리 클래스 데이터가 불균형할 때도 사용하기 좋음

 

3-1. Macro-F1

: 클래스별/ 레이블별 F1-score의 평균

 

특징

  • Macro-F1 역시 0과 1 사이의 값을 가지며 1에 가까울수록 좋음
  • Macro-F1의 경우 모든 class의 값에 동등한 중요성을 부여한다. 즉, 비교즉 적은 클래스(rare classes)에서 성능이 좋지 않다면, Macro-F1의 값은 낮게 나타날 것임.
  • Macro-F1은 먼저 class와 label의 각각 F1-score를 계산한 뒤 평균을 내는 방식으로 작동함.
  • 이외에도 많은 F1 기반 평가산식이 존재하며, python 패키지의 sklearn.metrics.f1_score🔗를 통해 ‘micro’, ‘macro’, ‘samples’,’weighted’, ‘binary’ f1-score를 계산할 수 있다. 

 

 

 

 

 

 

참고한 글들 

https://dacon.io/en/forum/405817

 

[BASIC] 대회에서 자주 사용되는 평가산식들에 대한 정리✏️ (2) 분류모델 평가산식

 

dacon.io

 

http://www.gisdeveloper.co.kr/?p=8146 

 

Accuracy, Precision, Recall – GIS Developer

어떤 문제가 True, False인지를 예측할 때, 얼마나 정확하게 예측하는지의 척도로써 사용되는 3가지입니다. 먼저 Accuracy는 다음과 같습니다. 다음은 Precision입니다. 다음은 Recall입니다. 위의 공식에

www.gisdeveloper.co.kr