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

Оцени шансы на победу сил света в матче Dota 2.

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

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

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

Игроки могут получать золото и опыт за убийство чужих героев или прочих юнитов. Накопленный опыт влияет на уровень героя и позволяет улучшать свои способности.

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

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

Матч остановлен в некоторый (произвольный) момент времени. Тебе дана информация о всем происходящем до остановки, в том числе состояние всех героев. Необходимо оценить вероятность победы команды Radiant.

Обрати внимание — на этот раз не «угадать» кто победит. Нам важно оценить шансы на победу у команды Radiant.

В данной задаче тебе предлагается использовать площадь под ROC-кривой для оценки качества моделей.

Напомним, что площадь под кривой также называют ROC-AUC (от Area Under Curve). Она принимает значения в диапазоне от 0 до 1, считается, что чем выше ROC-AUC, тем лучше качество модели. Детальное описание ROC-AUC ты найдешь в конце документа.

Данные

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

  • train_matches.jsonl, test_matches.jsonl - полные описания матчей («сырые» данные);
  • train_features.csv, test_features.csv - таблицы с признаками от организаторов;
  • train_targets.csv - таблица с исходами матчей из обучающей выборки, в частности указание победителя;
  • sample_submission.csv - пример файла с решением.

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

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

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

Чтобы облегчить задачу, мы подготовили детальное описание задачи, игровых механик, собираемых данных, а также метрики ROC-AUC. Также участникам предоставляется обучающий tutorial с полным решением задачи, в уже привычном вам формате Ipython notebook.

Наверх