본문 바로가기
AI

정확도, 정밀도, 재현율, F1 Score: 분류 모델 성능 지표의 이해

by markbyun 2025. 5. 6.

머신러닝 또는 딥러닝 모델을 개발할 때 가장 기본적으로 요구되는 요소는 해당 모델이 실제 문제를 얼마나 잘 해결하는가입니다. 하지만 "정확하다"는 것을 수치로 표현하려면 적절한 성능 측정 지표가 필요합니다. 단순한 정확도(Accuracy)만으로는 모델의 성능을 판단하기 어려운 경우가 많습니다. 특히 클래스 불균형이 심한 데이터셋에서는 정확도가 높은데도 불구하고 실제로는 쓸모없는 모델일 수 있습니다.

예를 들어 암 환자 진단 모델을 만든다고 가정해봅시다. 전체 환자 중 99%가 건강한 경우, 모든 사람을 "건강함"이라고 예측해도 정확도는 99%입니다. 하지만 암 환자를 놓치는 심각한 문제를 내포하고 있죠. 이럴 때 정밀도(Precision), 재현율(Recall), F1 Score와 같은 지표들이 더 의미 있는 정보를 제공합니다.

1. 혼동 행렬(Confusion Matrix)의 이해

분류 모델의 성능 지표를 설명하기 전에 혼동 행렬의 개념을 이해해야 합니다. 이 행렬은 실제 클래스와 예측 클래스의 조합을 다음과 같이 정리합니다:

                    실제 Positive        실제 Negative
예측 Positive     TP(True Positive)   FP(False Positive)
예측 Negative     FN(False Negative)  TN(True Negative)

이 네 가지 지표를 바탕으로 다양한 성능 측정 지표가 정의됩니다.

2. 정확도 (Accuracy)

정의: 전체 예측 중 맞춘 비율
수식: $\frac{\textbf{(TP+TN)}}{\textbf{(TP+TN+FP+FN)}}$

정확도는 간단하고 직관적인 지표지만 클래스 불균형에서는 유효하지 않을 수 있습니다. 예를 들어 95%가 정상이고 5%가 이상인 경우, 전부 정상이라고 예측해도 정확도는 95%로 나타납니다.

3. 정밀도 (Precision)

정의: 모델이 Positive로 예측한 것 중 실제로 Positive인 비율
수식: $\frac{\textbf{(TP)}}{\textbf{(TP+FP)}}$

정밀도는 잘못된 Positive 예측(FP)을 얼마나 억제하는지를 보여줍니다. 스팸 필터링, 부정거래 탐지 등에서 정밀도가 중요합니다. 잘못된 알림을 최소화해야 할 때 사용됩니다.

예시: 스팸 메일 필터가 100개의 메일 중 20개를 스팸이라고 예측했는데, 그 중 실제로 스팸인 메일이 18개라면 정밀도는 18/20 = 90%입니다.

4. 재현율 (Recall, Sensitivity)

정의: 실제 Positive 중에서 모델이 얼마나 많이 Positive라고 예측했는가
수식: $\frac{\textbf{(TP)}}{\textbf{(TP+FN)}}$

재현율은 놓친 실제 Positive(FN)를 얼마나 줄였는지를 보여줍니다. 의료 진단, 결함 탐지 등에서 재현율이 중요합니다. 가능한 모든 문제를 탐지하고 싶을 때 사용합니다.

예시: 실제 암 환자가 50명인데 그 중 45명을 모델이 암으로 예측했다면 재현율은 45/50 = 90%입니다.

정밀도와 재현율

5. F1 Score

정의: 정밀도와 재현율의 조화 평균 (Harmonic Mean)
수식: $2*\frac{\textbf{(Precision*Recall)}}{\textbf{(Precision+Recall)}}$

F1 Score는 정밀도와 재현율 사이의 균형을 보여주는 지표로, 두 값이 모두 높을 때 F1 Score도 높습니다. 특히 정밀도와 재현율 중 어느 하나가 낮을 경우, F1 Score는 민감하게 반응합니다.

예시: 정밀도가 80%, 재현율이 60%이면 F1 Score는 약 68.6%입니다.

클래스 불균형 문제가 있는 경우, 예를 들어 Positive가 매우 적은 상황에서 Accuracy는 높은 반면 F1 Score는 낮게 나올 수 있으며, 이 경우 F1 Score가 모델 성능을 더 정확하게 평가합니다.

6. 클래스 불균형 문제와 지표 선택

클래스가 균형 잡혀 있다면 Accuracy, Precision, Recall, F1 Score 등 대부분의 지표가 유효하게 작동합니다. 하지만 클래스 비율이 95:5처럼 불균형한 경우에는 다음과 같은 이유로 F1 Score와 같은 지표가 더 적절합니다:

  • Accuracy는 다수 클래스를 위주로 예측해도 높게 나올 수 있습니다.
  • Precision만 높이면 놓치는 경우(FN)가 많아질 수 있습니다.
  • Recall만 높이면 불필요한 FP가 많아질 수 있습니다.
  • F1 Score는 Precision과 Recall의 균형을 요구하여 더 정밀한 성능 평가가 가능합니다.

7. 다중 클래스(Multi-class) 분류에서의 확장

다중 클래스 문제에서는 클래스마다 Precision, Recall, F1 Score를 계산하고 이를 평균(Macro, Micro, Weighted) 방식으로 통합합니다.

  • Macro 평균: 각 클래스의 성능을 동일하게 반영
  • Micro 평균: 전체 TP, FP, FN을 기반으로 평균
  • Weighted 평균: 각 클래스의 개수에 비례하여 평균

클래스마다 데이터 분포가 다르면 Weighted 평균이 현실적인 평가에 더 적합합니다.

8. 마무리 및 추천 참고자료

다양한 분류 문제에서 정밀도, 재현율, F1 Score 등의 지표는 단순한 정확도보다 훨씬 정교하게 모델 성능을 평가할 수 있도록 도와줍니다. 모델이 적용될 실제 환경과 문제의 특성에 따라 적절한 지표를 선택하는 것이 무엇보다 중요합니다.

추천 참고자료: