본문으로 건너뛰기

© 2026 Molayo

Zenn헤드라인2026. 06. 16. 09:13

경마 AI 개발 기록 #20 「확률의 척도」를 교정하기: 3분할 물리적 격리와 보존 회귀 (Isotonic Regression)

요약

경마 예측 모델의 과신 문제를 해결하기 위해 Isotonic Regression을 활용한 확률 교정(Calibration) 기법을 구현합니다. 모델의 스코어를 실제 적중 확률로 변환하고, ECE 지표를 통해 교정 정밀도를 검증하는 과정을 다룹니다.

핵심 포인트

  • Isotonic Regression을 사용하여 비선형 데이터에 유연한 확률 교정 구현
  • 고확률 샘플에 가중치를 부여하여 승부권 정밀도 향상
  • Softmax와 동적 클리핑을 통한 레이스 내 확률 분포 최적화
  • ECE(Expected Calibration Error)를 통한 예측 확률과 실제 적중률 간 괴리 측정

1. 개요

지난 기사(제19화)에서는 최강의 자금 관리 기법인 「켈리 기준 (Kelly Criterion)」을 도입했으나, 모델의 「과신 (Over-confidence)」으로 인해 자산이 괴멸했습니다.

랭킹 학습 모델이 산출하는 스코어는 어디까지나 「말의 서열」을 나타내는 상대적인 값이며, 그대로는 「적중 확률」이라는 절대적인 척도로서 기능하지 않습니다.

제20화에서는 모델이 출력하는 스코어를 「진정한 적중 확률」로 변환하는 확률 교정 (Calibration) 구현과, 그 과정에서 직면한 「교정 프로세스의 누수 (Leak)」를 타파하기 위한 검증 데이터의 3분할 격리 전략에 대해 해설합니다.

2. 구현 내용

적중 확률의 정밀도를 극한까지 높이기 위해, 다음과 같은 기술 스택을 probability_calibrator.py로 구현했습니다.

2-1. 보존 회귀 (Isotonic Regression) 채택

교정 기법에는 Scikit-learn의 IsotonicRegression을 채택했습니다.

채택 이유: 로지스틱 회귀 (Platt Scaling)와 같은 특정 함수 형태 (시그모이드 곡선)를 가정하지 않고, 데이터의 단조 증가성을 유지한 채 구간 선형 함수로 피팅합니다. 이를 통해 경마와 같이 데이터 분포가 비선형적으로 왜곡되어 있는 경우에도 유연하게 실제 확률에 적응시킬 수 있습니다.

2-2. 고확률대 중점 학습

기댓값 (EV) 계산에서 가장 중요한 것은 1착 후보가 되는 고확률대 (0.2 이상)의 정밀도입니다. 하지만 경마 데이터는 패배하는 말 (저확률대)이 압도적으로 많기 때문에, 일반적인 방식으로 학습시키면 저확률대의 정밀도에 끌려가게 됩니다.

이를 방지하기 위해 high_prob_weight를 도입했습니다. 적중 확률이 높은 샘플에 대해 학습 시 가중치를 최대 100배 (Optuna로 탐색)까지 끌어올림으로써, 승부권 내의 정밀도를 우선적으로 추구하는 메커니즘을 구축했습니다.

2-3. 레이스 내 Softmax와 동적 클리핑

교정기에서 출력된 생(raw) 확률은 그대로 두면 레이스 내의 합계가 1이 되지 않습니다. 이를 수학적으로 올바른 「확률 분포」로 만들기 위해 다음과 같은 후처리 파이프라인을 구축했습니다.

레이스 내 Softmax: 온도 파라미터 $T$를 도입하여 레이스 내에서 확률을 재배분.
동적 클리핑: 18두 경주와 8두 경주에서는 한 마리가 가질 수 있는 최대 확률이 물리적으로 다릅니다. 1.5 / num_horses를 상한으로 하는 동적인 커팅(clipping)을 수행하여, 극단적인 과대평가를 구조적으로 억제했습니다.

2-4. 평가 지표로서의 ECE (Expected Calibration Error)

확률 교정이 올바르게 기능하고 있는지를 판단하는 지표로서 **ECE (Expected Calibration Error)**를 채택했습니다.

ECE는 모델이 예측한 확률과 실제 적중 빈도 사이의 괴리를 정량화하는 지표입니다. 예를 들어, 모델이 「승률 20%」라고 예측한 말이 100마리 있을 때, 실제로 그중 약 20마리가 이겼다면 「교정되었다」고 간주할 수 있습니다.

구체적으로는 예측 확률을 몇 개의 빈 (Bin, 구간)으로 나누고, 각 빈 내에서의 「예측 확률의 평균」과 「실제 적중률」의 차이 (오차)를 계산하여 샘플 수로 가중 평균하여 산출합니다.

ECE가 0에 가까움: 예측 확률이 현실의 적중률과 일치하며, 신뢰할 수 있는 「척도」가 되어 있음.
ECE가 큼: 확률을 과대평가 (과신), 혹은 과소평가하고 있어 기댓값 계산에 큰 오차가 발생하고 있음.

이 ECE를 모니터링하고 최소화하도록 교정기를 튜닝함으로써, 수학적으로 타당한 투자 판단이 가능해집니다.

3. 직면한 문제

3-1. 교정 프로세스의 누수 (가짜 ECE 0.0005)

구현 초기, 교정 정밀도를 나타내는 지표 **ECE (Expected Calibration Error)**가 0.0005라는, 머신러닝 세계에서는 있을 수 없는 완벽한 수치를 기록했습니다.

조사 결과, 이는 심각한 「검증 데이터의 재사용」에 의한 누수(Leak)였습니다. LightGBM의 조기 종료 (Early Stopping)에 사용한 검증 데이터를 그대로 교정기의 학습 (Fit)에도 사용하고, 심지어 동일한 데이터로 ECE를 산출하고 있었던 것입니다. 모델이 이미 「본 적이 있는 정답」에 대해 확률을 맞춰버렸기 때문에, 겉보기 정밀도만 극대화되어 있었습니다.

3-2. 고확률대에서의 「계단형」 왜곡

보존 회귀 (Isotonic Regression)는 자유도가 높은 반면, 샘플 수가 적은 고확률대에서 출력이 「계단형 (일정 값에 달라붙는 현상)」이 되기 쉬운 특성이 있습니다. 이로 인해 기대값 계산의 해상도가 저하되고, ROI가 불안정해지는 문제가 발생했습니다.

4. 해결 접근법

4-1. 검증 데이터의 「3분할 물리적 격리」

리크 (Leak)를 근절하고, 교정기 (Calibrator)의 일반화 성능을 올바르게 평가하기 위해, 검증용 데이터셋 (val_df)을 레이스 단위로 다음과 같이 3개로 완전히 격리했습니다.

  • val_df_es (20%): LightGBM 학습 (Early Stopping) 전용.
  • val_df_calib (40%): IsotonicRegressionfit 전용.
  • val_df_ece (40%): 전략 튜닝 및 최종적인 ECE 평가 전용.

이를 통해 교정기는 「모델도 자신도 본 적 없는 미지의 데이터」에 대해 확률을 추정하는, 실전과 동일한 환경에 놓이게 됩니다.

4-2. 격리 후의 파이프라인 구조

5. 최종적인 해결책

격리된 클린한 환경에서 Optuna를 돌려, 다음과 같은 구성을 최종적인 「확률의 척도」로 확정했습니다.

  • 입력 데이터: 생 스코어 (Raw Score)가 아니라, 레이스 내에서의 위치를 나타내는 「백분위 순위 (Percentile Rank, 0~1)」를 입력으로 변환. 이를 통해 레이스 간의 스케일 차이를 흡수.
  • 목적 함수: 0.7 * ROI + 0.3 * Sharpe에 더해, ECE가 0.02를 초과할 경우 페널티를 부과하는 복합 지표.
  • 결과:
    • ECE (All Zones): 0.017~0.024 (현실적이면서도 극히 높은 정밀도)
    • ECE (High Prob >= 0.2): 0.037 (고확률대의 과신이 대폭 억제됨)
    • ROI: 2026년 Q1 포워드 테스트 (Forward Test)에서, 단순 베팅만으로도 **102.6%**를 기록.

6. 배운 점

교정은 「제3의 검증」을 필요로 하는 신성한 프로세스

통상적인 모델 학습 (Train/Valid)의 틀만으로는 확률 교정 시 반드시 리크가 발생합니다. 모델이 학습 시 과적합 (Overfitting)한 경향까지도 교정기가 「정답」으로 학습해 버리기 때문입니다. 교정기에는 모델의 편향 (Bias)을 객관적으로 수정하기 위한 「제3의 눈 (격리된 데이터)」이 필수적이라는 것을 통감했습니다.

정밀도 (Spearman)와 확신 (Calibration)의 역할 분담

랭킹 모델의 역할은 「말의 서열을 올바르게 나열하는 것」이며, 교정기의 역할은 「그 예측에 어느 정도의 가중치 (확률)를 실을지 결정하는 것」입니다. 이 두 가지가 분리되고 각각의 성능이 ECE와 Spearman 상관계수로 가시화됨으로써, 비로소 「왜 졌는가 (서열을 틀렸는가, 확률을 과신했는가)」를 논리적으로 분석할 수 있게 되었습니다.

「지지 않는 토대」로서의 정확한 확률

확률이 정확해짐으로써 기대값 (EV = 확률 × 배당률)이 비로소 의미를 갖게 되었습니다. 2026년 Q1이라는 난국 속에서 ROI 100% 초과를 유지할 수 있었던 것은, 정확한 척도를 통해 「기대값이 낮은 인기마」를 냉철하게 버리고, 「진정으로 기대값이 높은 복병마」에만 투자를 집중할 수 있었던 결과입니다.

7. 차기 예고

이번 연재는 여기서 일단 종료됩니다. 다시 소재가 모이면 재개하겠습니다.

Discussion

AI 자동 생성 콘텐츠

본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0