← Tier.SC 메인

보정 곡선

마지막 수정: 2026-04-22 18:48 KST

보정(calibration)은 모델이 "70% 승률"이라고 말한 경기 중 실제로 70%가 이기는가를 본다. AUC는 순위만 측정하므로, 확률값 자체를 사용자에게 "승률 %"로 노출하려면 보정이 별도로 필요하다.

왜 굳이 보정을 따로 보는가

AUC만 보는 모델은 "5등이 3등보다 잘한다"만 맞히면 된다. 그러나 본 웹페이지는 예측 결과를 승률 %로 노출한다. 사용자가 "65%"를 보고 기대하는 것은 실제 빈도 65%이지, 내부 점수의 상대 순위가 아니다. 이 기대를 부수지 않으려면 보정이 지표상으로도, 그래프상으로도 확인되어야 한다.

Sigmoid (Platt) 보정이 하는 일

LightGBM 원 출력은 확률처럼 생겼지만 실제 빈도와 일치한다는 보장이 없다 — 특히 하드 라벨(0/1)로 학습한 경우 출력이 극단으로 쏠리는 경향이 있다. Platt scaling은 한 쌍의 로지스틱 파라미터 $(A, B)$를 홀드아웃 데이터로 학습하여

$$p_{\text{calibrated}} = \sigma(A \cdot z + B)$$

로 재매핑한다. 여기서 $z$는 원 모델의 logit 출력. 파라미터 2개만 추가되므로 과적합 위험이 작고, 단조 변환이라 AUC는 변하지 않는다. 보정 곡선을 회색선에 맞추는 가장 가벼운 후처리이면서 본 데이터에서 충분한 효과를 준다.

Brier와 ECE의 역할 차이

  • Brier score $= \frac{1}{N}\sum_i (p_i - y_i)^2$. 확률 예측의 평균 제곱 오차. 낮을수록 좋다. 모든 샘플을 동등하게 본다.
  • ECE (Expected Calibration Error). 각 bin에서 "평균 예측 확률"과 "실제 승률"의 차이를 샘플 수로 가중 평균한 값. 보정 곡선을 하나의 숫자로 요약한 지표.

Brier는 정확도와 보정을 함께 측정하고, ECE는 보정만 측정한다는 점에서 보완적이다.

그래프

Calibration curve (10 bins)

  • 가로축: 모델이 예측한 승률 (0~1을 10개 구간으로 분할)
  • 세로축: 각 구간 내 실제 승리 빈도
  • 회색 점선 $y = x$: "완벽한 보정". 예측이 곧 실제 빈도와 일치하는 상태.
  • 각 점 위의 n=: 해당 bin의 샘플 수

점이 회색선 위에 있으면 모델이 그 구간에서 과소평가(실제 승률이 더 높음), 아래에 있으면 과대평가다. 회색선에 밀착할수록 좋다.

본 모델 결과

  • 전 구간에서 점들이 회색선에 근접.
  • 실무적으로 "모델이 70%로 예측한 경기는 실제로 약 70% 이긴다"고 읽어도 무리 없는 수준.

하단 히스토그램 해석

보정 곡선 아래의 분포는 예측 확률이 어느 구간에 몰려 있는가를 보여준다. 본 데이터에서는 0.3~0.7 구간의 접전 경기가 지배적이며, 이 분포가 LogLoss의 자연스러운 바닥을 높이는 원인이다. 극단 확률(0.05, 0.95)이 드문 만큼, 그 구간에서의 bin 샘플 수는 적고 보정 점의 통계적 신뢰도도 상대적으로 낮다.

세부 지표의 종합적 해석은 지표 해석 참조.