Pull to refresh

[Dota 2] Предсказание победителя матча в live с помощью машинного обучения

Reading time2 min
Views7.7K

Привет! На связи zmax505, я бы хотел рассказать о своём опыте по созданию проекта по MOBA игре Dota 2. Мы с iory разработали модель машинного обучения, которая анализирует игры в live и на основе различных данных предсказывает предполагаемого победителя встречи.

Кратко о проекте

HackProDota - некоммерческий проект для анализа профессиональных игр Dota 2 в рамках Tier 1 и Tier 2 турниров. Сервис запущен 8 мая 2021 г. и уже проанализировал 1799 игр с точностью (проходимостью) в 74.06% на момент написания статьи.

О предиктах

В среднем предикт выдаётся на ~10 минуте игры. Сервис работает в автоматическом режиме 24/7 и публикуют в телеграм канале почти все матчи в лайве с предполагамым исходом.

На примере выше мы можем увидеть матч между OG и Tundra Esports на 2 карте. Сервис опубликовал пост в тг на 11 минуте игры в лайве, предполагаемый победитель по мнению модели на момент публикации - OG c вероятным шансом 82%. Встреча закончилась победой dire.

О модели

Модель создана на основе нейросетей при помощи фреймворка TensorFlow на языке Python 3, используется библиотека Keras. После многочисленных тестов были выбраны именно нейросети, так как по сравнению с другими вариантами, они показали наибольшую эффективность.

Главная модель объединяет в себя несколько других моделей, например, модель для анализа купленных предметов каждого игрока radiant и dire, модель для анализа показателей по GPM/XPM каждого игрока radiant и dire и так далее. Это сделано для облегчения в тестировании, проверки и дальнейшей доработки/переобучения в случае необходимости.

О параметрах

Для анализа в реальном времени собираются десятки различных параметров, которые мы можем получить из официальных API от Steam.Помимо общих параметров (пики, команды, нетворсы, килы и т.д.) собираются и анализируется чуть больше 10 переменных для каждого героя в игре.

Где получаем данные

Используются официальные API от самих Valve.Подробнее можно узнать на их официальном ресурсе https://wiki.teamfortress.com/wiki/WebAPI#Dota_2

Заключение

Считаю, что проект вышел довольно успешным и показывает хорошие результаты, получилась 74%+ точность при большой выборки из 1800+ предиктов.

График распределения вероятностей (шансов) на тестовом наборе игр. Снизу отображаются шансы, 0 - вероятная победа dire, 1 - победа radiant. Показатель в ~0.5 показывает, что по мнению модели шансы обеих команд равны.
График распределения вероятностей (шансов) на тестовом наборе игр. Снизу отображаются шансы, 0 - вероятная победа dire, 1 - победа radiant. Показатель в ~0.5 показывает, что по мнению модели шансы обеих команд равны.
Tags:
Hubs:
Total votes 3: ↑1 and ↓2-1
Comments13

Articles