ХАКАТОН AI-ACADEMY 2019. ФИНАЛ

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

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

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

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

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

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

В этой задаче необходимо оценить вероятность классов (0 — новичок, 1 — опытный), а не «угадывать» правильный ответ — метрика качества ROC AUC.

Для анализа можно использовать продвинутые техники feature engineering, нейронные сети и deep learning.

Данные

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

Для соревнования были подготовлены два набора данных:

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

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

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

Можно и нужно использовать данные с онлайн-этапа.

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

Твоя задача — построить алгоритм, оценивающий вероятность класса skilled. В задаче онлайн-этапа нужно было определить опытность игрока, указывая в ответе 0 или 1, а качество предсказаний измерялось с помощью метрики Accuracy (Точность).

Теперь задача заключается в том, чтобы оценить шанс (вероятность в диапазоне от [0, 1]) того, что игрок опытный. На практике это означает, что в ответе теперь указывается не просто 1, если ваш алгоритм предсказал, что игрок опытный, а некоторое число близкое к 1, например: 0.8742.

Построенный алгоритм нужно было запустить на тестовых данных, сохранить результат в .csv-файл и отправить его как свое решение.

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

Наверх