{
  "fetched_at": "2026-10-19T07:14:47Z",
  "source_url": "https://www.kaggle.com/competitions/ai-academy-dota-2-pro-gamer/data",
  "pages": [
    {
      "name": "data-description",
      "content": "<p>В этой задачи участникам предоставляется набор из 80000 примеров матчей, уровень игрока в которых известен. Для каждого из ≈20000 тестовых примеров, участникам необходимо проанализировать данные о матче при помощи своих алгоритмов и дать ответ — опытный ли был игрок. Хоть и рекомендованный язык питон, допускается использование любых языков программирования, библиотек, методов машинного обучения, разрешено использование внешних данных из сети интернет. </p>\n<p>\nУчастникам предоставляются наборы данных с примерами матчей. Каждый пример описывает характеристики матча и статистику одного из игроков на момент окончания матча. Все примеры имеют уникальный идентификатор \"id\".\n</p>\n<p>\nНаборы данных предоставляются в двух форматах:\n<ul>\n<li>CSV-таблицы: skill_train.csv, skill_test.csv</li>\n<li>JSON-документы: skill_train.jsonlines, skill_test.jsonlines (расширенный, содержит дополнительную информацию, которой нет в CSV-таблицах)</li>\n</ul>\n<hr>\n<h2>Описание Данных</h2>\nПро данные достаточно знать, что это некоторый набор чисел, идентификаторов и временных рядов, который потенциально несет в себе полезную информацию. Опыт игры в Dota 2 для использования данных не требуется.\n</p>\n<p>Дополнительно предоставляются файлы с дополнительной информацией по героям, предметам и умениям.: <p>\n<ul>\n<li><strong>dota2_skill_train.csv</strong> - выборка для обучения модели </li>\n<li><strong>dota2_skill_test.csv</strong> - выборка которую нужно разметить обученной моделью</li>\n<li><strong>Sample_Submission.csv</strong> - пример формата файла в котором ожидается ответ</li>\n<li><strong>Dota2SkillPrediction_Tutorial.ipynb</strong> - пример файла с решением</li>\n</ul>\n<h2>Поля данных</h2>\n<p>В данных присутствуют множество колонок с различной информацией по матчу. в файлах формата jsonl есть еще больше данных о матче и понадобится особо продвинутым ученикам:</p>\n<ul>\n<li><strong>dota2_skill_train.jsonlines, dota2_skill_testjsonlines</strong> - полные описания матчей («сырые» данные);</li>\n<li><strong>dota2_abilities.csv</strong> - описание способностей персонажей</li>\n<li><strong>dota2_heroes.csv</strong> - описание персонажей</li>\n<li><strong>dota2_items.csv</strong> -описание предметов из матча</li>\n</ul>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "<h2>Введение</h2>\n\n<p>Привет! Цель данного соревнования определить уровень навыка игрока по его действиям в матче. Конечно, для  неопытного человека, который плохо знаком с игрой довольно трудно провести четкую границу между опытным игроком и новичком. Но это не проблема для Машиного обучения!</p>\n<h2>Давай вспомним сюжет</h2>\n<p>В игре Dota 2 участвуют две стороны: команда сил Света (The Radiant) и команда сил Тьмы (The Dire). Каждая команда состоит из 5 игроков — персонажей со своими уникальными способностями. Перед началом матча каждый игрок выбирает себе одного героя из 100 возможных, причем все выбранные герои команд должны быть разными.</p>\n**Цель игры — разрушить трон, находящийся на базе противника.** \n<p> Игроки могут получать золото и опыт за убийство чужих героев или прочих юнитов. Накопленный опыт влияет на уровень героя и позволяет улучшать свои способности.\n</p>\n<p>\nНа накопленное золото игроки покупают предметы, улучшающие характеристики героев или дающие им новые способности. В течение игры команды развивают своих героев, обороняют свою часть поля и нападают на вражескую.\n</p>\n\n\n<h2>Условие задачи</h2>\n<p> \nТвоя задача — построить алгоритм, который сможет определить опытность игрока по статистике из одного матча. Даны обучающие (train) данные для построения моделей и тестовые (test) данные для проверки алгоритмов. Решением задачи являются предсказания ваших алгоритмов на тестовых данных.\n</p>\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "<p>Для каждого примера из тестового набора необходимо предсказать опытность игрока. В систему необходимо предоставить для проверки CSV-таблицу с предсказаниями, она должна содержать две колонки: id — идентификатор примера, skilled — уровень мастерства </p>\n<h2>Рекомендация по решению</h2>\nДанная задача не похожа на те, которые вам обычно встречаются. Точного решения добиться будет трудно, так как данные взяты из реального мира: в компьютерных играх всегда присутствует случайность и человеческий фактор, который не позволяет во всех случаях безошибочно определять целевую переменную. Это открывает огромный простор для творчества и экспериментов. Решая задачу, участникам предлагается ознакомиться с техниками анализа данных и машинного обучения. \n\nДля решения удобнее всего использовать язык программирования Python, так как для него есть большое число библиотек для анализа данных: NumPy, Pandas, SciKit-Learn и другие. В качестве инструмента разработки — интерактивную среду Jupyter.\n<p></p>\n<hr>\nЧтобы облегчить тебе задачу, мы подготовили пример файла с решением, а также обучающий IPython Notebook Dota2SkillPrediction_Tutorial.ipynb с простым, но полным решением задачи.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "Это страница, на которой написаны правила, которые должны выполнятся  всеми участниками соревнования.\nПравила следующие:\n\n- Задавайте вопросы по задаче на форуме\n- Экспериментируйте\n- Выбирайте лучшую модель\n- Отправляйте предсказания\n- Побеждайте!",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}