PE Notes · AI
혼동행렬과 분류 지표
맞힌 것과 놓친 것을 칸으로 나눈 혼동행렬에서 정밀도·재현율·F1을 읽고, 불균형에서는 ROC보다 PR을, 다중 클래스에서는 Macro·Micro·Weighted를 고릅니다.
정확도 하나만 보면, 음성 표본이 많은 과제에서 “전부 음성이라고 한 모델”이 점수를 가져갑니다. 은 예측을 실제와 교차해, 무엇을 맞히고 무엇을 놓쳤는지를 칸으로 보여 줍니다. 그 칸에서 정밀도·재현율·F1이 나오고, 임계값을 움직이면 곡선이 됩니다.
네 칸에서 지표를 만들기
이진 분류는 2×2입니다. 다중 분류는 클래스가 늘면 N×N이 됩니다. 칸의 이름은 실제와 예측이 같은지, 양성을 기준으로 어디에 섰는지입니다.
| 칸 | 의미 | 다른 이름 |
|---|---|---|
| TP | 실제 양성을 양성으로 맞힘 | 잡아냄 |
| TN | 실제 음성을 음성으로 맞힘 | 통과 |
| FP | 실제 음성을 양성으로 잘못 | 오탐, 1종 오류 |
| FN | 실제 양성을 음성으로 잘못 | 미탐, 2종 오류 |
| 지표 | 식 | 읽는 법 |
|---|---|---|
| 정확도 | (TP+TN) / 전체 | 전체 맞힌 비율. 불균형이면 착시가 난다. |
| TP / (TP+FP) | 양성이라고 한 것 중 진짜. FP를 줄일 때. | |
| TP / (TP+FN) | 실제 양성 중 찾아낸 비율. FN을 줄일 때. | |
| 특이도 | TN / (TN+FP) | 실제 음성 중 음성으로 보낸 비율. |
| 2·P·R / (P+R) | 정밀도와 재현율의 조화평균. |
을 올리면 모델은 더 확실한 것만 양성이라고 합니다. 정밀도는 오르고 재현율은 떨어집니다. 스팸 필터처럼 정상 메일을 막고 싶지 않으면 정밀도 쪽, 질병·침입처럼 놓치면 비용이 크면 재현율 쪽입니다. 한쪽으로만 올리면 다른 쪽이 내려가므로, F1이나 업무 비용을 보고 기준선을 고릅니다.
ROC와 PR — 언제 어느 곡선인가
점수는 한 임계값의 스냅샷입니다. 임계값을 바꿔 가면 곡선이 됩니다. 는 위양성률(FPR) 대 진양성률(TPR) 아래 넓이이고, 은 재현율 대 정밀도입니다.
| 비교축 | ROC | PR |
|---|---|---|
| 가로축 | FPR = FP/(FP+TN) | 재현율 |
| 세로축 | TPR = 재현율 | 정밀도 |
| 요약 | AUC-ROC | AUC-PR, AP |
| 불균형 | 낙관적으로 보이기 쉽다 | 양성이 드물 때 더 정직하다 |
| 쓰기 | 균형 분류, 모델 간 대략 비교 | 이상탐지, 의료, 검색, 사기 |
양성이 1:100처럼 드물면, 음성만 잘 맞춰도 ROC는 높아 보입니다. 그때는 PR을 같이 보지 않으면 배포 결정을 그르칩니다. 객체 탐지는 클래스마다 AP를 평균한 mAP가 관례입니다.
다중 클래스와 불균형
클래스가 셋 이상이면 F1을 어떻게 평균하느냐가 답이 됩니다. Macro는 클래스마다 동등하게 보고, Micro는 표본을 합쳐 한 번 계산하며, Weighted는 클래스 크기로 무게를 줍니다.
| 방식 | 계산 | 언제 |
|---|---|---|
| Macro F1 | 클래스별 F1의 산술평균 | 드문 클래스도 동등하게 볼 때 |
| Micro F1 | TP·FP·FN을 합친 뒤 하나의 F1 | 표본이 많은 클래스가 전체를 대표할 때 |
| Weighted F1 | 클래스 F1을 지지도로 가중 | 실제 빈도를 반영한 운영 지표 |
정확도 99%가 “다수 클래스만 맞힌 결과”인지 보려면 혼동행렬을 먼저 펼칩니다. 불균형을 데이터에서 줄이려면 소수 쪽을 늘리거나(SMOTE 등) 다수 쪽을 줄이지만, 정보 손실과 합성 표본의 왜곡을 같이 적습니다. 지표 선택은 도메인 비용과 맞춥니다. 진단은 재현율, 스팸은 정밀도, 검색은 mAP·NDCG입니다.