v7.4: Lean & Clean — 피처 정리와 Out-of-Time 검증
zero-importance 20개 피처 제거, OOT holdout 도입, US 데이터 70% 확충. KR 0.653, US 0.698 달성.
전략: "Lean & Clean"
v3~v6.1까지의 경험으로 확신했습니다: 피처를 추가해도 성능은 오르지 않는다. 오히려 불필요한 피처를 제거하는 게 더 효과적일 수 있다.
v7.4의 핵심 전략: 1. Zero-importance 피처 20개 제거 — 모델이 한 번도 사용하지 않은 피처 삭제 2. OOT (Out-of-Time) Holdout — 시간순 마지막 20%를 테스트셋으로 분리 3. Precision@Top-K — 가장 자신있는 상위 5% 예측의 정밀도 측정 4. Optuna 100 trials — 하이퍼파라미터 탐색 강화
US 데이터 대규모 확충
v7.2에서 US 과적합(CV-Holdout 갭 0.11)의 원인은 데이터 부족이었습니다.
| 항목 | v7.2 | v7.4 | 증가 |
|---|---|---|---|
| US 데이터 | 82K행 | 140K행 | +70% |
| US 종목 | 1,538 | 1,617 | +5% |
| US 뉴스 추가 | — | 178종목 × 24개월, 91,493건 | 신규 |
| CV-OOT 갭 | 0.11 | 0.044 | 60% 감소 |
결과
KR 모델
- 59,890행, 2,311종목, 77피처 - ROC-AUC: 0.653 (OOT), CV-OOT Gap: 0.015 (매우 안정) - Threshold: 0.605 (stacking) - Precision@Top-5%: 73.5% - Walk-forward 3윈도우: 0.64~0.69 (평균 0.669)
US 모델
- 140,262행, 1,617종목, 75피처 - ROC-AUC: 0.698 (OOT), CV-OOT Gap: 0.044 (대폭 개선) - Threshold: 0.56 (stacking, 73% precision, ~3-4 시그널/일) - Precision@Top-5%: 68.3% - Walk-forward 3윈도우: 0.725~0.760 (평균 0.744)
Stacking 확률 분포 분석
US 모델의 stacking 확률 분포가 매우 압축되어 있음을 발견: - 99th percentile = 0.56 - 학습 시 label 반전(barrier_label=0 → y=1) 주의 - oof_scaler 적용이 필수
이 분석으로 threshold를 0.56으로 최적화하여 하루 3~4개의 고정밀 시그널 발행이 가능해졌습니다.
Walk-Forward 검증
시간을 3구간으로 나누어 각각 훈련/테스트:
| 윈도우 | KR ROC-AUC | US ROC-AUC |
|---|---|---|
| Window 1 (가장 오래된) | 0.64 | 0.725 |
| Window 2 | 0.69 | 0.747 |
| Window 3 (최신) | 0.67 | 0.760 |
| 평균 | 0.669 | 0.744 |
US 모델이 시간이 지남에 따라 성능이 향상 → 데이터 축적 효과 확인.
핵심 교훈
1. 피처 제거가 피처 추가보다 효과적 — zero-importance 피처는 노이즈 2. OOT Holdout이 CV보다 신뢰성 높음 — 실전과 동일한 조건 3. 데이터 확충 = 과적합 해소 — US 갭 0.11 → 0.044 4. Walk-forward가 가장 현실적 검증 — 시간에 따른 모델 안정성 확인