ROC AUC 계산기 쉽게 이해하기 — 개념과 원리
ROC 곡선 아래 면적(AUC)은 모델의 점수가 양성을 음성보다 얼마나 높게 줄 세우는지를, 가능한 모든 판정 임계값에 걸쳐 하나의 값으로 요약합니다. 예측 점수와 실제 0/1 정답을 넣으면 AUC와 지니 계수를 계산합니다. 신용 평가, 의료 검사, 점수나 확률을 출력하는 모든 분류기의 평가에 널리 쓰입니다.
계산 방법
- 점수를 양성(정답 1)과 음성(정답 0)으로 나눕니다.
- 모든 양성-음성 쌍을 비교해 양성 점수가 높으면 1, 같으면 ½, 낮으면 0을 셉니다.
- AUC = 합계 ÷ (양성 개수 × 음성 개수)
- 지니 계수 = 2 × AUC − 1
점수는 서로 비교만 가능하면 되며 확률일 필요는 없습니다. 순서를 보존하는 변환을 해도 AUC는 그대로입니다.
원리
ROC 곡선은 임계값을 높은 쪽에서 낮은 쪽으로 옮기며 참양성률을 거짓양성률에 대해 그린 그래프입니다. 그 면적은 무작위로 고른 양성이 무작위로 고른 음성보다 높은 점수를 받을 확률과 같습니다. 이는 맨-휘트니 U 통계량을 전체 쌍의 수로 나눈 값과 정확히 일치하므로, 쌍을 세는 방법이 곡선 면적을 구하는 것과 같은 답을 줍니다. 점수의 순서만 쓰기 때문에 AUC는 순위 매기기 능력을 재는 것이지 확률의 보정 상태를 재는 것이 아닙니다.
예제 풀이
- 양성 점수는 0.9, 0.8, 0.6, 0.4이고 음성 점수는 0.7, 0.55, 0.3, 0.2이므로 쌍은 4 × 4 = 16개입니다.
- 0.9와 0.8은 음성 4개를 모두 이기고, 0.6은 0.55, 0.3, 0.2를 이겨 3, 0.4는 0.3과 0.2를 이겨 2입니다.
- 합계 4 + 4 + 3 + 2 = 13이므로 AUC = 13 ÷ 16 = 0.8125입니다.
- 지니 계수 = 2 × 0.8125 − 1 = 0.625입니다.
결과 해석
AUC 0.5는 무작위 수준, 1.0은 모든 양성이 모든 음성보다 높은 상태, 0.5 미만은 순서가 거꾸로 매겨졌다는 뜻입니다. 관례적으로 0.7~0.8을 무난, 0.8~0.9를 좋음으로 보기도 하지만 분야마다 기준이 다릅니다. 이 예처럼 표본이 적으면 점수 하나만 바뀌어도 AUC가 1/16씩 움직일 만큼 불안정합니다.
흔한 실수
- 점수 대신 0/1 판정값을 넣어 곡선이 한 점으로 줄어드는 경우
- AUC가 높으면 확률도 잘 보정되어 있다고 생각하는 경우
- 정밀도가 중요한 심한 불균형 데이터에서 AUC만 보는 경우(정밀도-재현율 곡선이 더 유용할 때가 많습니다)
자주 묻는 질문
지니 계수는 왜 2 × AUC − 1인가요?
무작위를 0, 완벽한 순위를 1로 맞추도록 AUC를 다시 눈금 매긴 값입니다. 신용 평가에서는 정확도 비율(AR)이라고도 합니다.
점수가 같은 경우는 어떻게 처리하나요?
동점인 양성-음성 쌍은 0.5로 세며, 이는 ROC 곡선의 사다리꼴 면적 계산과 일치합니다.
다중 클래스에도 AUC를 쓸 수 있나요?
일대다 또는 일대일 AUC를 평균해 쓸 수 있지만, 이 계산기는 이진 분류만 다룹니다.
출처: J. A. Hanley and B. J. McNeil, The meaning and use of the area under a receiver operating characteristic (ROC) curve, Radiology, 1982 · T. Fawcett, An introduction to ROC analysis, Pattern Recognition Letters, 2006