콘텐츠로 이동

확률 보정 (Calibration)

개요

분류 모델이 "70% 확률로 양성"이라고 예측했을 때, 실제로 그런 예측을 받은 샘플 중 70%가 양성이어야 한다. 이것이 보정(Calibration)이다.

모델의 판별력(discrimination)은 양성과 음성을 잘 분리하는 능력이고 — AUC로 측정한다. 보정은 예측 확률이 실제 확률과 일치하는 정도다. 이 둘은 독립적인 속성이다: AUC가 높아도 보정이 나쁠 수 있고, 보정이 좋아도 AUC가 낮을 수 있다.

예측 확률을 직접 의사결정에 사용하는 모든 시스템에서 보정은 필수적이다.


핵심 개념

보정이란?

모델이 보정되었다(calibrated)는 것은:

\[P(Y = 1 \mid \hat{p} = q) = q \quad \text{for all } q \in [0, 1]\]

즉, 예측 확률 \(q\)를 받은 모든 샘플에서 실제 양성 비율이 \(q\)여야 한다.

핵심 구분: - 판별(Discrimination): 양성과 음성을 잘 구분하는가? → 순위(ranking)의 품질 - 보정(Calibration): 예측 확률이 실제 확률과 일치하는가? → 확률의 품질


신뢰도 다이어그램 (Reliability Diagram)

보정 상태를 시각적으로 확인하는 도구다.

구성 방법: 1. 예측 확률을 구간(bin)으로 나눈다 (예: [0, 0.1], [0.1, 0.2], ...) 2. 각 구간에서 평균 예측 확률과 실제 양성 비율을 계산 3. (평균 예측 확률, 실제 양성 비율)을 플롯 4. 완벽한 보정 = 대각선

실제 양성 비율
1.0 │                          ╱ ← 완벽한 보정 (대각선)
    │                        ╱
    │                  ● ╱     ← 과소확신 (Underconfident)
    │               ╱ ●         모델이 실제보다 낮게 예측
0.5 │            ╱
    │         ╱
    │       ╱ 
    │    ╱ ●                   ← 과대확신 (Overconfident)
    │  ╱  ●                     모델이 실제보다 높게 예측
0.0 │╱───────────────────────
    0.0        0.5        1.0
              평균 예측 확률
  • 대각선 위: 과소확신(underconfident) — 모델이 실제보다 낮은 확률을 예측
  • 대각선 아래: 과대확신(overconfident) — 모델이 실제보다 높은 확률을 예측

상세 내용: 보정 지표

Brier Score

\[\text{BS} = \frac{1}{n}\sum_{i=1}^{n}(\hat{p}_i - y_i)^2\]
  • 범위: \([0, 1]\), 낮을수록 좋음
  • 예측 확률과 실제 결과(0 또는 1) 사이의 MSE

Murphy 분해:

\[\text{BS} = \underbrace{\text{Reliability}}_{\text{보정 품질}} - \underbrace{\text{Resolution}}_{\text{분리 능력}} + \underbrace{\text{Uncertainty}}_{\text{내재적 불확실성}}\]
  • Reliability: 보정이 얼마나 좋은가 (작을수록 좋음)
  • Resolution: 예측이 클래스를 얼마나 잘 분리하는가 (클수록 좋음)
  • Uncertainty: 결과의 내재적 불확실성 (데이터 고유, 모델과 무관)

Expected Calibration Error (ECE)

\[\text{ECE} = \sum_{b=1}^{B}\frac{n_b}{n}\left|\text{acc}(b) - \text{conf}(b)\right|\]
  • \(B\): bin 개수
  • \(n_b\): bin \(b\)의 샘플 수
  • \(\text{acc}(b)\): bin \(b\)의 실제 양성 비율
  • \(\text{conf}(b)\): bin \(b\)의 평균 예측 확률
  • bin별 보정 오차의 가중 평균

주의: ECE는 bin 개수와 binning 전략에 민감하다. 보고할 때는 bin 설정을 명시해야 한다.


Maximum Calibration Error (MCE)

\[\text{MCE} = \max_b \left|\text{acc}(b) - \text{conf}(b)\right|\]

최악의 보정 오차. 안전이 중요한 응용(의료, 자율주행)에서 유용하다.


Log Loss / Cross-Entropy

\[\text{Log Loss} = -\frac{1}{n}\sum_{i=1}^{n}\left[y_i \log(\hat{p}_i) + (1 - y_i)\log(1 - \hat{p}_i)\right]\]
  • 엄밀히 적절한 점수 규칙(Strictly Proper Scoring Rule): 참 확률을 예측할 때만 최적화됨
  • 자신 있게 틀린 예측에 매우 큰 페널티\(\hat{p} \to 0\)인데 \(y = 1\)이면 Log Loss → \(\infty\)
  • 보정과 판별 모두를 반영

보정 방법

Platt Scaling

모델 출력 점수 \(s\)에 로지스틱 회귀를 적합:

\[P(Y = 1 | s) = \frac{1}{1 + \exp(As + B)}\]
  • 파라미터 \(A\), \(B\)별도의 보정 세트(held-out calibration set)에서 학습
  • 적합한 경우: 시그모이드 형태의 보정이 적절할 때 (SVM, 신경망 출력)
  • 보정 세트 크기: 비교적 적은 데이터에서도 잘 작동

Isotonic Regression (등위 회귀)

비모수적 방법: 단조 증가(non-decreasing) 계단 함수를 보정 데이터에 적합.

  • Platt Scaling보다 유연함 — 비시그모이드형 보정 패턴도 처리
  • 과적합 위험: 보정 세트가 작으면 불안정
  • 경험 법칙: 보정 샘플 < 1000개 → Platt Scaling, > 1000개 → Isotonic Regression

Temperature Scaling (온도 스케일링)

신경망에 특화된 단일 파라미터 방법:

\[\hat{p}_i = \text{softmax}(z_i / T)\]
  • \(T > 1\): 예측을 부드럽게(soften) → 과대확신 완화
  • \(T < 1\): 예측을 날카롭게(sharpen)
  • \(T\)를 검증 세트의 NLL(Negative Log-Likelihood)을 최소화하여 결정
  • 장점: 매우 단순하고 효과적; 순위(ranking)를 변경하지 않으므로 AUC 불변

Histogram Binning (히스토그램 비닝)

비모수적: 각 bin에 보정된 확률을 직접 할당.

  • 매우 단순하지만 해상도가 낮다 (coarse)
  • bin 수가 적으면 정보 손실, 많으면 과적합

보정 방법 선택 가이드

flowchart TD
    A["보정 방법 선택"] --> B{"모델이 신경망인가?"}
    B -->|"예"| C["Temperature Scaling 우선"]
    B -->|"아니오"| D{"보정 데이터가<br/>1000개 이상인가?"}
    D -->|"예"| E["Isotonic Regression"]
    D -->|"아니오"| F["Platt Scaling"]
    C --> G{"결과 불만족?"}
    G -->|"예"| D

모델별 보정 특성

모델 유형 보정 경향 설명
로지스틱 회귀 좋음 설계상 보정됨 (MLE가 Log Loss 최적화)
잘 튜닝된 베이지안 모델 좋음 사후 확률이 직접 보정된 확률
SVM 나쁨 출력이 확률이 아님 (마진 값) — Platt Scaling 필수
Random Forest 보통~나쁨 확률이 0.5 근처로 편향되는 경향
신경망 나쁨 (과대확신) Guo et al. (2017): 현대 신경망은 과대확신 경향; Temperature Scaling 권장
Gradient Boosting 보통 적절히 보정되지만 완벽하지 않음

언제 사용하는가

보정이 중요한 경우:

응용 이유
의료 진단 예측 확률이 직접 치료 결정에 영향
날씨 예보 "비 올 확률 70%"가 실제 70%를 의미해야 사용자가 신뢰
자율주행 불확실성 정량화가 안전 결정에 필수
보험/금융 리스크 확률 기반 가격 책정
후속 의사결정에 확률이 입력될 때 순위만 중요한 경우가 아닌 모든 파이프라인

보정이 덜 중요한 경우: - 순위만 중요할 때 (상위 k개 추천) - 이진 결정만 필요할 때 (양성/음성 분류)


흔한 오해와 함정

  1. "AUC가 높으면 확률 예측도 좋다" — 아니다. AUC는 순위(ranking)만 평가한다. ROC-AUC가 높아도 보정이 매우 나쁠 수 있다.

  2. "보정 후 AUC가 변한다" — Platt Scaling과 Isotonic Regression은 순위를 변경할 수 있으므로 AUC가 변할 수 있다. Temperature Scaling은 순위를 보존하므로 AUC 불변.

  3. "모든 모델에 보정이 필요하다" — 순위만 필요한 작업(예: 검색 결과 정렬)에서는 보정 없이도 충분하다.

  4. "보정은 한 번 하면 영구적이다" — 데이터 분포가 변하면(concept drift) 보정도 다시 해야 한다.

  5. "ECE가 낮으면 보정이 완벽하다" — ECE는 bin 설정에 민감하다. 다른 binning으로 ECE가 달라질 수 있다. 신뢰도 다이어그램과 함께 확인하라.

  6. "로지스틱 회귀는 항상 잘 보정되어 있다" — 정규화가 강하거나, 특성이 누락되거나, 데이터 분포가 변하면 보정이 나빠질 수 있다.


다른 주제와의 연결