Dota Science: Роль киберспорта в обучении анализу данных
Transcript of Dota Science: Роль киберспорта в обучении анализу данных
Data Science of Dota 2:Роль киберспорта в обучении анализу данных
Петр РомовФКН ВШЭ, Yandex Data Factory
Соавтор курса по машинному обучению на Coursera
Александр Семенов, конференция INSNA, Sunbelt 2016
Киберспорт
• В мире:
Dota 2• Родоначальник жанра MOBA• Играют 2 команды по 5 человек каждая
Выбор героевИгра начинается с того что каждый игрок выбирает героя (персонажа), которым он будет играть из доступных 113
Характеристики героев… известны даже Гуглу!
Steam API и доступные данные
• Информация про все матчи– кто играл, с кем играл– кто победил– уровни игроков к концу игры, статистика по действиям
игроков• Информация о матче в режиме реального времени• Выгрузка информации из API почти не ограничена• Можно парсить реплеи матчей, извлекая
траектории и все действия игроков во времени
Задачи анализа данных
• Прогноз победителя– по составу игроков (до начала матча)– после выбора героев (в начале матча)– по ходу игры
• Рейтинг игроков, учитывающий специфику игры• Рекомендация действий/стратегий для игроков• Рекомендации по составлению команды• Умное управление камерой для комментаторов
матчей• …
Пул из 113 героев
Комбинации героев
Каждый из 10 игроков выбирает себе героя
Возможных комбинаций выбора героев
Всего сыграно матчей c Июля 2013(в том числе незаконченных, учебных и т.д.)
Чем отличаются матчи:1. Игроками и их стратегиями2. Выбранными героями
Задача: • Научиться оценивать вероятность победы
команды по известным выбранным героям
• Оценить, в какой степени влияет выбор героев, а в какой — умения игроков?
Комбинации героев• Популярные среди игроков веб-сервисы– Dotabuff.com– Datdota.com
• Попытки подойти к проблеме с научной точки зрения
Авторы Методы Выборка
Conley & Perry, 2013 Logistic regression, kNN 60 тыс.
Agarwala & Pearce, 2014 Logistic regression, PCA 40 тыс.
Kalyanaraman, 2014 Logistic regression, Genetic Algorithm
30 тыс.
Song et al., 2015 Logistic regression 3 тыс.
Kinkade & Lim, 2015 Logistic regression, Random Forest
62 тыс.
Наш набор данных• Период в 20 дней, не было изменений правил игры• Все рейтинговые матчи за период• Матчи игроков всех навыков• 5 млн. матчей• Датасет будет опубликован после окончания
соревнования
Наши результаты• Сравнили на фиксированном датасете– Наивные методы (Logistic regression, Naïve bayes)– XGBoost: Учет связей между героями и их
характеристик– Моделирование вероятности при помощи
факторизационных машин
Наши результаты
• Факторизационные машины дают наилучшую оценку вероятности победы команды
• Набор выбранных героев объясняет не менее• 6% информации (по Шенону) для опытных игроков• 10% информации для остальных
Финальное задание к курсу по машинному обучению на Coursera
• «Реальные» данные из индустрии– большие трудности с получением и публикацией
• Данные Dota 2:– доступны– никого не беспокоит их распространение
Финальное задание для Coursera
• Задача: Предсказать победившую команду по первым 5 минутам игры
• Данные: ≈120 тыс. распаршенных матчей– траектории движения игроков– временные ряды изменения свойств игроков
Ссылка на описание задания: http://goo.gl/gwj4ZQ
Соревнование Kaggle InClass
Соревнование Kaggle InClass
Соревнование Kaggle InClass
Соревнование условно-закрытое, «секретная» ссылка для участия:
Соревнование Kaggle InClass• Множество идей
– применение различных методов обучения и уменьшения размерности
– работа с сырыми данными и разработка собственных признаков– блендинг предсказаний разных моделей
• Отзывы– «Мне очень нравится эта задача, и я получаю удовольствие от ее
решения»– «…придумываешь признак, обсуждаешь его с людьми, которые
ничего не понимают в анализе данных, но не смотря на это вы можете поспорить, это всегда классно»
– «Идеи по улучшению модели по-прежнему есть … буду продолжать участвовать.»
Семинары на ВМК МГУ• Студенты 3 курса• Домашнее задание, первый опыт Kaggle• 9 из 18 студентов прониклись и сейчас
самостоятельно решают «BNP Paribas» на большом Kaggle
• 4 лучших решения презентованы на семинаре, слайды выложены на Github
https://github.com/esokolov/ml-course-msu/tree/master/ML15-spring/contests/contest01-dota
Хакатон Dota Science Challenge• Задача: построить и запустить систему, предсказывающую
результат матчей крупного соревнования Shanghai Major в режиме реального времени
• Участвовало 37 команд• 7 команд побили бейзлайн• Статья на Хабре (от участников)
«Опыт участия в хакатоне Dota Science …»
Хакатон: предсказания участников
Предсказание вероятности победы в реальном времени
Описание задачи: https://github.com/romovpa/dotascience-hackathon
• Поощряется уверенное предсказание (с большим значением вероятности)
• В случае уверенного, но в итоге неверного предсказания, решение получает очень большой штраф
Команда
Резюме
• Dota 2 и Киберспорт• Машинное обучение для предсказания
победы• Образовательный эксперимент– Финальное задание для Coursera– Соревнование на Kaggle InClass– Семинары на ВМК МГУ– Хакатон Dota Science Challenge