Giter Site home page Giter Site logo

project_dota's Introduction

Предметная область: Игра Dota 2

Dota 2 — многопользовательская компьютерная игра жанра MOBA. Игроки играют между собой матчи. В каждом матче участвует две команды, 5 человек в каждой. Одна команда играет за светлую сторону (The Radiant), другая — за тёмную (The Dire). Цель каждой команды — уничтожить главное здание базы противника (трон).

Существуют разные режимы игры, мы будем рассматривать режим Captain's Mode, в формате которого происходит большая часть киберспортивных мероприятий по Dota 2.

Как проходит матч

1. Игроки выбирают героев

Всего в игре чуть более 100 различных героев (персонажей). В начале игры, команды в определенном порядке выбирают героев себе и запрещают выбирать определенных героев противнику (баны). Каждый игрок будет управлять одним героем, в рамках одного матча не может быть несколько одинаковых героев. Герои различаются между собой своими характеристиками и способностями. От комбинации выбранных героев во многом зависит успех команды.

2. Основная часть

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

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

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

3. Конец игры

Игра заканчивается, когда одна из команд разрушет определенное число "башен" противника и уничтожает трон.

Задача: предсказание победы по данным о первых 5 минутах игры

По первым 5 минутам игры предсказать, какая из команд победит: Radiant или Dire? Признаки, представленные в таблице features.csv

Описание признаков в таблице

  • match_id: идентификатор матча в наборе данных
  • start_time: время начала матча (unixtime)
  • lobby_type: тип комнаты, в которой собираются игроки (расшифровка в dictionaries/lobbies.csv)
  • Наборы признаков для каждого игрока (игроки команды Radiant — префикс rN, Dire — dN):
    • r1_hero: герой игрока (расшифровка в dictionaries/heroes.csv)
    • r1_level: максимальный достигнутый уровень героя (за первые 5 игровых минут)
    • r1_xp: максимальный полученный опыт
    • r1_gold: достигнутая ценность героя
    • r1_lh: число убитых юнитов
    • r1_kills: число убитых игроков
    • r1_deaths: число смертей героя
    • r1_items: число купленных предметов
  • Признаки события "первая кровь" (first blood). Если событие "первая кровь" не успело произойти за первые 5 минут, то признаки принимают пропущенное значение
    • first_blood_time: игровое время первой крови
    • first_blood_team: команда, совершившая первую кровь (0 — Radiant, 1 — Dire)
    • first_blood_player1: игрок, причастный к событию
    • first_blood_player2: второй игрок, причастный к событию
  • Признаки для каждой команды (префиксы radiant_ и dire_)
    • radiant_bottle_time: время первого приобретения командой предмета "bottle"
    • radiant_courier_time: время приобретения предмета "courier"
    • radiant_flying_courier_time: время приобретения предмета "flying_courier"
    • radiant_tpscroll_count: число предметов "tpscroll" за первые 5 минут
    • radiant_boots_count: число предметов "boots"
    • radiant_ward_observer_count: число предметов "ward_observer"
    • radiant_ward_sentry_count: число предметов "ward_sentry"
    • radiant_first_ward_time: время установки командой первого "наблюдателя", т.е. предмета, который позволяет видеть часть игрового поля
  • Итог матча (данные поля отсутствуют в тестовой выборке, поскольку содержат информацию, выходящую за пределы первых 5 минут матча)
    • duration: длительность
    • radiant_win: 1, если победила команда Radiant, 0 — иначе
    • Состояние башен и барраков к концу матча (см. описание полей набора данных)
      • tower_status_radiant
      • tower_status_dire
      • barracks_status_radiant
      • barracks_status_dire

Метрика качества

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

Ссылка на соревнование: Dota 2: Win Probability Prediction

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.