Иллюзия 80% Winrate. Как мы победили data leakage в спортивном моделировании с помощью CatBoost

Большинство количественных моделей в спортивном беттинге выглядят идеально на бэктестах, выдавая «космические» 70–80% точности. Но при деплое в реальные условия (Out-of-sample) капитал начинает стремительно таять.

На ранних этапах разработки алгоритмов QuantSport мы столкнулись с той же проблемой. Главный враг предиктивного моделирования в спорте — классическая временная утечка данных (temporal data leakage) и нестационарность среды.

Рассказываю, как мы перестроили архитектуру валидации, отказались от кросс-валидации и начали искать математический перевес (Expected Value).

Проблема: Ловушка стандартной кросс-валидации

Спортивные данные обладают экстремальной нестационарностью. Дисперсия огромна, а форма команд, мотивация и составы меняются еженедельно.

Когда дата-сайентист применяет к таким данным стандартную K-Fold кросс-валидацию, модель неизбежно «заглядывает в будущее» (look-ahead bias). Алгоритм «узнает», что команда выдала серию побед в декабре, и использует этот вес для предсказания ее матча в октябре того же года. Итог: переобучение (overfitting), красивые метрики в Jupyter Notebook и полный крах при столкновении с реальной линией букмекера.

Решение: Walk-Forward Validation

Мы полностью вырезали статическую валидацию из пайплайна. На смену пришел строгий последовательный подход — Walk-Forward temporal framework.

Механика проста, но вычислительно затратна: мы обучаем ансамбль (CatBoost) на Сезоне N, тестируем на Сезоне N+1. Затем добавляем N+1 в обучающую выборку, переобучаем модель и тестируем на N+2.

Это заставляет градиентный бустинг работать в условиях жесткой реальности: модель прогнозирует исход, опираясь только на те данные, которые исторически предшествовали моменту матча.

Метрики: Математическое ожидание (EV) против дисперсии

Мы не занимаемся «угадыванием победителя». Наша задача — находить ситуации, где вероятность исхода, рассчитанная нашей моделью (P_{model}), превышает вероятность, заложенную в коэффициент рынка.

EV = (P_model × Odds) — 1

Если EV > 0, система фиксирует сигнал. Текущие валидированные (OOS) результаты нашей архитектуры на выборке из 138 рынков:

  • Футбол (1X2): 44.4% Accuracy. В реалиях трехисходки это высокий показатель. Модель стабильно находит валуйные коэффициенты в диапазоне 2.20–2.50, эксплуатируя систематические ошибки рынка в недооценке аутсайдеров.
  • NHL (Moneyline П1/П2): 57.7% Accuracy. В самой ликвидной хоккейной лиге мира мы работаем с двухисходкой (победа в матче с учетом овертайма). Модель изолирует чистую вероятность победителя, отсекая шум ничьих в основное время.
  • Тоталы (Over/Under): 58.5% Accuracy. Наиболее стабильный сегмент для хеджирования дисперсии, основанный на моделировании отклонений результативности от средних значений лиги.
  • Live-рынки (Угловые): 75% Accuracy. Высокий винрейт здесь обусловлен поиском глубоких перекосов в динамике live-линии, где алгоритм реагирует на микро-статистику быстрее маркетмейкера (при рабочих КФ от 1.55).

Мы не играем против конкретных команд. Мы играем против неэффективно оцененных вероятностей.

Иллюзия 80% Winrate. Как мы победили data leakage в спортивном моделировании с помощью CatBoost

Открытая архитектура

Мы строим QuantSport не как закрытый VIP-клуб, а как прозрачную B2B-инфраструктуру.

Для тех, кто хочет изучить наш публичный слой данных, документацию и записаться в Waitlist — вся информация доступна на нашем сайте-визитке.

Сырые данные, логи обучения моделей, разборы архитектуры и ежедневные автоматические отчеты по найденному EV мы публикуем в нашем Telegram-канале. Математика важнее интуиции.