혼동 행렬과 분류 지표 (Confusion Matrix & Classification Metrics)
핵심 요약: 혼동 행렬(Confusion Matrix)은 모델의 “성적표”다. 예측 결과를 TP/FP/TN/FN 네 칸으로 나누고, 이 네 칸에서 정밀도(Precision), 재현율(Recall), F1-Score 등 모든 분류 지표가 파생된다. 시험 점수만 보면 어떤 문제를 틀렸는지 모르듯, 정확도(Accuracy)만 보면 모델이 어떤 실수를 하는지 알 수 없다.
분류 모델의 성능을 평가하려면 “얼마나 맞혔는가”를 넘어, 어떤 종류의 실수를 얼마나 했는가를 이해해야 한다. 혼동 행렬(Confusion Matrix)은 모든 분류 지표의 출발점이며, 이 행렬의 네 칸에서 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1-Score, MCC 등 핵심 지표가 파생된다.
이 문서에서는 혼동 행렬의 구조를 먼저 설명한 뒤, 각 분류 지표의 수학적 정의, 직관적 해석, 그리고 실전에서의 사용 지침을 다룬다.
탄생 배경
섹션 제목: “탄생 배경”1990년대 의료 진단(Medical Diagnosis) 분야에서는 “정확도 90%“라는 수치가 자주 보고되었지만, 실제 임상 현장에서는 이 숫자가 거의 쓸모없는 경우가 많았다. 예를 들어, 희귀 질환의 유병률이 1%인 상황에서 “모든 환자를 정상이라고 진단”하면 정확도는 99%에 달한다. 하지만 실제 환자는 단 한 명도 발견하지 못한다. 이 문제를 정확도 역설(Accuracy Paradox, 정확도가 높은데 실제로는 쓸모없는 현상)이라 부른다. 의료 연구자들은 “얼마나 맞혔는가”가 아니라 “어떤 종류의 실수를 했는가”를 구분해야 한다는 사실을 깨달았고, 이로부터 혼동 행렬(Confusion Matrix)이 분류 평가의 표준 도구로 자리잡게 되었다. 민감도(Sensitivity)와 특이도(Specificity)라는 용어가 의학에서 먼저 정립된 것도 이런 맥락이다. 이후 정보 검색(Information Retrieval), 사기 탐지(Fraud Detection) 등 다양한 분야로 확산되면서, 정밀도(Precision), 재현율(Recall), F1-Score 등 파생 지표가 체계적으로 정리되었다.
핵심 개념
섹션 제목: “핵심 개념”1. 혼동 행렬 (Confusion Matrix)
섹션 제목: “1. 혼동 행렬 (Confusion Matrix)”이진 분류에서 모델의 예측 결과는 네 가지 범주로 나뉜다.
| 예측: 양성 (Predicted Positive) | 예측: 음성 (Predicted Negative) | |
|---|---|---|
| 실제: 양성 (Actual Positive) | TP (True Positive) | FN (False Negative) |
| 실제: 음성 (Actual Negative) | FP (False Positive) | TN (True Negative) |
- TP (True Positive, 진양성): 실제 양성을 양성으로 올바르게 예측
- FP (False Positive, 위양성 — Type I Error, 제1종 오류): 실제 음성을 양성으로 잘못 예측 — “거짓 경보”
- FN (False Negative, 위음성 — Type II Error, 제2종 오류): 실제 양성을 음성으로 잘못 예측 — “놓침”
- TN (True Negative, 진음성): 실제 음성을 음성으로 올바르게 예측
숫자로 이해하기
섹션 제목: “숫자로 이해하기”병원에서 100명의 환자를 검사한다고 하자. 실제 양성(질병 있음)은 30명, 음성(건강)은 70명이다.
모델이 40명을 “양성”으로 예측했다. 결과를 분석하면:
예측: 양성 예측: 음성 실제: 양성 (30명) TP = 25 FN = 5 실제: 음성 (70명) FP = 15 TN = 55
- Precision = TP / (TP + FP) = 25 / 40 = 62.5% → “양성이라고 한 40명 중 25명만 진짜 양성”
- Recall = TP / (TP + FN) = 25 / 30 = 83.3% → “실제 양성 30명 중 25명을 찾아냄”
- Accuracy = (TP + TN) / 전체 = 80 / 100 = 80%
- F1-Score = 2 x 62.5% x 83.3% / (62.5% + 83.3%) = 71.4%
2. 다중 클래스 확장 (Multi-class Extension)
섹션 제목: “2. 다중 클래스 확장 (Multi-class Extension)”개 클래스가 있을 때, 혼동 행렬은 크기가 된다. 행은 실제 클래스, 열은 예측 클래스를 나타낸다.
평균 방식 (Averaging Methods):
| 방식 | 설명 | 특징 |
|---|---|---|
| Micro | 모든 클래스의 TP, FP, FN을 합산 후 지표 계산 | 다수 클래스에 유리 |
| Macro | 클래스별 지표를 각각 계산 후 단순 평균 | 모든 클래스를 동등하게 취급 |
| Weighted | 클래스별 지표를 계산 후 클래스 크기(support)로 가중 평균 | Micro와 Macro의 절충 |
| Samples | 샘플별로 지표를 계산 후 평균 (다중 라벨용) | Multi-label 문제에서 사용 |
상세 내용: 핵심 분류 지표
섹션 제목: “상세 내용: 핵심 분류 지표”정확도 (Accuracy)
섹션 제목: “정확도 (Accuracy)”
전체 샘플 중 올바르게 분류한 비율이다. 가장 직관적이지만, 불균형 데이터에서는 매우 위험한 지표다.
정확도 역설 (Accuracy Paradox): 양성:음성 = 1:99인 데이터에서, “모두 음성”으로 예측하면 99% 정확도를 달성한다. 이 모델은 아무런 분류 능력이 없지만 정확도는 높다.
균형 정확도 (Balanced Accuracy):
각 클래스의 정확도를 평균하여 불균형에 강건하다.
정밀도 (Precision / Positive Predictive Value)
섹션 제목: “정밀도 (Precision / Positive Predictive Value)”
“양성이라고 예측한 것 중에서, 실제로 양성인 비율은?” 비유하자면, Precision은 검사(Prosecutor)의 관점이다 — “내가 체포한 사람 중에서 진범이 몇 명인가?”를 묻는 것과 같다.
정밀도가 중요한 경우: 거짓 경보(FP)의 비용이 높을 때
- 스팸 필터: 정상 메일을 스팸으로 분류하면 중요한 메일을 잃음
- 법적 판단: 무고한 사람을 유죄로 판단하는 비용
재현율 / 민감도 (Recall / Sensitivity / True Positive Rate)
섹션 제목: “재현율 / 민감도 (Recall / Sensitivity / True Positive Rate)”
“실제 양성 중에서, 얼마나 많이 잡아냈는가?” 반대로 Recall은 경찰(Police)의 관점이다 — “세상에 있는 전체 범인 중에서 우리가 실제로 체포한 비율이 얼마인가?”를 묻는 것이다.
재현율이 중요한 경우: 놓침(FN)의 비용이 높을 때
- 암 검진: 암 환자를 놓치면 치료 기회를 잃음
- 사기 탐지: 사기 거래를 놓치면 금전적 피해 발생
용어 정리: Sensitivity = Recall = TPR — 모두 같은 개념이지만, 의학에서는 민감도(Sensitivity), ML에서는 재현율(Recall), 통계에서는 TPR이라 부른다.
특이도 (Specificity / True Negative Rate)
섹션 제목: “특이도 (Specificity / True Negative Rate)”
“실제 음성 중에서, 얼마나 올바르게 음성으로 판단했는가?”
위양성률(FPR)과의 관계:
특이도는 주로 의학/임상 맥락에서 사용되며, ROC 곡선의 x축은 , 즉 FPR이다.
음성예측도 (Negative Predictive Value, NPV)
섹션 제목: “음성예측도 (Negative Predictive Value, NPV)”
“음성이라고 예측한 것 중에서, 실제로 음성인 비율은?”
중요: PPV(= Precision)와 NPV는 유병률(Prevalence)에 크게 의존한다. 반면, Sensitivity와 Specificity는 유병률에 독립적이다. 이는 베이즈 정리(Bayes’ Theorem)로 설명된다.
F1-Score
섹션 제목: “F1-Score”
정밀도와 재현율의 조화 평균(Harmonic Mean, 두 값의 역수 평균의 역수)이다. 산술 평균 대신 조화 평균을 사용하는 이유는 둘 중 하나가 극단적으로 낮을 때 이를 더 강하게 반영하기 위함이다.
일반화 — Score:
- (예: ): 정밀도에 더 큰 가중치
- (예: ): 재현율에 더 큰 가중치
- : 정밀도와 재현율을 동등하게 취급 →
Matthews Correlation Coefficient (MCC)
섹션 제목: “Matthews Correlation Coefficient (MCC)”
- 범위:
- : 완벽한 예측
- : 랜덤 수준
- : 완벽하게 반대로 예측
- 장점: 혼동 행렬의 네 칸 모두를 사용하므로, 불균형 데이터에서도 신뢰할 수 있다
- 피어슨 상관계수(Phi coefficient)와 동일하며, 카이제곱 통계량과도 관계가 있다
Cohen’s Kappa ()
섹션 제목: “Cohen’s Kappa (κ\kappaκ)”
- : 관측된 일치율 (Observed agreement) = Accuracy
- : 우연에 의한 기대 일치율 (Expected agreement by chance)
해석 기준 (Landis & Koch):
| 값 | 해석 |
|---|---|
| < 0 | 우연보다 못함 |
| 0.00 – 0.20 | 약간의 일치 (Slight) |
| 0.21 – 0.40 | 보통의 일치 (Fair) |
| 0.41 – 0.60 | 중간 수준의 일치 (Moderate) |
| 0.61 – 0.80 | 상당한 일치 (Substantial) |
| 0.81 – 1.00 | 거의 완벽한 일치 (Almost perfect) |
랜덤 기준선(chance baseline)과의 비교가 필요할 때, 또는 평가자 간 일치도(inter-rater reliability)를 측정할 때 유용하다.
지표 비교 요약표
섹션 제목: “지표 비교 요약표”| 지표 | 수식 핵심 | 초점 | 불균형 데이터 | TN 사용 |
|---|---|---|---|---|
| Accuracy | 전체 정확성 | 취약 | O | |
| Precision | 양성 예측의 신뢰성 | 보통 | X | |
| Recall | 양성 탐지율 | 보통 | X | |
| F1-Score | 조화평균(P, R) | P-R 균형 | 보통 | X |
| MCC | 4칸 모두 활용 | 전체 상관성 | 강건 | O |
| Cohen’s | 우연 보정 | 우연 대비 성능 | 강건 | O |
언제 사용하는가
섹션 제목: “언제 사용하는가”
실전 예시:
| 문제 | 우선 지표 | 이유 |
|---|---|---|
| 스팸 탐지 | Precision 우선 | 정상 메일을 스팸으로 오분류하면 안 됨 |
| 암 검진 | Recall 우선 | 환자를 놓치면 안 됨 |
| 사기 탐지 | F2 또는 Recall | 사기를 놓치는 비용 > 오탐 비용, 하지만 심한 불균형 |
| 제조 불량 | 도메인별 비용함수 | 불량 유형과 비용에 따라 임계값 설정 |
실전 사례
섹션 제목: “실전 사례”한 핀테크(Fintech) 스타트업이 신용카드 사기 탐지(Fraud Detection) 모델을 배포했다. 전체 거래 100만 건 중 사기는 약 1,000건(0.1%)이었고, 모델의 정확도(Accuracy)는 99.8%에 달했다. 경영진은 만족했지만, 실제로 모델은 사기 거래의 70%를 놓치고 있었다 — Recall이 겨우 0.30이었다. 더 심각한 문제는 양성으로 예측한 3,200건 중 실제 사기는 300건뿐이어서 Precision도 0.094에 불과했다는 점이다. 즉, 사기라고 경고한 건의 90% 이상이 오탐(False Positive)이었다. 정확도 99.8%라는 숫자는 “모든 거래를 정상이라고 예측”하는 것(정확도 99.9%)과 거의 차이가 없었던 셈이다. 이 팀은 결국 Precision-Recall 기반 평가로 전환하고, Score를 주 지표로 채택한 뒤에야 실질적인 성능 개선을 이뤄냈다.
흔한 오해와 함정
섹션 제목: “흔한 오해와 함정”- “정확도가 높으면 좋은 모델이다” — 불균형 데이터에서는 정확도가 무의미할 수 있다 (정확도 역설)
- “정밀도가 높으면 재현율도 높다” — 정밀도와 재현율은 대체로 트레이드오프 관계다. 자세한 내용은 정밀도-재현율 트레이드오프 참조
- “F1이 항상 최선의 균형 지표다” — F1은 TN을 무시한다. 불균형 데이터에서는 MCC가 더 신뢰할 만하다
- “훈련 데이터에서 계산한 지표로 모델을 평가할 수 있다” — 훈련 데이터 성능은 과적합을 반영할 수 있어 무의미하다. 교차 검증을 사용해야 한다
- “PPV/NPV는 항상 안정적이다” — PPV와 NPV는 유병률에 따라 크게 변한다. Sensitivity/Specificity는 유병률에 독립적이다
- “F1은 P = R = 0일 때도 정의된다” — 양성 예측이 하나도 없고 실제 양성도 없으면 F1은 정의되지 않는다 (0/0)
다른 주제와의 연결
섹션 제목: “다른 주제와의 연결”- 정밀도-재현율 트레이드오프: 임계값 변화에 따른 Precision-Recall 관계와 PR 곡선
- ROC와 AUC: TPR(= Recall)과 FPR(= 1 - Specificity)을 사용한 또 다른 성능 시각화
- 교차 검증: 지표를 신뢰할 수 있게 추정하는 방법
- 편향-분산 트레이드오프: 모델 복잡도와 오류의 근본적 관계
- 공정성 지표: 그룹별로 분류 지표가 어떻게 달라지는지 분석
- 보정: 분류 확률의 신뢰성 — AUC가 높아도 보정이 나쁠 수 있다