NTDevLab / ODP

Методология прогнозирования

ODP использует научный подход к прогнозированию матчей Dota 2, основанный на машинном обучении и строгой валидации моделей.

Ансамблевый подход

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

  • LightGBM — быстрый градиентный бустинг для табличных данных
  • CatBoost — специализирован на категориальных признаках
  • XGBoost — классический градиентный бустинг с высокой точностью

Финальный прогноз формируется путем взвешенного усреднения предсказаний всех моделей, где веса определяются на основе производительности каждой модели на валидационных данных.

Почему ансамбль? Разные модели улавливают разные паттерны в данных. Комбинируя их предсказания, мы получаем более стабильные и точные результаты.
Ensemble Architecture

Инженерия признаков

Качество прогнозов напрямую зависит от качества признаков. Наша система использует несколько десятков признаков, сгруппированных по категориям.

Ключевой принцип: Все признаки вычисляются как разности (diff) между командами, а не абсолютные значения. Это делает модель инвариантной относительно того, какая сторона играет за Radiant или Dire.
Основные категории признаков:
Командные признаки
  • История встреч (head-to-head)
  • Текущая форма (скользящие окна)
  • Разность средних KDA и GPM
  • Стабильность результатов (дисперсия)
Игровые признаки
  • Статистика игроков по ролям
  • Мастерство на конкретных героях
  • Глубина пула (кол-во героев)
  • Индивидуальная форма игроков
Признаки драфта
  • Агрегированный винрейт пула героев
  • Мета-рейтинги героев на текущем патче
  • Взаимодействие героев (разность агрегатов)
  • Баланс ролей в команде
Контекстные признаки
  • Тип и уровень турнира
  • Формат серии (BO1, BO3, BO5)
  • Сезонная история команд
  • Патч — отклонение от базового периода
Feature Categories Distribution

Валидация моделей

Мы используем строгую методологию валидации, чтобы избежать переобучения и получить реалистичные оценки точности.

Временное разделение данных (Temporal Split)

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

  • Мета игры меняется с каждым патчем — данные из будущего нельзя использовать при обучении
  • Команды меняют составы и стратегии — их прошлые результаты не всегда репрезентативны
  • Случайное разделение создаёт утечку данных и завышает оценки точности
5-fold временная кросс-валидация

Для оценки качества моделей мы применяем 5-fold temporal cross-validation: данные делятся на 5 последовательных временных периодов, модель обучается на предыдущих и оценивается на следующем. Финальная оценка — среднее по всем фолдам.

7-дневный буфер

Между обучающей и тестовой выборками оставляется 7-дневный буфер — матчи из этого периода исключаются полностью.

Зачем буфер? Признаки формы команды агрегируются за последние N дней. Без буфера матчи из тестовой выборки могут попасть в обучающие агрегаты — это и есть утечка данных (data leakage).
Метрики качества
  • Accuracy — доля правильных предсказаний победителя (главная метрика)
  • ROC AUC — ранжирующая способность модели (диагностическая, вторичная)
  • Calibration — соответствие предсказанных вероятностей реальным частотам
  • Brier Score — качество вероятностных прогнозов
Главная метрика продакшена: prediction == match_result. Улучшение AUC при ухудшении accuracy — это регрессия, не прогресс. Только точность предсказания победителя имеет практическое значение для пользователей.
Temporal Validation Timeline

Калибровка и борьба с переобучением

Даже хорошо обученная модель может быть "самоуверенной" — давать вероятности близкие к 0% или 100%, когда реальная неопределенность выше.

Методы калибровки:
  • Platt Scaling — логистическая регрессия поверх предсказаний модели
  • Isotonic Regression — непараметрическая калибровка для сложных случаев
  • Temperature Scaling — простой метод для нейронных сетей
Предотвращение переобучения:
  • Early Stopping — остановка обучения при ухудшении на валидации
  • Регуляризация — L1/L2 пенализация сложных моделей
  • Feature Selection — удаление шумных и коррелирующих признаков
  • Cross-Validation — проверка стабильности на разных временных периодах
Calibration Curve

Непрерывное улучшение

Модели переобучаются по мере накопления новых данных — особенно после смены патча, изменения состава команд или значительных сдвигов в мете.

  • Мониторинг производительности в реальном времени через Accuracy Dashboard
  • Проверка новых признаков на временной кросс-валидации перед включением в продакшн
  • Анализ ошибок — какие команды и сценарии модель систематически угадывает неверно
  • Аудит утечек данных (data leakage) при добавлении каждого нового признака
Прогнозирование Dota 2 — принципиально сложная задача. Базовый уровень случайного угадывания — 50%. Цель — стабильно превышать этот порог при сохранении честной валидации.

Результаты

Точность варьируется в зависимости от периода, уровня турнира и текущего патча. Мы не публикуем фиксированные цифры — они устаревают и создают ложное ощущение стабильности.

  • Случайное угадывание

    50% — базовый ориентир для сравнения

  • Актуальная статистика

    Смотреть на странице статистики →

  • Результаты нестабильны

    После смены патча или крупных ростеров точность может временно снижаться

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

Важные ограничения

Наши прогнозы — это вероятностные оценки, а не гарантии. Даже при 80% вероятности победы команда может проиграть в 20% случаев.

  • Непредвиденные факторы (технические проблемы, замены игроков)
  • Психологическое состояние команд
  • Новые стратегии и неожиданные драфты
  • Случайность в игре (криты, баши, рандом рун)
Не используйте для ставок! Прогнозы предназначены для аналитики и развлечения, а не для азартных игр.

Узнать больше

Хотите глубже погрузиться в технические детали?