혼동행렬과 분류 평가지표
혼동행렬을 바탕으로 주요 분류 평가지표의 차이를 구분한다.
핵심 요약
혼동행렬은 실제 클래스와 예측 클래스를 교차해 분류 결과를 TP·FN·FP·TN으로 나눈다. 정확도·정밀도·재현율·특이도·F1은 같은 네 값에서 계산하지만, 분모와 강조하는 오류가 서로 다르다. 따라서 양성 클래스를 먼저 정하고 업무에서 FP와 FN 중 어느 오류가 더 비싼지 확인해야 한다.
클래스가 불균형하면 다수 클래스를 모두 맞히는 모형도 정확도가 높게 보일 수 있다. 이런 경우 혼동행렬, 클래스별 지표, 균형 정확도와 정밀도·재현율을 함께 본다. 다중분류에서는 각 클래스를 나머지와 구분해 지표를 계산한 뒤 macro·weighted·micro 평균 중 보고 목적에 맞는 방식을 명시해야 한다.
학습 목표
- TP·TN·FP·FN을 실제값과 예측값 기준으로 구분한다.
- 정확도·오류율·정밀도·재현율·특이도·F1·균형 정확도를 계산한다.
- 위양성률과 위음성률을 특이도·재현율과 연결한다.
- 클래스 불균형, 유병률과 임곗값이 지표에 미치는 영향을 해석한다.
- 다중분류의 macro·weighted·micro 평균을 구분한다.
- 오류 비용과 운영 목적에 맞는 평가 지표를 선택한다.
1. 혼동행렬의 구성
먼저 관심 대상을 양성 클래스로 정한다. 질병 검진에서는 질병 보유, 사기 탐지에서는 사기 거래, 이탈 예측에서는 이탈을 양성으로 둘 수 있다.
| 실제값 \ 예측값 | 양성 예측 | 음성 예측 |
|---|---|---|
| 실제 양성 | TP: 진양성 | FN: 위음성 |
| 실제 음성 | FP: 위양성 | TN: 진음성 |
- TP(True Positive): 실제 양성을 양성으로 맞힘
- FN(False Negative): 실제 양성을 음성으로 놓침
- FP(False Positive): 실제 음성을 양성으로 잘못 경고함
- TN(True Negative): 실제 음성을 음성으로 맞힘
True와 False는 예측의 정답 여부이고, Positive와 Negative는 예측한 클래스다. 따라서 FN은 실제 양성을 음성으로 예측한 경우다. 분석 도구마다 행과 열의 배치가 다를 수 있으므로 표의 위치를 암기하기보다 실제값과 예측값 라벨을 확인한다.
2. 주요 이진분류 평가지표
전체 건수를 다음과 같이 정의한다.
N = TP + TN + FP + FN
2.1 전체 정답과 오류
정확도(Accuracy) = (TP + TN) / N
오류율(Error rate) = (FP + FN) / N = 1 - 정확도
정확도는 전체 예측 중 맞힌 비율이고 오류율은 틀린 비율이다. 두 지표의 범위는 0~1이다. 클래스가 불균형하면 다수 클래스가 값을 지배할 수 있으므로 정확도만으로 소수 클래스 탐지 성능을 판단하지 않는다.
2.2 양성 예측과 실제 양성
정밀도(Precision) = TP / (TP + FP)
재현율(Recall) = 민감도(Sensitivity) = TP / (TP + FN)
정밀도는 양성이라고 예측한 사례 중 실제 양성의 비율이다. FP 비용이 큰 스팸 차단, 불필요한 조사와 알림을 줄여야 하는 상황에서 중요하다. 재현율은 실제 양성 중 찾아낸 비율이며, FN 비용이 큰 질병 선별·사기 탐지·위험 경보에서 중요하다.
2.3 실제 음성과 음성 예측
특이도(Specificity) = TN / (TN + FP)
음성예측도(NPV) = TN / (TN + FN)
특이도는 실제 음성 중 음성으로 맞힌 비율이다. 음성예측도는 음성이라고 예측한 사례 중 실제 음성의 비율이다. 특이도와 재현율은 실제 클래스별 분모를 사용하고, 정밀도와 음성예측도는 예측 클래스별 분모를 사용한다.
2.4 오류 방향 지표
위양성률(FPR) = FP / (FP + TN) = 1 - 특이도
위음성률(FNR) = FN / (FN + TP) = 1 - 재현율
FPR은 실제 음성 중 잘못 양성으로 경고한 비율이고, FNR은 실제 양성 중 놓친 비율이다. FPR은 ROC 곡선의 가로축에 사용된다.
2.5 F1과 균형 정확도
F1 = 2 × 정밀도 × 재현율 / (정밀도 + 재현율)
= 2TP / (2TP + FP + FN)
균형 정확도(Balanced accuracy) = (재현율 + 특이도) / 2
F1은 정밀도와 재현율의 조화평균이며 낮은 쪽의 영향을 크게 받는다. TN을 직접 사용하지 않으므로 음성 클래스 성능도 함께 평가해야 한다. 균형 정확도는 양성 클래스 재현율과 음성 클래스 재현율인 특이도를 같은 비중으로 평균해 클래스 불균형에서 다수 클래스의 영향이 과도해지는 문제를 줄인다.
2.6 분모가 0인 경계
| 상황 | 정의되지 않는 지표 | 해석 |
|---|---|---|
양성 예측이 한 건도 없음: TP+FP=0 | 정밀도 | 양성 예측의 정확성을 계산할 대상이 없음 |
실제 양성이 한 건도 없음: TP+FN=0 | 재현율 | 찾아야 할 양성 사례가 없음 |
실제 음성이 한 건도 없음: TN+FP=0 | 특이도 | 판별할 음성 사례가 없음 |
TP=FP=FN=0 | F1 | 정밀도·재현율 결합을 계산할 정보가 없음 |
수학적으로 정의되지 않는 값을 분석 도구가 0, NaN 또는 경고로 처리할 수 있다. 보고서에는 도구의 처리 규칙과 해당 클래스의 실제·예측 건수를 함께 기록한다.
3. 숫자로 계산하기
사기 거래 탐지 결과가 다음과 같다고 하자.
| 항목 | 건수 | 의미 |
|---|---|---|
| TP | 40 | 사기를 사기로 탐지 |
| FP | 20 | 정상 거래를 사기로 경고 |
| FN | 10 | 사기를 정상으로 놓침 |
| TN | 930 | 정상 거래를 정상으로 판정 |
| 합계 | 1,000 | 전체 거래 |
계산 결과는 다음과 같다.
- 정확도:
(40 + 930) / 1,000 = 0.970 - 오류율:
(20 + 10) / 1,000 = 0.030 - 정밀도:
40 / (40 + 20) = 0.667 - 재현율:
40 / (40 + 10) = 0.800 - 특이도:
930 / (930 + 20) = 0.979 - 음성예측도:
930 / (930 + 10) = 0.989 - 위양성률:
20 / (20 + 930) = 0.021 - 위음성률:
10 / (10 + 40) = 0.200 - F1:
80 / (80 + 20 + 10) = 0.727 - 균형 정확도:
(0.800 + 0.979) / 2 = 0.889
정확도는 97%지만 양성 예측 세 건 중 약 한 건은 정상 거래를 사기로 잘못 경고한 오경보에 해당한다. 동시에 실제 사기 50건 중 10건을 놓쳤다. 정확도 하나만으로 운영 가능성을 판단하지 않고 조사 인력, 누락 손실과 고객 불편을 함께 평가한다.
4. 클래스 불균형과 기준 비율
양성 비율이 2%인 데이터에서 모두 음성으로 예측하면 정확도는 98%다. 그러나 TP=0, 재현율은 0이며 양성을 한 건도 찾지 못한다. 이처럼 정확도는 다수 클래스의 정답 수에 가려 소수 클래스 실패를 숨길 수 있다.
정밀도와 음성예측도는 클래스의 기준 비율에 영향을 받는다. 민감도와 특이도가 같은 모형이라도 양성이 드문 환경에서는 FP가 TP보다 많아져 정밀도가 낮아질 수 있다. 서로 다른 기간·병원·지역의 정밀도를 비교할 때는 양성 비율과 표본 구성을 함께 확인한다.
불균형 데이터에서는 다음을 함께 본다.
- 원시 건수가 표시된 혼동행렬
- 양성과 음성의 클래스별 재현율
- 정밀도·재현율·F1
- 균형 정확도
- 실제 운영 임곗값에서의 양성 예측 건수와 오류 비용
5. 임곗값과 지표의 관계
확률을 출력하는 분류모형은 보통 임곗값 이상을 양성으로 판정한다. 같은 모형에서 임곗값을 낮추면 더 많은 사례가 양성으로 분류된다.
- TP가 늘어 재현율이 높아지거나 그대로일 수 있다.
- FP도 늘어 특이도가 낮아지거나 그대로일 수 있다.
- 정밀도·정확도·F1은 데이터 분포와 기존 임곗값에 따라 증가하거나 감소할 수 있다.
임곗값은 지표 하나를 최대로 만드는 숫자가 아니라 오류 비용, 처리 용량과 최소 품질 조건을 만족시키는 운영 결정이다. ROC·AUC는 여러 임곗값에서 재현율과 FPR의 관계를 요약하지만, 특정 임곗값의 정밀도와 실제 처리 건수는 별도로 확인한다.
6. 다중분류에서 지표를 평균하는 방법
다중분류에서는 각 클래스를 양성, 나머지를 음성으로 두는 일대다 방식으로 클래스별 정밀도·재현율·F1을 구할 수 있다. support는 해당 클래스의 실제 사례 수다.
| 평균 방식 | 계산 원리 | 해석과 주의점 |
|---|---|---|
| Macro | 클래스별 지표의 단순 평균 | 소수 클래스도 같은 비중, 클래스 불균형을 숨기지 않음 |
| Weighted | 클래스별 지표를 support로 가중 평균 | 전체 분포를 반영하지만 다수 클래스 영향이 큼 |
| Micro | 모든 클래스의 TP·FP·FN을 합쳐 한 번 계산 | 전체 사례 중심, 단일라벨 다중분류에서 모든 클래스를 포함하면 precision·recall·F1이 정확도와 같음 |
예를 들어 소수 클래스를 동일하게 중요하게 다루려면 macro F1을, 실제 클래스 분포 비중을 반영하려면 weighted F1을 검토한다. 평균 방식이 다른 두 점수는 그대로 비교하지 않는다.
7. 업무 목적에 따른 지표 선택
| 업무 목적 | 중점 지표 | 함께 확인할 항목 |
|---|---|---|
| 질병 선별에서 환자 누락 최소화 | 재현율·FNR | 정밀도, 후속 정밀검사 용량 |
| 스팸 차단에서 정상 메일 오차단 최소화 | 정밀도·특이도·FPR | 재현율, 사용자 복구 절차 |
| 사기 탐지 조사 대상 제한 | 정밀도와 상위 구간 재현율 | 조사 가능 건수, 건당 손실 |
| 불균형 이진분류에서 양·음성 균형 | 균형 정확도 | 혼동행렬, 정밀도·F1 |
| 정밀도와 재현율의 균형 | F1 | TN·특이도, 임곗값 |
| 불균형 다중분류에서 클래스 동등 평가 | Macro F1 | 클래스별 support, weighted F1 |
8. 사례 적용
상황: 병원은 1차 선별모형으로 고위험 환자를 골라 정밀검사를 권고한다.
주어진 조건: 질병 유병률은 2%이고, 놓친 환자의 피해가 불필요한 정밀검사 비용보다 크다. 하루 정밀검사 용량에는 제한이 있다.
판단 과정:
- 질병 보유를 양성 클래스로 고정한다.
- 건강한 사람을 모두 음성으로 예측하면 정확도가 높아질 수 있으므로 정확도만 사용하지 않는다.
- 환자 누락을 줄이기 위해 재현율과 FNR을 우선 확인한다.
- 임곗값을 너무 낮추면 FP가 늘어 검사 용량을 초과하므로 정밀도와 예상 양성 건수도 확인한다.
- 최소 재현율 조건을 만족하는 후보 가운데 검사 용량과 FP 비용이 허용되는 임곗값을 선택한다.
결론: 임곗값은 재현율 하나만 최대화하지 않고 환자 안전, 검사 용량과 오경보 비용을 함께 만족하도록 정한다.
오답 함정: 유병률이 2%라는 이유로 모두 음성으로 예측하면 정확도는 98%지만 환자를 한 명도 찾지 못한다.
행은 실제값, 열은 예측값이며 양성 클래스를 먼저 고정해야 TP·FP·FN·TN을 바꾸어 읽지 않는다. 이 예시에서 놓친 양성은 FN=4, 잘못 울린 양성 경보는 FP=8이다. 시험에서는 특히 FP와 FN의 위치 및 비용을 뒤바꾸는 오답이 자주 나온다.
총 표본 수를 $N=TP+FP+FN+TN$이라 하면 다음과 같다.
| 지표 | 계산 | 값 | 무엇을 묻는가 |
|---|---|---|---|
| 정확도 | $(36+52)/100$ | 88.0% | 전체 중 맞힌 비율 |
| 정밀도 | $36/(36+8)$ | 81.8% | 양성 예측 중 실제 양성 |
| 재현율 | $36/(36+4)$ | 90.0% | 실제 양성 중 찾아낸 비율 |
| F1 | $72/(72+8+4)$ | 85.7% | 정밀도·재현율의 조화평균 |
예시에서는 임곗값이 높아질수록 양성 판정이 엄격해져 정밀도는 오르고 재현율은 낮아진다. 이 방향은 흔하지만 모든 데이터에서 단조성을 보장하지 않으며, 실제 임곗값은 FP·FN 비용과 점수 분포로 선택한다.
시험 판단 포인트
- 양성 클래스를 먼저 정해야 TP·FP·FN·TN과 지표의 의미가 확정된다.
- 정밀도의 분모는 양성 예측 수, 재현율의 분모는 실제 양성 수다.
- 특이도의 분모는 실제 음성 수, 음성예측도의 분모는 음성 예측 수다.
FPR=1-특이도,FNR=1-재현율이다.- FN 비용이 크면 재현율·FNR, FP 비용이 크면 정밀도·특이도·FPR을 중요하게 본다.
- 클래스가 불균형하면 정확도만으로 성능을 판단하지 않는다.
- F1은 TN을 직접 반영하지 않고, 균형 정확도는 재현율과 특이도를 평균한다.
- 다중분류 점수에는 macro·weighted·micro 중 어떤 평균을 사용했는지 표시한다.
- 임곗값을 낮추면 재현율은 높아지거나 같지만 정밀도·정확도·F1의 방향은 보장되지 않는다.
자주 틀리는 부분
- FN을 실제 음성인데 양성으로 예측한 경우로 해석한다.
- 정밀도와 재현율, 특이도와 음성예측도의 분모를 바꿔 계산한다.
- 정확도가 높으면 소수 클래스도 잘 찾는다고 판단한다.
- F1이 높으면 특이도와 음성 클래스 성능도 자동으로 높다고 판단한다.
- F1과 균형 정확도를 같은 지표로 본다.
- 임곗값을 낮추면 모든 지표가 함께 높아진다고 단정한다.
- 양성 비율이나 평균 방식이 다른 두 보고서의 점수를 그대로 비교한다.
- 분모가 0일 때 도구가 반환한 0을 실제 성능 0으로만 해석한다.
개념 확인 문제
문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.
01실제 사기 거래를 정상 거래로 예측한 경우는?
FN
실제 양성인 사기를 음성인 정상 거래로 예측했으므로 FN이다.
02질병 선별검사에서 환자를 놓치는 오류의 비용이 가장 클 때 우선 확인할 지표는?
재현율
재현율은 실제 환자 중 찾아낸 비율 TP/(TP+FN)이므로 FN 비용이 클 때 우선 본다.
03TP=30, FP=10, FN=20, TN=940일 때 정밀도, 재현율, F1을 계산하여 제시하시오. 소수 셋째 자리에서 반올림한다.
0.750, 0.600, 0.667
정밀도는 30/(30+10)=0.750, 재현율은 30/(30+20)=0.600, F1은 60/(60+10+20)=0.667이다.
04같은 확률모형에서 양성 판정 임곗값을 낮출 때 일반적으로 예상되는 변화는?
양성 예측 수가 늘고 재현율이 높아지거나 같지만 정밀도는 낮아질 수 있다.
임곗값을 낮추면 양성 예측 집합이 커지므로 TP와 FP는 감소하지 않는다. 이에 따라 재현율은 높아지거나 같고 특이도는 낮아지거나 같다.