혼동 행렬(Confusion Matrix)
- 모델이 내놓은 예측 결과가 실제 정답과 얼마나 일치하는지를 한눈에 보여주는 표.
- 단순히 "정확도가 높다"라고 말하는 것보다, 어떤 종류의 오류를 범하고 있는지를 파악하는 데 핵심적인 역할.\
1. 용어의 구성 원리
각 용어는 [예측의 결과] + [예측한 클래스]의 조합으로 이루어져 있습니다.
- True/False: 예측이 맞았으면 True, 틀렸으면 False
- Positive/Negative: 모델이 예측한 값이 긍정(Positive)인지 부정(Negative)인지

| 구분 | 설명 | 실제 상황 예시 (암 진단) |
| TP (True Positive) | 실제 Positive를 Positive라고 맞게 예측한 경우 | 암 환자에게 암이라고 정확히 진단함 |
| TN (True Negative) | 실제 Negative를 Negative라고 맞게 예측한 경우 | 건강한 사람에게 건강하다고 정확히 진단함 |
| FP (False Positive) | 실제 Negative인데 Positive라고 틀리게 예측한 경우 | 건강한 사람에게 암이라고 오진함 (1종 오류) |
| FN (False Negative) | 실제 Positive인데 Negative라고 틀리게 예측한 경우 | 암 환자에게 건강하다고 오진함 (2종 오류) |
📈 혼동 행렬을 활용한 모델 성능 평가지표
혼동 행렬의 네 가지 요소($TP, TN, FP, FN$)를 조합하면 모델의 성능을 다각도로 분석할 수 있다.
1. 정확도 (Accuracy)
가장 직관적인 지표로, 전체 데이터 중 모델이 정답(Positive와 Negative 모두)을 맞춘 비율입니다.
Accuracy = {TP + TN} / {TP + TN + FP + FN}
- 특징: 데이터의 클래스 분포가 균형 잡혀 있을 때 유용.
- 주의: Positive와 Negative의 비율이 극단적으로 차이 날 경우(예: 암 환자 1%, 건강한 사람 99%), 모델이 무조건 '건강하다'고만 해도 정확도가 99%가 나오는 정확도의 함정에 빠질 수 있다.
2. 정밀도 (Precision)
모델이 Positive라고 예측한 것들 중에서, 실제로 Positive인 데이터의 비율.
Precision = {TP} / {TP + FP}
- 핵심: "모델이 맞다고 한 것 중 진짜는 얼마인가?"
- 중요한 경우: 스팸 메일 분류. (스팸이라고 예측해서 차단했는데, 알고 보니 중요한 업무 메일(FP)이면 곤란하기 때문.)
3. 재현율 (Recall / Sensitivity)
실제 Positive인 데이터 중에서, 모델이 Positive라고 올바르게 찾아낸 비율.
Recall = {TP} / {TP + FN}
- 핵심: "놓치지 않고 얼마나 잘 찾아냈는가?"
- 중요한 경우: 암 진단, 금융 사기 탐지. (실제 환자를 건강하다고 오진(FN)하여 치료 기회를 놓치는 것이 치명적이기 때문.)
4. F1-Score
정밀도와 재현율의 조화 평균. 두 지표가 어느 한쪽으로 치우치지 않고 균형을 이룰 때 높은 값을 가짐.
F1 = 2 x {Precision x Recall} / {Precision + Recall}
- 특징: 데이터 라벨 불균형(Imbalanced Data)이 심할 때 모델의 성능을 가장 객관적으로 나타내는 지표.
'내일배움캠프' 카테고리의 다른 글
| [내일배움캠프] TIL 35일차 26.02.25(수) (0) | 2026.02.25 |
|---|---|
| [내일배움캠프] TIL 34일차 26.02.24(화) (0) | 2026.02.24 |
| [내일배움캠프] TIL 32일차 26.02.19(목) (0) | 2026.02.19 |
| [내일배움캠프] TIL 31일차 26.02.13(금) (0) | 2026.02.13 |
| [내일배움캠프] TIL 31일차 26.02.12(목) (0) | 2026.02.12 |