Определите опытность игрока в игре Dota 2 по статистике одного матча.
В игре Dota 2 участвуют две стороны: команды сил Света (The Radiant) и сил Тьмы (The Dire). Каждая команда состоит из 5 игроков — персонажей со своими уникальными способностями.
Цель игры — разрушить трон, находящийся на базе противника.
Твоя задача — построить алгоритм, который сможет определить опытность игрока по статистике из одного матча.
Даны обучающие (train) данные для построения моделей и тестовые (test) данные для проверки алгоритмов. Решением задачи являются предсказания ваших алгоритмов на тестовых данных.
Для решения задачи участникам был предоставлен набор из почти 50 000 примеров матчей, уровень игрока в которых известен. Для каждого из ≈21 000 тестовых примеров, участникам необходимо было проанализировать данные о матче при помощи своих алгоритмов и дать ответ — опытный ли был игрок.
Каждый предоставленный пример данных описывает характеристики матча и статистику одного из игроков на момент окончания матча. Все примеры имеют уникальный идентификатор "id".
Было подготовлено два набора данных:
Наборы данных предоставлялись в двух форматах:
Для каждого примера из тестового набора необходимо предсказать опытность игрока. В систему необходимо предоставить для проверки CSV-таблицу с предсказаниями, она должна содержать две колонки: id — идентификатор примера, skilled — тип медали (0 — новичок, 1 — опытный).
Качество решения считалось как доля верно угаданных меток «опытный»/«новичок» по всем тестовым примерам. Детальное описание метрики доступно по ссылке ниже.
Для решения удобнее всего использовать язык программирования Python, так как для него есть большое число библиотек для анализа данных: NumPy, Pandas, SciKit-Learn и другие. В качестве инструмента разработки — интерактивную среду Jupyter.
Базовый пример решения от разработчиков доступен в виде Jupyter-тетради.