본문 바로가기
데이터 분석

분류 모델 성능 평가 - Confusion Matrix 쉬운 설명, threshold, cut-off

by Data Lib 2023. 10. 20.

이번 포스팅에서는 앞에서 배운 Confusion Matrix에 대해 정리하는 차원에서 Case Study를 해보겠습니다. 우선 생각해 볼 문제가 있습니다. 

 

 

95%가 정상이고 5%만이 병에 걸린다고 할때 모델이 무조건 정상이라고 예측하면 95% 정확도가 나옵니다.
과연 제대로된 평가일까요? 우리는 실제 병이 걸릴 확률을 예측하는것이 더 중요합니다. 단지 Accuracy 만으로 평가 할 업무라는 것을 알 수 있습니다.
 

문제

10명의 환자중 심근경색을 예측하였습니다.
Recall, Precision, Accuracy은 어떻게 구할까요?
 

Confusion Matrix
Confusion Matrix 설명

정답과 설명

Recall은 실제 신근경색에 걸린 사람을 맞다고 예측한 비율이니까 실제로 걸린사람 4명 중 예측까지 맞은 경우는 빨간색 점선으로 표시한 1명입니다. 

  • 1/4 = Recall = (TP(1))/(TP(1)+FN(3))

Precision은 예측 데이터를 기준으로 맞다고 예측한 3명 중 맞게 예측한 빨간색 점선으로 표시한 1명 입니다. 

  • 1/3 = Precision = (TP(1))/(TP(1)+FP(2))

Accuracy는 전체 데이터 중에 맞게 예측한 비율이니까 아래 빨간색 O 입니다. 10개 중에 5개 입니다. 

  • 5/10 = Accuracy = (TP(1)+TN(4))/(TP(1)+TN(4)+FN(3)+FP(2))

Threshold(=Cut-off) 

이진 분류는 Output은 확률(probability)로 표현하면 0.0 ~ 1.0로 나타납니다. 여기서 조금이라도 의심되면, 그냥 무조건 1 이라고 예측해라고 Threshold를 줄수가 있습니다. 예를 들어, ‘암진단’ 과 같이 찾아내지 못했을 때 더 큰 리스크가 있는 경우 설정은 threshold를 0.3, 0.4로 낮게 설정할 수 있습니다. 

 

반대로, 완벽하게 확신이 있는거 아니면, ‘1이라고 예측하지마’라고 할 수도 있습니다. 성공 범주 비중이 높을 때 설정하며 흔한 case는 아닙니다. threshold를 0.7, 0.8로 높게 설정할 수 있습니다. 

  • TP = positive로 예측했는데, 정답인 샘플 (녹색)
  • FN = negative로 예측했는데, 틀린 샘플 (파란색)
  • FP = positive로 예측했는데, 틀린 샘플 (주황색)

혼동행렬 theshold 설정
혼동행렬 theshold 설정

Threshold를 0.5에서 0.1로 낮췄을때 Recall과 Precision을 변화 그래프는 아래와 같습니다. Threshold를 낮출수록 Recall은 높아져 0.3부터 100%가 되버립니다. 하지만 Precision은 0.3일때 최고점인 66%를 기점으로 점점 낮아집니다. 이렇게 두 지표는 서로 연관성이 있습니다. 그래프로 확인할 수 있듯이 최적의 Threshold는 Recall과 Precision이 모두 높은 0.3이 되겠습니다.
 

Recall과 Precision의 Threshold 설정
Recall과 Precision의 Threshold 설정