← Tier.SC 메인

보정 곡선

마지막 수정: 2026-07-05 13:44 KST

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

왜 굳이 보정을 따로 보는가

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

Beta calibration 이 하는 일 (2026-06-03 ~)

LightGBM 원 출력은 확률처럼 생겼지만 실제 빈도와 일치한다는 보장이 없다. 초기에는 Sigmoid (Platt) scaling — 로지스틱 파라미터 $(A, B)$ 2개로 $p = \sigma(A z + B)$ 재매핑 — 을 썼다. 가볍고 단조 변환이라 AUC를 바꾸지 않지만, 대칭형(기울기 하나)이라 보정 곡선의 비대칭 편차를 잡지 못한다. 실제로 2026-06-03 모델은 sigmoid 하에서 65-75% 구간 과신(−4~5%p) + 80%+ 구간 과소(+4%p) 가 동시에 남았다 — 한 방향으로 휜 게 아니라 양끝이 반대로 휜 구조라 단일 기울기로는 둘 다 못 편다.

그래서 beta calibration (Kull et al.) 으로 교체했다. 원 확률 $p$에 대해

$$p_{\text{calibrated}} = \sigma!\big(a\,\ln p \;-\; b\,\ln(1-p) \;+\; c\big)$$

로 재매핑한다 (파라미터 3개, 홀드아웃의 직전 구간[calib]에서 로지스틱 회귀로 적합). $\ln p$ 와 $\ln(1-p)$ 의 계수를 따로 두므로 곡선 양끝의 휨을 비대칭으로 교정할 수 있다. 여전히 smooth·단조 변환(AUC 불변)이고 isotonic 같은 step function이 아니다 — 파라미터형이라 과적합 위험도 작다.

검증(out-of-time hold-out + 5-fold time-CV): ECE 0.0254 → 0.0111, 65-75% gap −3.9/−5.3 → −2.9/−1.8, 80%+ gap +3.8 → +0.8. 모든 구간 ±3%p 이내로 수렴하며 sigmoid를 5-fold 중 4개에서 일관 우위. AUC·Brier 손상 없음. 서빙(프론트 sector9.js)과 파이프라인(model_wrapper.py)이 동일 공식을 적용해 판정동등성 유지.

Brier와 ECE의 역할 차이

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

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

그래프

Calibration curve — Sigmoid(이전) vs Beta(현재)

  • 주황 점선 = Sigmoid 보정(ECE 0.0172) / 초록 실선 = Beta 보정(ECE 0.0123) — 현재 모델(2026-07-05)의 raw 예측에 두 보정을 각각 입혀 비교. Beta가 전 구간에서 대각선(완벽보정)에 더 밀착한다. (sigmoid→beta 교체 결정은 2026-06-03; 아래 "왜 교체했나" 참조.)
  • 강조된 65–75% 구간에서 Sigmoid는 y=x 아래(과신)였으나 Beta는 대각선에 밀착. 최상위(80%+)의 과소도 함께 해소돼 전 구간 ±3%p 이내.
  • 가로축: 모델이 예측한 승률 (0~1을 10개 구간으로 분할)
  • 세로축: 각 구간 내 실제 승리 빈도
  • 회색 점선 $y = x$: "완벽한 보정". 예측이 곧 실제 빈도와 일치하는 상태.
  • 각 점 위의 n=: 해당 bin의 샘플 수

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

본 모델 결과

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

하단 히스토그램 해석

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

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