ХАКАТОН AI-ACADEMY 2019. ОНЛАЙН-ЭТАП

Определите опытность игрока в игре Dota 2 по статистике одного матча.

ЧТО ПРОИСХОДИТ В ИГРЕ DOTA 2?

В игре Dota 2 участвуют две стороны: команды сил Света (The Radiant) и сил Тьмы (The Dire). Каждая команда состоит из 5 игроков — персонажей со своими уникальными способностями.

Цель игры — разрушить трон, находящийся на базе противника.

Условие задачи

Твоя задача — построить алгоритм, который сможет определить опытность игрока по статистике из одного матча.

Даны обучающие (train) данные для построения моделей и тестовые (test) данные для проверки алгоритмов. Решением задачи являются предсказания ваших алгоритмов на тестовых данных.

Данные

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

Каждый предоставленный пример данных описывает характеристики матча и статистику одного из игроков на момент окончания матча.
Все примеры имеют уникальный идентификатор "id".

Было подготовлено два набора данных:

  • Обучающий Train, в котором для каждого примера известен тип медали опыта игрока.
  • Тестовый Test, где участникам неизвестна опытность игрока — ее необходимо вычислить.

Наборы данных предоставлялись в двух форматах:

  • CSV-таблицы: skill_train.csv, skill_test.csv.
  • JSON-документы: skill_train.jsonlines, skill_test.jsonlines (расширенный, содержит дополнительную информацию, которой нет в CSV-таблицах).

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

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

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

Формат решений

Для каждого примера из тестового набора необходимо предсказать опытность игрока. В систему необходимо предоставить для проверки CSV-таблицу с предсказаниями, она должна содержать две колонки: id — идентификатор примера, skilled — тип медали (0 — новичок, 1 — опытный).

Качество решения считалось как доля верно угаданных меток «опытный»/«новичок» по всем тестовым примерам. Детальное описание метрики доступно по ссылке ниже.

Для решения удобнее всего использовать язык программирования Python, так как для него есть большое число библиотек для анализа данных: NumPy, Pandas, SciKit-Learn и другие. В качестве инструмента разработки — интерактивную среду Jupyter.

Базовый пример решения от разработчиков доступен в виде Jupyter-тетради.

Наверх