머신 러닝(특히 분류 모델)에서 모델 성능을 측정할 때, 가장 기본이 되면서도 중요한 개념이 정밀도(precision), 재현율(recall), 그리고 이 둘의 조화평균인 F1 스코어(F1-score)입니다. 이들은 모델이 긍정 클래스(positive class, 예: ‘스팸 메일’, ‘암 환자’ 등)를 얼마나 올바르게 분류하는지를 평가할 때 주로 쓰입니다. 아래에서는 이진 분류(positive vs. negative)를 중심으로 살펴본 뒤, 다중 클래스 상황으로 확장하는 개념도 함께 언급하겠습니다.
1. 전제: 혼동행렬(Confusion Matrix)
이진 분류에서 (예측값 vs. 실제값)에 따른 결과를 표로 정리한 것을 혼동행렬이라고 합니다.
| 실제 Positive | 실제 Negative |
|---|
| 예측 Positive | TP | FP |
| 예측 Negative | FN | TN |
- TP (True Positive): 실제 Positive를 Positive로 예측
- FP (False Positive): 실제 Negative를 Positive로 예측 (오탐)
- FN (False Negative): 실제 Positive를 Negative로 예측 (미탐)
- TN (True Negative): 실제 Negative를 Negative로 예측
2. 정밀도 (Precision)
Precision=TP+FPTP
- 정의: “모델이 Positive라고 예측한 것 중에서 실제로도 Positive인 비율”
- 해석:
- 거짓 양성(FP)을 얼마나 줄였는가에 대한 지표.
- 정밀도가 높다는 것은, Positive라고 예측하기만 하면 실제로 그럴 확률이 높다는 의미.
- 예: 스팸 필터에서 정밀도가 높으면, “스팸이라고 분류된 이메일 중 실제 스팸이 아닌 경우(오진)가 적다”는 뜻.
- 중요성:
- FP가 치명적인 문제일 때 중요. 예: 결제 사기 탐지에서 “정상 거래”를 오탐(FP)하는 것은 사용자 불편을 초래하므로, 정밀도를 높이는 것이 관건.
3. 재현율 (Recall)
Recall=TP+FNTP
- 정의: “실제로 Positive인 것 중에서 모델이 Positive라고 잘 찾아낸 비율”
- 해석:
- 거짓 음성(FN)을 얼마나 줄였는가를 보는 지표.
- 재현율이 높다는 것은, 실제 Positive를 놓치지 않고 잘 잡아낸다는 의미.
- 예: 암 진단 모델에서 재현율이 높으면, “진짜 암 환자를 음성으로 잘못 예측(FN)하는 비율이 낮다”는 뜻.
- 중요성:
- FN이 치명적인 문제일 때 중요. 예: 의료 진단에서 “암을 놓치는(FN) 것”이 매우 위험하므로, 재현율을 높이려 노력함.
4. F1 스코어 (F1-score)
F1=2×Precision+RecallPrecision×Recall
- 정의: 정밀도와 재현율의 조화평균(Harmonic Mean).
- 해석:
- precision과 recall 사이의 균형을 보는 지표.
- 둘 중 어느 하나만 높고 다른 하나가 너무 낮으면 F1이 낮아진다.
- 정밀도와 재현율 중 어느 것도 극단적으로 희생하지 않게끔 관리할 때 중요한 지표.
- 장점:
- 데이터 불균형(Positive, Negative 클래스 수가 큰 차이가 있을 때) 상황에서 accuracy보다 모델 성능을 더 의미있게 평가할 수 있음.
- 예: 암 환자가 매우 드문 상황에서, 암 환자를 놓치면 안 되지만(Recall 중요), 그렇다고 일반인을 암 환자로 잘못 예측하는(FP) 횟수도 최소화해야(Precision 중요) 하는 경우, F1이 유용.
5. 다중 클래스 확장
5.1 각 클래스별로 이진 분류 관점 정의
- 다중 클래스(예: A, B, C)가 있으면, 각 클래스별로 “해당 클래스를 Positive vs. 나머지를 Negative”로 보는 이진 분류 관점을 적용할 수 있습니다.
- 그 결과, 각 클래스마다 TP, FP, FN을 구한 뒤, precision, recall, F1을 구합니다.
5.2 Micro, Macro, Weighted average
- 여러 클래스의 지표를 단일 숫자로 요약하고 싶다면, 일반적으로 micro avg, macro avg, weighted avg 등의 방식을 사용합니다.
- Micro avg: 모든 클래스의 TP, FP, FN을 합쳐서 정밀도와 재현율을 계산한 뒤, F1을 구함.
- Macro avg: 각 클래스별 F1을 구하고, 단순 평균(K1∑k=1KF1k).
- Weighted avg: 각 클래스별 F1을 구한 뒤, “클래스 샘플 수 비중”으로 가중 평균.
6. 활용 & 예시
-
스팸 필터(Email spam detection)
- FP(정상 메일을 스팸으로 분류)는 사용자 불편이 크지만, FN(스팸을 놓치는 것)은 광고성 메일 정도로 위험은 덜할 수 있다.
- → Precision이 중요한 경우.
-
의료 진단(암 진단 등)
- FN(암 환자를 놓치는 것)이 매우 치명적. 재검진 기회를 놓치면 환자가 위험해짐.
- → Recall이 중요한 경우.
-
사기 거래 탐지
- FP(정상 거래를 사기로 잘못 분류)가 너무 많으면 사용자 불편 커짐.
- FN(사기 거래를 놓치면) 회사에 직접적 금전적 손실.
- → Precision과 Recall 둘 다가 중요해 F1 스코어를 보면서 균형을 맞춰야 함.
7. 요약
- Precision: 예측을 Positive라고 한 것 중 진짜 Positive 비율
- Recall: 실제 Positive 중 모델이 Positive라고 잘 찾아낸 비율
- F1-score: Precision과 Recall의 조화평균, 균형을 중시하는 지표
- Precision을 올리려면 FP를 줄이되, 대신 FN이 늘어날 수도 있음(Recall 감소 위험).
- Recall을 올리려면 FN을 줄이되, 대신 FP가 늘어날 수도 있음(Precision 감소 위험).
- F1-score는 둘 사이의 Trade-off를 균형있게 관리하는 데 도움.
결국, 문제 상황(도메인)과 오류 유형(FP vs. FN) 비용을 얼마나 중요하게 보느냐에 따라, precision, recall 중 어느 쪽에 더 집중할지를 결정하고, F1 스코어를 통해 전체적인 균형을 확인하는 식으로 모델을 평가하는 것이 일반적입니다.