콘텐츠로 이동

정밀도-재현율 트레이드오프 (Precision-Recall Trade-off)

핵심 요약: 분류 모델은 확률 점수를 출력하고, 임계값(Threshold)을 높이면 정밀도(Precision)는 올라가지만 재현율(Recall)은 내려간다. 반대로 임계값을 낮추면 재현율은 올라가지만 정밀도가 내려간다. 어디에 중점을 둘지는 “놓침”과 “거짓 경보” 중 어떤 실수가 더 비싼지에 따라 결정한다. 공항 보안 검색의 민감도를 높이면 흉기를 더 많이 잡지만, 선량한 승객도 더 많이 걸리는 것과 같은 원리다.

대부분의 분류 모델은 이진 레이블이 아니라 확률 점수(probability score, 0~1 사이의 양성일 가능성)를 출력한다. 이 점수에 임계값(threshold, 양성/음성을 나누는 기준값)을 적용하여 양성/음성을 결정하는데, 임계값을 어디에 설정하느냐에 따라 정밀도(Precision)와 재현율(Recall)이 반대 방향으로 움직인다. 이것이 정밀도-재현율 트레이드오프다.

이 트레이드오프를 이해하고 적절히 조절하는 것은, 모델 자체를 개선하는 것 못지않게 중요한 실전 기술이다.


정밀도-재현율 트레이드오프 개념은 정보 검색(Information Retrieval, IR) 분야에서 핵심적으로 발전했다. 1960~70년대 도서관 과학(Library Science)과 초기 검색 엔진 연구에서, 연구자들은 “검색 결과가 얼마나 관련성 있는가”(Precision)와 “관련 문서를 얼마나 빠짐없이 찾았는가”(Recall) 사이에 근본적인 긴장 관계가 있음을 발견했다. 검색 조건을 느슨하게 하면 관련 문서를 더 많이 찾지만 무관한 문서도 함께 쏟아지고, 엄격하게 하면 정확하지만 놓치는 문서가 많아진다. Cleverdon의 Cranfield 실험(1960s)은 이 트레이드오프를 체계적으로 측정한 최초의 대규모 실험으로, IR 평가의 기틀을 마련했다. 이후 이 개념은 머신러닝 분류, 의료 진단, 사기 탐지 등 “양성을 찾아내야 하는 모든 문제”로 확산되었고, 임계값(Threshold) 조절을 통한 Precision-Recall 균형점 선택이 실무의 핵심 기술로 자리잡았다.


모델이 각 샘플에 대해 양성일 확률 p^\hat{p}를 출력한다고 하자. 임계값 τ\tau를 설정하여:

  • p^τ\hat{p} \geq \tau → 양성 예측
  • p^<τ\hat{p} < \tau → 음성 예측

왜 반비례 관계인가? 다이어그램 핵심 통찰: 트레이드오프는 모델 자체가 아니라 결정 경계(decision boundary, 양성과 음성을 나누는 기준선)에 관한 것이다. 동일한 모델이라도 임계값에 따라 Precision-Recall 조합이 달라진다.

6명의 환자에 대해 모델이 예측한 양성 확률 점수와 실제 레이블이 다음과 같다고 하자:

환자예측 점수실제 레이블
A0.9양성(1)
B0.7양성(1)
C0.6음성(0)
D0.4양성(1)
E0.3음성(0)
F0.2음성(0)

임계값 = 0.5일 때: A, B, C가 양성 예측 → TP=2(A,B), FP=1(C), FN=1(D)

  • Precision = 2/3 = 67%, Recall = 2/3 = 67%

임계값 = 0.3일 때: A, B, C, D, E가 양성 예측 → TP=3(A,B,D), FP=2(C,E), FN=0

  • Precision = 3/5 = 60%, Recall = 3/3 = 100%

임계값을 낮추니 놓치는 양성이 없어졌지만(Recall 100%), 거짓 경보가 늘어 정밀도가 떨어졌다.

양성 클래스와 음성 클래스의 점수 분포를 상상하면 이해가 쉽다:

음성 클래스 분포 양성 클래스 분포
████ ████
██████ ██████
████████ ████████
██████████ ██████████
████████████████████████████████████████
0.0 ↑τ=0.3 ↑τ=0.5 ↑τ=0.7 1.0
임계값 위치
  • τ\tau를 왼쪽으로 → 더 많은 양성을 잡지만(Recall ↑), 음성도 많이 포함됨(Precision ↓)
  • τ\tau를 오른쪽으로 → 확실한 양성만 잡지만(Precision ↑), 놓치는 양성이 많아짐(Recall ↓)

이를 공항 보안 검색(Airport Security)에 비유하면 직관적이다 — 금속 탐지기의 민감도(임계값)를 낮추면 흉기를 더 많이 잡아내지만(Recall ↑), 벨트 버클이나 동전에도 경보가 울려서 선량한 승객이 더 많이 검색당한다(Precision ↓).


기본 임계값 0.5는 대부분의 경우 최적이 아니다. 특히 불균형 데이터, 비대칭 비용 문제에서는 임계값 튜닝이 필수적이다.

주요 튜닝 방법:

방법설명적합한 상황
Grid Search[0,1][0, 1] 구간을 촘촘하게 탐색하며 목표 지표 최적화범용
Youden’s JJ=Sensitivity+Specificity1J = \text{Sensitivity} + \text{Specificity} - 1 최대화ROC 기반 최적점
비용 민감CFPFP+CFNFNC_{FP} \cdot FP + C_{FN} \cdot FN 최소화비용이 명확할 때
FβF_\beta 최적원하는 β\beta에 대해 FβF_\beta 최대화P-R 가중치 명확할 때

실전 팁: 임계값 튜닝은 반드시 검증 세트(validation set)에서 수행해야 한다. 테스트 세트에서 튜닝하면 성능 추정이 낙관적으로 편향된다.


임계값을 1에서 0으로 점진적으로 변화시키면서 (Recall, Precision) 쌍을 그래프에 표시한 것이 PR 곡선이다.

해석:

  • 곡선이 오른쪽 위(top-right)에 가까울수록 좋은 모델
  • 기준선(baseline): 유병률(Prevalence) 수준의 수평선 — 랜덤 분류기의 성능
  • 보간법: PR 곡선은 선형 보간이 아닌 단계(step) 보간이 올바르다

Iso-F1 곡선: 동일한 F1F_1 값을 갖는 (Recall, Precision) 조합을 연결한 곡선. PR 곡선 위에 겹쳐 그리면, 모델이 어떤 F1F_1 수준에서 작동하는지 파악할 수 있다.


AP=k=1n(RkRk1)Pk\text{AP} = \sum_{k=1}^{n}(R_k - R_{k-1}) \cdot P_k

PR 곡선 아래 면적(Area Under PR Curve, PR 곡선과 x축 사이의 넓이)을 단계적으로 합산한 값이다. 단일 숫자로 PR 곡선의 전반적인 성능을 요약한다.

Mean Average Precision (mAP): mAP=1Qq=1QAPq\text{mAP} = \frac{1}{|Q|}\sum_{q=1}^{|Q|} \text{AP}_q

  • 여러 클래스 또는 여러 쿼리에 대해 AP를 평균
  • 정보 검색(Information Retrieval)과 객체 탐지(Object Detection)에서 핵심 지표
  • 자세한 내용은 랭킹 지표 참조

특성PR 곡선ROC 곡선
X축RecallFPR (1 - Specificity)
Y축PrecisionTPR (Recall)
기준선유병률 수평선대각선 (AUC = 0.5)
불균형 데이터더 정직함낙관적으로 보일 수 있음
초점양성 클래스 성능양성 + 음성 모두
추천 상황불균형 데이터균형 데이터, Specificity 중요 시

왜 ROC가 불균형 데이터에서 낙관적인가?

FPR의 분모가 TN+FPTN + FP인데, 음성 클래스가 매우 많으면(예: 1000개) 100개의 FP가 발생해도 FPR은 겨우 0.1 증가한다. 반면 Precision은 급격히 떨어진다. 따라서 불균형 데이터에서는 PR 곡선이 더 현실적인 그림을 보여준다.

참고: Davis & Goadrich (2006), “The Relationship Between Precision-Recall and ROC Curves” — ROC에서 모델이 지배적이면 PR에서도 지배적이지만, 역은 성립하지 않는다.

자세한 ROC 곡선 내용은 ROC와 AUC 참조.


  • 불균형 분류 문제에서 성능을 정직하게 보고 싶을 때 → PR 곡선과 AP 사용
  • FP와 FN의 비용이 다를 때 → 임계값 튜닝으로 원하는 P-R 균형점 선택
  • 여러 모델의 전반적 양성 탐지 성능을 비교할 때 → AP 비교
  • 임계값에 따른 성능 변화를 시각적으로 확인할 때 → PR 곡선 도식화

한 핀테크(Fintech) 회사가 대출 부도 예측(Loan Default Prediction) 모델을 배포하면서, 라이브러리 기본 임계값(Threshold) 0.5를 그대로 사용했다. 전체 대출 신청 50,000건 중 부도율은 약 3%(1,500건)였다. 임계값 0.5에서 모델의 Recall은 0.22에 불과했다 — 실제 부도자 1,500명 중 겨우 330명만 사전에 탐지한 것이다. 놓친 1,170건의 부도로 인한 손실은 약 23억 원에 달했다. 이후 검증 세트(Validation Set)에서 F2F_2 Score를 최대화하는 임계값 0.18로 조정한 결과, Recall이 0.79로 급상승했고 Precision은 0.31에서 0.12로 떨어졌지만, 추가 심사 비용(건당 5만 원)을 감안해도 순손실이 연간 14억 원 감소했다. 이 사례는 “기본 임계값은 거의 최적이 아니다”라는 교훈을 명확하게 보여준다.


  1. “기본 임계값 0.5가 적절하다” — 클래스 비율, 비용 구조에 따라 최적 임계값은 크게 달라진다. 0.5는 거의 최적이 아니다.

  2. “Precision과 Recall을 동시에 높일 수 있다” — 고정된 모델에서 임계값 조정으로는 불가능하다. 동시에 높이려면 모델 자체를 개선해야 한다 (더 나은 특성, 더 나은 알고리즘).

  3. “PR 곡선은 선형 보간하면 된다” — PR 공간에서 선형 보간은 부정확하다. 단계(step) 보간 또는 적절한 보간 방법을 사용해야 한다.

  4. “AP가 높으면 모든 임계값에서 좋다” — AP는 요약 지표이므로, 실제 운영할 특정 임계값에서의 성능은 별도로 확인해야 한다.

  5. “PR 곡선만 보면 된다” — Specificity(TN)가 중요한 문제에서는 ROC 곡선이 더 적절할 수 있다.