보정(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는 보정만 측정한다는 점에서 보완적이다.
그래프

- 가로축: 모델이 예측한 승률 (0~1을 10개 구간으로 분할)
- 세로축: 각 구간 내 실제 승리 빈도
- 회색 점선 $y = x$: "완벽한 보정". 예측이 곧 실제 빈도와 일치하는 상태.
- 각 점 위의 n=: 해당 bin의 샘플 수
점이 회색선 위에 있으면 모델이 그 구간에서 과소평가(실제 승률이 더 높음), 아래에 있으면 과대평가다. 회색선에 밀착할수록 좋다.
본 모델 결과
- 전 구간에서 점들이 회색선에 근접.
- 실무적으로 "모델이 70%로 예측한 경기는 실제로 약 70% 이긴다"고 읽어도 무리 없는 수준.
하단 히스토그램 해석
보정 곡선 아래의 분포는 예측 확률이 어느 구간에 몰려 있는가를 보여준다. 본 데이터에서는 0.3~0.7 구간의 접전 경기가 지배적이며, 이 분포가 LogLoss의 자연스러운 바닥을 높이는 원인이다. 극단 확률(0.05, 0.95)이 드문 만큼, 그 구간에서의 bin 샘플 수는 적고 보정 점의 통계적 신뢰도도 상대적으로 낮다.
세부 지표의 종합적 해석은 지표 해석 참조.