Как работает ELO-рейтинг команд Dota 2

Идея

ELO придумали для шахмат. Суть простая: после каждого матча очки переходят от проигравшего к победителю. Обыграл сильного — получил много. Проиграл слабому — потерял много.

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

Ожидаемый результат

Перед серией модель считает ожидаемый результат команды A по разнице рейтингов:

E(A) = 1 / (1 + 10^((R(B) − R(A)) / 400))

Разница в 100 очков — это примерно 64% на победу в карте, 200 очков — 76%, 400 — 91%. На сайте шанс на карту ограничен 10–90%: модель никогда не «уверена на 100%».

Сколько очков стоит серия

Рейтинг меняется после завершённой серии, а не после каждой карты:

Δ = K × (результат − E)

Базовый K = 32 — умеренный, чтобы один апсет не устраивал дикие скачки. Он умножается на три поправки:

  • Вес турнира. По умолчанию Tier 1 = 1.0, Tier 2 = 0.6, квалификации = 0.3. Для отдельных событий вес можно поднять — TI весит больше.
  • Стадия. Плей-офф ×1.2, гранд-финал ×1.5, когда стадия известна.
  • Счёт. 2:0 засчитывается полностью, 2:1 — на две трети, ничья 1:1 в BO2 — наполовину и подтягивает обе команды к середине.

Пример на Tier 1: команда с 1600 обыгрывает 1500 со счётом 2:0 — +12. При 2:1 — +8. А если 1500 обыгрывает 1600 со счётом 2:0 — +20: неожиданная победа стоит больше.

Три дивизиона

Рейтинг живёт в трёх отдельных пулах: Дивизион 1 (Tier 1), Дивизион 2 (Tier 2) и Миксы / стаки — собранные составы из открытых квалификаций, не настоящие организации. Каждый пул стартует с 1500, поэтому числа между ними сравнивать нельзя: 1535 во втором дивизионе — не «выше» 1500 в первом. Читай каждую таблицу отдельно.

Когда команды из разных дивизионов всё-таки встречаются, в ожидаемый результат добавляется 200 очков за каждую ступень. Так 1700 во втором дивизионе против 1500 в первом — это равная встреча, и команда второго дивизиона, побеждая своих, не перепрыгивает Tier 1, с которым ни разу не играла.

Дивизион команды отражает уровень, на котором она реально играет, и может меняться: команда второго дивизиона, которая начинает брать результаты в Tier 1, поднимается, и наоборот.

От карты к серии

Шанс выиграть серию считается из шанса на карту p:

BO3: p² × (3 − 2p)  ·  BO5: p³ × (10 − 15p + 6p²)  ·  ничья в BO2: 2p × (1 − p)

Именно эти числа на полосе вероятности у каждого матча и в сравнении команд.

Пересчёт с нуля

Результаты подтягиваются автоматически, и после каждого нового результата все рейтинги пересчитываются заново — по всем отслеженным сериям в хронологическом порядке. Исправленный результат или добавленная серия корректно влияют на всё, что было после. Команды, сыгравшие турнир под другим названием, делят один рейтинг. Рейтинг держится в пределах 800–3500.

Ограничения

Модель видит только отслеженные серии. Она ничего не знает о стендинах, болезнях или мотивации — поэтому новой команде нужно несколько серий, чтобы рейтинг устоялся, а мой прогноз иногда идёт против модели. Насколько хорошо модель угадывает сама, видно в блоке «Против модели ELO» на странице статистики.

Посмотреть в деле: ELO-рейтинг · история и апсеты.