ROC 곡선(ROC Curve)

•
2026년 10월 25일 발행•2026년 10월 25일 수정
요약

분류 모델의 임계값을 바꿔 가며 참 양성률과 거짓 양성률의 관계를 그린 성능 평가 곡선

초급
혼동 행렬과 분류 지표에 대한 이해가 필요하며, AUC의 확률적 해석과 불균형 데이터에서의 한계를 함께 알아야 한다.

#개념

ROC 곡선(Receiver Operating Characteristic Curve)은 이진 분류 모델의 판정 임계값을 바꿔 가며 참 양성률(True Positive Rate, TPR)과 거짓 양성률(False Positive Rate, FPR)의 변화를 2차원 평면에 그린 곡선이다. 특정 임계값 하나가 아니라 가능한 모든 임계값에서의 성능을 한 번에 보여 주므로, 모델이 양성과 음성을 얼마나 잘 구분하는지 평가하는 대표적인 도구로 쓰인다.
ROC 곡선은 신호 탐지 이론(Signal Detection Theory)에서 출발했다. 2차 세계대전 무렵 레이더 운용자가 화면의 신호를 적기로 판정할지 잡음으로 볼지 결정하는 능력을 분석하는 데 쓰였고, 이름의 수신기 작동 특성도 여기에서 유래했다. 이후 심리물리학과 방사선 영상 판독 같은 의료 진단 연구로 확산되었으며, 머신러닝에서는 Fawcett(2006)의 입문 논문 등을 통해 분류기 평가의 표준 방법으로 자리 잡았다.
ROC 곡선은 혼동 행렬(Confusion Matrix)의 네 값, 즉 참 양성(TP), 거짓 음성(FN), 거짓 양성(FP), 참 음성(TN)에서 계산한 두 비율로 그린다. 두 비율은 각각 실제 양성 집단과 실제 음성 집단 안에서만 계산되므로 서로 독립적으로 움직인다. 가로축과 세로축에 놓이는 지표와 이를 결정하는 요소는 다음과 같다.
ROC 곡선을 이루는 요소
  • 참 양성률(TPR): 실제 양성 중 모델이 양성으로 판정한 비율로, $TPR = \frac{TP}{TP + FN}$이다. 재현율(Recall), 민감도(Sensitivity)와 같은 값이며 ROC 곡선의 세로축이다.
  • 거짓 양성률(FPR): 실제 음성 중 모델이 양성으로 잘못 판정한 비율로, $FPR = \frac{FP}{FP + TN}$이다. 1에서 특이도(Specificity)를 뺀 값과 같으며 가로축이다.
  • 판정 임계값(Threshold): 모델이 출력한 점수 $s$가 임계값 $t$ 이상이면 양성으로 판정하는 기준이다. 임계값을 낮출수록 TPR과 FPR은 함께 커지거나 그대로 유지된다.
  • 점수(Score): 양성일 가능성의 순서를 나타내는 모델 출력이다. 확률일 필요는 없고, 순위만 의미 있으면 마진이나 로짓도 사용할 수 있다.
곡선은 임계값 스윕(Threshold Sweep)으로 만든다. 평가 데이터를 점수 내림차순으로 정렬한 뒤 임계값을 가장 높은 값에서 가장 낮은 값까지 내려가며 각 지점의 (FPR, TPR)을 찍는다. 임계값이 무한대이면 모두 음성으로 판정해 (0, 0)에서 시작하고, 가장 낮으면 모두 양성으로 판정해 (1, 1)에서 끝난다. 표본이 유한하므로 실제 곡선은 양성을 만나면 위로, 음성을 만나면 오른쪽으로 움직이는 계단 모양이 된다.
ROC 공간의 주요 위치
  • 왼쪽 위 꼭짓점 (0, 1): 모든 양성을 찾으면서 음성은 하나도 잘못 판정하지 않는 완벽한 분류기의 위치다. 곡선이 이 점에 가까이 붙을수록 좋은 모델이다.
  • 대각선 기준선: TPR과 FPR이 같은 직선으로, 점수와 정답이 무관한 무작위 분류기의 기대 성능이다. 이 선 아래 면적이 0.5이므로 AUC 0.5가 기준선이 된다.
  • 대각선 아래 영역: 무작위보다 나쁜 성능을 뜻한다. 대개 레이블이나 점수 방향이 뒤집힌 경우이며, 판정을 반대로 하면 대각선 위로 대칭 이동한다.
  • 왼쪽 아래 구간: 높은 임계값으로 아주 확실한 사례만 양성으로 판정하는 영역이다. 오탐 비용이 큰 업무에서 특히 중요하게 본다.
ROC 곡선을 하나의 숫자로 요약한 값이 곡선 아래 면적(Area Under the Curve, AUC)이며, ROC-AUC 또는 AUROC라고도 부른다. 정의는 $AUC = \int_{0}^{1} TPR \, d(FPR)$이고 0에서 1 사이 값을 가진다. 1이면 완벽한 구분, 0.5이면 무작위 수준이다. 임계값을 정하지 않고도 모델 전체의 순위 품질을 비교할 수 있어 모델 선택과 실험 보고에 널리 쓰인다.
AUC에는 직관적인 확률적 해석이 있다. 무작위로 고른 양성 하나와 음성 하나의 쌍에서 양성의 점수가 더 높을 확률, 즉 $AUC = P(s^{+} \gt s^{-})$와 같다. 점수가 같으면 0.5로 센다. 이 값은 만-위트니 U 통계량(Mann-Whitney U Statistic)을 양성 수와 음성 수의 곱으로 나눈 것과 같으며, Hanley와 McNeil(1982)이 진단 검사 평가에서 이 관계를 정리했다. 따라서 AUC는 분류 정확도라기보다 순위 지표로 이해하는 것이 정확하다.
계산은 보통 사다리꼴 공식(Trapezoidal Rule)으로 한다. 곡선 위의 점을 FPR 순으로 $(x_i, y_i)$라 하면 $AUC = \sum_{i} (x_{i+1} - x_i) \frac{y_{i+1} + y_i}{2}$로 구한다. 동점 점수가 있을 때 사다리꼴로 이으면 동점을 0.5로 세는 확률 해석과 정확히 일치한다. 정렬이 필요하므로 표본 수가 $n$일 때 계산량은 $O(n \log n)$이며, 순위 합을 이용한 공식으로도 같은 값을 얻는다.
간단한 예로 양성 점수가 0.9, 0.8, 0.4이고 음성 점수가 0.7, 0.3, 0.2라고 하자. 가능한 양성-음성 쌍은 9개이며, 0.9와 0.8은 모든 음성보다 높고 0.4는 0.3과 0.2보다만 높다. 양성이 이긴 쌍이 8개이므로 AUC는 $8/9 \approx 0.889$이다. 같은 데이터로 임계값을 0.5로 두면 TPR은 2/3, FPR은 1/3이 되어 곡선 위의 한 점에 해당한다.
AUC가 널리 쓰이는 이유는 점수의 단조 변환(Monotonic Transformation)에 불변이고, 양성과 음성의 비율이 바뀌어도 값이 직접 영향을 받지 않기 때문이다. TPR은 양성 안에서, FPR은 음성 안에서 각각 계산되므로 클래스 비율이 달라도 곡선 모양은 유지된다. 반면 실제 운영에서는 특정 FPR 구간만 의미 있는 경우가 많아 전체 면적이 오해를 낳기도 한다.
이때 쓰는 것이 부분 AUC(Partial AUC, pAUC)이다. 예를 들어 오탐을 1% 이하로 묶어야 하는 사기 탐지라면 FPR 0에서 0.01 구간의 면적만 계산해 비교한다. 구간이 좁으면 값의 크기가 작아 해석이 어렵기 때문에, 무작위 분류기는 0.5, 완벽한 분류기는 1이 되도록 바꾼 표준화 부분 AUC를 함께 보고한다. 전체 AUC는 같아도 낮은 FPR 구간에서 두 곡선이 크게 다를 수 있다.
ROC 곡선은 본래 이진 분류용이므로 다중 클래스 분류(Multiclass Classification)에서는 문제를 여러 이진 문제로 나누어 계산한다. 이때 클래스별 결과를 어떻게 평균하느냐에 따라 다수 클래스와 소수 클래스의 영향력이 달라진다. scikit-learn의 roc_auc_score 함수도 아래 두 방식을 지원한다.
다중 클래스 ROC-AUC 계산 방식
  • 일대다(One-vs-Rest, OvR): 각 클래스를 양성으로, 나머지를 모두 음성으로 두고 클래스별 AUC를 구한다. 클래스별 값을 단순 평균하면 매크로 평균, 모든 판정을 한데 모아 하나의 곡선으로 계산하면 마이크로 평균이다.
  • 일대일(One-vs-One, OvO): 두 클래스씩 짝을 지어 그 두 클래스의 표본만으로 AUC를 계산하고 평균한다. Hand와 Till이 제안한 방식으로, 클래스 비율 불균형의 영향을 덜 받는다.
양성이 매우 드문 불균형 데이터(Imbalanced Data)에서는 ROC 곡선이 지나치게 낙관적으로 보일 수 있다. 음성이 100만 개이면 FPR 0.01도 오탐 1만 건이지만 곡선에서는 왼쪽 끝의 작은 이동으로만 보인다. 이런 경우 정밀도를 세로축, 재현율을 가로축에 두는 정밀도-재현율 곡선(Precision-Recall Curve)과 그 면적인 평균 정밀도(Average Precision)를 함께 확인한다. PR 곡선의 무작위 기준선은 0.5가 아니라 양성 비율이라는 점도 다르다.
Davis와 Goadrich(2006)는 같은 데이터에서 ROC 공간의 곡선과 PR 공간의 곡선이 일대일로 대응하며, 한 공간에서 우세한 곡선은 다른 공간에서도 우세함을 보였다. 다만 ROC 공간에서의 선형 보간은 PR 공간에서 직선이 되지 않으므로 면적 계산 방식은 서로 다르다. 실무에서는 순위 품질 전반을 볼 때 ROC-AUC를, 소수 양성을 얼마나 정확히 골라내는지 볼 때 PR 곡선을 쓰는 것이 일반적이다.
AUC도 표본에서 추정한 값이므로 불확실성을 함께 보고해야 한다. DeLong 방법(DeLong Method)은 각 표본이 반대 클래스 표본보다 높은 순위를 차지한 비율을 이용해 AUC의 분산을 비모수적으로 추정한다. 같은 평가 데이터에서 얻은 두 모델의 AUC는 서로 상관되어 있는데, DeLong 등(1988)은 이 공분산까지 반영해 두 AUC의 차이를 검정하는 방법을 제시했다. 부트스트랩 재표본으로 신뢰구간을 구하는 방법도 널리 쓰인다.
AUC가 높다고 해서 모델이 출력한 확률이 믿을 만하다는 뜻은 아니다. AUC는 점수의 순서만 보므로, 모든 점수를 제곱하거나 절반으로 줄여도 값이 변하지 않는다. 예측 확률이 실제 발생 빈도와 맞는지는 확률 보정(Probability Calibration)의 문제이며, 신뢰도 다이어그램이나 브라이어 점수(Brier Score)로 따로 평가한다. 광고 입찰처럼 확률값 자체가 금액 계산에 쓰이는 경우 AUC와 보정 지표를 모두 확인해야 한다.
운영에 쓸 임계값은 ROC 곡선 위에서 고른다. 가장 단순한 기준은 $J = TPR - FPR$을 최대로 하는 유든 지수(Youden's J Statistic)이며, 대각선에서 수직으로 가장 멀리 떨어진 점을 고르는 것과 같다. 오탐과 미탐의 비용이 다르면 비용과 클래스 비율로 기울기가 정해지는 등성능 직선을 그어 처음 접하는 점을 선택한다.
ROC 곡선은 여러 산업에서 핵심 평가 지표로 쓰인다. 의료에서는 진단 검사와 영상 판독 모델의 민감도와 특이도 절충을 보여 주는 표준 도구다. 신용평가에서는 AUC를 변환한 지니 계수 $Gini = 2 \times AUC - 1$과 KS 통계량으로 부도 예측 모델을 관리한다. 광고와 추천의 클릭률(Click-Through Rate, CTR) 예측에서는 오프라인 AUC로 모델을 비교하고, 사용자별 AUC를 노출 수로 가중 평균한 GAUC로 개인화 순위 품질을 따로 본다.

#관련 용어

혼동 행렬
실젯값과 예측값의 조합으로 분류 결과를 집계한 표
참 양성률(TPR)
실제 양성 중 양성으로 올바르게 판정한 비율로, 재현율과 같은 값
거짓 양성률(FPR)
실제 음성 중 양성으로 잘못 판정한 비율
곡선 아래 면적(AUC)
ROC 곡선 아래의 면적으로, 무작위 양성이 무작위 음성보다 높은 점수를 받을 확률
정밀도-재현율 곡선(PR 곡선)
임계값 변화에 따른 정밀도와 재현율의 관계를 그린 곡선
확률 보정
모델이 출력한 확률이 실제 발생 빈도와 일치하도록 조정하는 과정

#직무 연관도

DA
Data Analyst
높음
모델 성능을 비즈니스 관점에서 해석하고, 오탐과 미탐 비용에 맞는 운영 기준을 제안
DS
Data Scientist
밀접
분류 모델을 비교하고 임계값을 선택하며, AUC의 신뢰구간과 유의성을 검정
DE
Data Engineer
보통
학습 파이프라인과 모니터링에 AUC를 기록하고 모델 배포 기준으로 활용

#사용 사례

의료금융전자상거래인터넷 서비스제조
개요
ROC 곡선은 의료 진단 검사의 민감도와 특이도 평가, 신용평가 모델의 부도 판별력 관리, 이상 거래 탐지의 오탐 수준 설정, 광고와 추천의 클릭률 예측 모델 비교 등 이진 판정이 필요한 거의 모든 분야에서 모델 선택과 임계값 결정에 활용된다.
사례
온라인 쇼핑몰의 클릭률 예측 모델을 교체할 때, 신규 모델과 기존 모델의 오프라인 ROC-AUC를 같은 평가 데이터로 계산하고 DeLong 검정으로 차이의 유의성을 확인한 뒤 온라인 실험으로 넘긴다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.