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

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

Привет! На связи 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 показывает, что по мнению модели шансы обеих команд равны.
Источник: https://habr.com/ru/post/567892/


Интересные статьи

Интересные статьи

Недавно на проекте интегрировал модуль CRM Битрикса c виртуальной АТС Ростелеком. Делал по стандартной инструкции, где пошагово показано, какие поля заполнять. Оказалось, следование ей не гаран...
В этом обзоре хочу рассказать о сервисе JReader, над которым работаю. Он предназначен для людей, которые хотят эффективно и удобно читать англоязычные тексты. Предыстория или ...
Все, кто использует SSH знают, что при первом подключении к серверу, появляется сообщение с подтверждением отпечатка ключа. Дальше ключ сохраняется на стороне клиента, и больше это сообщение ...
Битрикс24 — популярная в малом бизнесе CRM c большими возможностями даже на бесплатном тарифе. Благодаря API Битрикс24 (даже в облачной редакции) можно легко интегрировать с другими системами.
Введение Двухфакторная аутентификация сегодня повсюду. Благодаря ей, чтобы украсть аккаунт, недостаточно одного лишь пароля. И хотя ее наличие не гарантирует, что ваш аккаунт не уведут, чтобы ее...