ROC·AUC 완전 입문 — 처음부터 끝까지 따라 읽는 한 권
통계도 코딩도 한 번 본 적 없는 사람이, 혼동행렬의 네 칸에서 출발해 ROC 곡선과 AUC를 손으로 그리고 계산하고, 나아가 임계값 선택·불균형 데이터·다중분류·흔한 오해까지 막힘없이 통과하도록 설계된 학습서입니다.
이 책은 ROC 곡선과 AUC라는 단 두 개의 도구를 깊이 이해하는 것을 목표로 합니다. 두 개념은 갑자기 하늘에서 떨어지지 않습니다. 더 작고 단단한 토대 — 점수·임계값·예측, 그리고 혼동행렬 — 위에 한 층씩 쌓아 올린 건물입니다. 그래서 이 책은 그 토대부터 시작해 순서대로 읽도록 만들어졌습니다.
이 책을 읽는 법
- 순서대로 읽으세요. 각 장은 바로 앞 장에서 정의한 용어를 다시 정의하지 않고 이름만 불러 씁니다. 00장에서 09장까지 번호 순서가 곧 학습 순서입니다.
- 건너뛰지 마세요. 특히 00 → 01 → 02 → 03 → 04는 한 줄기의 이야기입니다. 04(손계산)까지 마치면 ROC·AUC의 기계를 손으로 돌릴 수 있게 됩니다.
- 04 이후는 실전 주제입니다. 05(임계값 선택)·06(불균형)·07(다중분류)는 04를 공통 토대로 삼는 평행한 갈래라, 관심 순서대로 읽어도 됩니다. 08(오해)과 09(요약)는 마지막에 읽으세요.
- 그림과 손계산을 직접 따라가 보세요. 본문의 표·수식은 읽고 넘기는 장식이 아니라, 펜을 들고 한 칸씩 채워 보라고 둔 것입니다. 특히 04장의 AUC=0.76 삼중 검산은 직접 손을 더럽혀 볼 때 비로소 "이해했다"가 됩니다.
챕터 한눈표
| 장 | 제목 | 한 줄 요지 | 핵심 그림 |
|---|---|---|---|
| 00 | 토대: 점수·임계값·예측과 혼동행렬 | 모든 것의 재료 — TP·FP·FN·TN과 네 가지 비율 | 혼동행렬 히트맵 |
| 01 | 임계값과 혼동행렬 | 다이얼(임계값)을 돌리면 네 칸이 시소처럼 움직인다 — 공짜 점심은 없다 | 점수 분포 + 임계값 |
| 02 | ROC 곡선이란 | 임계값을 전부 써 본 결과를 한 장에 그린 지도 | ROC 작도 + 2-패널 |
| 03 | AUC: 곡선 아래 면적 | 곡선의 좋음을 숫자 하나로 — 면적이자 확률 | 면적·확률 / 4분류기 비교 |
| 04 | 워크드 예제: 손으로 계산하기 | 같은 AUC=0.76에 세 갈래 길로 도달해 검산한다 | 손계산 ROC + 사다리꼴 |
| 05 | 임계값 선택법 | 곡선 위 어느 점에 설 것인가 — Youden's J와 비용 | Youden's J 운영점 |
| 06 | 불균형 데이터: ROC vs PR | 음성의 바다가 ROC를 속인다 — PR이 진실을 말한다 | ROC vs PR 2-패널 |
| 07 | 다중분류 ROC | OvR로 쪼개고 macro·micro로 합치기 | 다중분류 OvR ROC |
| 08 | 자주 하는 오해와 주의점 | 한 숫자에 속지 않기 — 다섯 가지 함정 | 교차하는 두 ROC |
| 09 | 마무리: 치트시트·결정표·체크리스트 | 전권을 한 장으로 — 언제 무엇을 쓰나 | (요약) |
| GLOSSARY | 용어 색인 | 짧은 정의 + 깊은 설명으로 가는 링크 | — |
전체 학습 경로 — 장과 장은 어떻게 이어지는가
아래 그림은 각 장이 어떤 앞 장에 의존하는지를 나타낸 개념 의존 지도입니다. 화살표는 "이 장을 읽으려면 저 장이 먼저 필요하다"는 뜻입니다. 00에서 04까지는 한 줄기로 곧게 이어지고, 04를 마치면 {05, 06, 07}로 갈라졌다가, 08(오해)·09(요약)에서 다시 모입니다.
그림을 다시 그리고 싶다면
이 책의 모든 수치 그림(13장)은 결정적으로 재현 가능합니다. 그림 생성 파이썬 스크립트는 scripts/ 디렉터리에, 생성된 PNG는 figures/ 디렉터리에 있습니다. 각 그림은 단독 실행으로 다시 만들 수 있습니다.
python3 scripts/fig-04-worked-roc.py # 예: 04장 워크드 ROC 다시 그리기
스크립트는 Apple SD Gothic Neo 폰트와 색맹 안전 팔레트(양성=주황 #E69F00, 음성=파랑 #0072B2)를 쓰며, 난수 그림은 시드를 고정해 매번 같은 결과를 냅니다. 그림이 쓰는 핵심 수치(각 곡선의 AUC·주요 좌표 등)는 figures/values.json에 정리되어 본문 서술과 대조할 수 있습니다.
출발
준비됐다면 00 — 토대에서 시작하세요. 거기서 우리는 ROC라는 단어를 거의 꺼내지도 않고, 그 모든 것의 재료가 되는 점수·임계값·예측과 혼동행렬의 네 칸을 천천히 깔아 둡니다. 마지막 09 — 마무리에 도착하면, 이 책 전체를 한 장의 치트시트와 결정표로 손에 쥐게 됩니다.
챕터 한눈표
- 00 토대: 점수·임계값·예측과 혼동행렬 이진 분류의 점수·임계값·예측을 구분하고, 혼동행렬의 네 칸 TP·FP·FN·TN에서 정밀도·재현율·특이도·FPR을 직접 계산하는 ROC·AUC의 토대 장. 읽음
- 01 임계값과 혼동행렬: 다이얼을 돌리면 네 칸이 움직인다 점수 분포 위에서 임계값을 좌우로 옮길 때 TP·FP·FN·TN이 어떻게 재분배되는지 추적하고, 재현율과 FPR이 함께 오르는 트레이드오프를 ROC 곡선의 양 끝점까지 따라간다. 읽음
- 02 ROC 곡선이란 ROC 평면(x=FPR, y=TPR)의 네 모서리와 대각선을 읽고, 임계값을 스윕해 (FPR, TPR) 점들을 잇는 계단형 곡선의 작도 원리를 분포 그림과 1:1로 짝지어 익힌다. 읽음
- 03 AUC: 곡선 아래 면적 AUC가 ROC 곡선 아래 면적이자 '무작위 양성이 무작위 음성보다 높은 점수를 받을 확률'(=Mann–Whitney U)임을 보이고, 임계값 의존적인 정확도와 명확히 구분한다. 읽음
- 04 워크드 예제: 손으로 ROC와 AUC 계산하기 양성 5·음성 5의 표준 예제로 임계값 스윕 표를 채워 (FPR, TPR) 점 11개를 얻고, 사다리꼴 적분과 확률 쌍 세기 두 길로 AUC=0.76을 손으로 교차검증한다. 읽음
- 05 임계값 선택법: 곡선 위에서 한 점을 고르기 임계값 무관 요약인 ROC·AUC에서 실제 배포용 운영점 하나를 고르는 법 — Youden's J(=TPR−FPR) 최대점과, FN·FP 비용 비대칭에 따라 곡선 위를 밀어가는 비용 기반 선택. 읽음
- 06 불균형 데이터: ROC가 거짓말할 때, PR이 진실을 말한다 음성이 압도적으로 많으면 FPR이 둔감해져 ROC-AUC가 낙관적으로 부풀려지는 이유를 짚고, 같은 데이터의 PR 곡선·AP와 유병률 기준선으로 양성 예측의 순도를 정직하게 잰다. 읽음
- 07 다중분류 ROC: OvR로 쪼개고, macro·micro로 합치기 OvR(one-vs-rest)로 K-클래스 문제를 K개의 이진 ROC로 분해하고, macro 평균(클래스마다 한 표)과 micro 평균(표본마다 한 표)의 차이를 클래스 불균형과 함께 비교한다. 읽음
- 08 자주 하는 오해와 주의점: 한 숫자에 속지 않기 "AUC=정확도", "0.5 미만은 무능", "AUC 하나로 우열 판정" 같은 다섯 가지 흔한 오해를 반박하고, 교차하는 두 ROC에서 운영 구간에 따라 우열이 뒤집히는 이유를 분석한다. 읽음
- 09 마무리: ROC·AUC 한 장 치트시트와 결정표 ROC·AUC 핵심 용어·공식 치트시트, 상황별 지표·곡선·방법을 고르는 결정표, 그리고 분류기 평가 시 흔한 함정을 피하는 체크리스트로 전권을 한 장에 압축한다. 읽음