8 мин.

Эло H2H Fantasy рейтинг

Прочитав заголовок, вы, наверное, подумали, ну куда ещё эти рейтинги, что нам мало рейтинга на сайте Князева и рейтинга Анисимова? Но нет предела совершенству, и в этом посте я постараюсь привести основные недостатки существующих рейтингов и предложить новый - на основе рейтинга Эло, который эти недостатки полностью или частично решит. 

Объективный рейтинг с наименьшим количеством недостатков и противоречий очень важен для организации турниров: уже сейчас на основе рейтинга франшиз будет произведён набор команд ЛЧ следующего сезона. И я думаю, что это не последнее применение рейтинга.

 

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

Основной рейтинг видится мне более подходящим для оценки именно H2H-потенциала команды, но необходимо отметить три момента:

  1. Поскольку рейтинг основан на очках, то ситуации, в которых команда обыграла оппонента по фо, но из-за неудачного расположения игроков по доскам проиграла 4-2 или 3-2, будут иметь немалое значение. Хоть мне и кажется, что подобные ситуации - это лишь статистический шум, который скомпенсируется на дистанции, они всё равно вносят свой вклад в рейтинг.

  2. Гораздо более значимая проблема, на мой взгляд, - это уравнивание очков полученных в высших и низших лигах чемпионатов: так, не самая сильная команда, хорошо играющая во 2х лигах, может довольно высоко подняться в рейтинге, даже если она слабее команд, играющих в первых дивизионах. Или, наоборот, довольно добротная команда, играющая в Премьер-Лигах всех чемпионатов, но идущая там в середине, будет иметь рейтинг ниже, чем лидеры низших лиг. В этом сезоне эта проблема слегка сглажена, но уже в следующем, когда немало сильных франшиз поднимется из низших дивизионов вверх, этот эффект может выйти на первый план.

  3. Не учитываются кубковые игры

Альтернативный рейтинг, безусловно, решает первые две проблемы основного рейтинга, но добавляет свои:

  1. Он вынуждает играть все турниры. Я, безусловно, согласен с утверждением, что сильные команды должны быть сильны везде, но заставлять команды играть Мексику ради рейтинга противоречит, на мой взгляд, спортивному принципу. При этом довольно легко придумать ситуацию, когда очень сильная команда, не играющая пару турниров, будет обитать за пределами первой 20 этого рейтинга, занимая при этом первые места в чемпионатах, где участвует, более того, неучастие даже в одном турнире отправляет команду на 10-20 мест вниз.

  2. Общий зачёт и H2H - это всё-таки немного разные игры. В общем зачёте главное, где игрок окажется в конце сезона, в то время как в H2H важен каждый тур. Можно придумать много ситуаций, в которых команда абсолютно по делу проигрывает матч H2H, но совершает абсолютно правильное решение для игры на дистанции и, следовательно, занимает более высокое место по ФО. Здесь могут быть и выбор единого капитана всей командой, и планирование на несколько туров вперёд и многое другое. При этом может быть и так, что команда играет 3 тура, скажем, средне и чуть ниже среднего, а в 4й попадает во всех джокеров и феерит и в итоге обгоняет своих соперников по ФО, но получает всего 3 очка за 4 тура в H2H.

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

Методика

Рейтинг Эло идеально подходит для оценки относительной силы франшиз, к тому же каждая франшиза регулярно играет с каждой в большом количестве турниров, что ещё больше упрощает использование рейтинга.

Для начала несколько тезисов, которые я решил принять в начале:

  • все турниры равнозначны: для оценки относительной силы двух франшиз неважно, в каком турнире, в каком дивизионе происходит матч

  • победа 6-0 больше показывает превосходство одной франшизы над другой, нежели победа 3-2

  • априори команды, играющие в высшем дивизионе, сильнее команд из 2го и 3го дивизионов

Собственно, методика и будет основываться на этих тезисах.

Формулы подсчёта ожидаемого результата и апдейта рейтинга есть тут.

  • Вначале определим, как будет считаться результат матча - в оригинальном Эло результат это 1 в случае победы, 0,5 в случае ничьи и 0 в случае поражения. Футбольные аналоги рейтинга предлагают также разные поправки в зависимости от количества голов. В H2H всё проще, потому что сумма голов в матче гораздо менее случайна, чем в футболе, и зачастую равна 6, а если считать ничьи не за 0 голов, а за 0,5, то сумма всегда равна 6. Поэтому будем считать результат как количество голов команды (в котором ничьи учтены, как 0,5 гола), делённое на 6. Т.е. победа 4-2 это 0,666, а победа 5-1 - 0,833.

  • Зафиксируем средний рейтинг как 1500, исходя из этого найдём числа К и N (число на которое делят разницу рейтингов, в классической версии 400) из формулы, при которых ошибка ожидаемого результата наименьшая.

  • Исправим начальные рейтинги таким образом, что команда, участвующая везде в высших дивизионах и играющая в ЛЧ, будет иметь ожидаемый результат против команды, играющей в низших лигах 0,75 (эта поправка зависит от только что найденного числа N). Вот так выглядела топ-10 рейтинга перед началом сезона:

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

В результате подбора мы получили K=10, N=450.

  • Теперь запустим последовательные апдейты (от более ранних дат к более поздним) рейтинга на всех прошедших матчах этого сезона.

Всю эту механику можно найти в запрограммированном виде тут: https://github.com/krivonogov/h2h-fantasy/blob/master/elo_rating.py

Итак, методику мы разобрали, и теперь самое время посмотреть на то, как это работает в реальности.

Результаты

Вот, например, топ-11 по окончании сезона (можно было бы посмотреть на топ-10, но так вышло, что моя команда Intellectuals Team оказалась 11й).

final rating

Вполне адекватная десятка лидеров, на мой взгляд. Если вам интересно изменение рейтинга вашей команды на протяжении сезона, то для каждой франшизы я сгенерировал картинку с этими изменениями на фоне ближайших соседей: папка с картинками.

final top11

в полном размере

Эти графики любопытны и безотносительно рейтинга, ведь каждый подъём это победа в матче, а спуск это поражение, можно проследить, в каком месяце ваша команда выступала удачнее, а в каком хуже.

Вот полная таблица рейтинга.

Выводы

Пара существенных отличий от других рейтингов:

  1. франшиза "Эспирето", отсутствующая в основном рейтинге и занимающая очень низкое место в альтернативном, здесь находится на пороге первой десятки, всё из-за специфики команды, играющей лишь ЛаЛигу и ЛЧ, но прекрасно выступающей в обоих турнирах.

  2. франшиза "Достучаться до небес", прекрасно выступающая во вторых и третьих дивизионах многих турниров и идущая третьей в основном рейтинге, тут оказалась внизу первой двадцатки, как раз потому, что конкурировать с самим лучшими ей приходится реже, чем другим командам-лидерам. В альтернативном рейтинге по ФО ребята занимают 26е место из-за того, что не участвуют во всех турнирах.

  3. франшиза Gomel City в рейтинге Эло занимает 15 место против 5 и 7 места в двух других рейтингах, если посмотреть на их график, то причина станет очевидна: не очень удачное выступление в последние 2 месяца и особенно в начале апреля. Это как раз наглядная иллюстрация большой подвижности рейтинга - плюс это или минус?

  4. франшиза DZD, победившая в одной из самых конкурентных лиг (в АПЛ) занимает неплохое 19е место, в то время как в основном рейтинге они 32е, а в альтернативном аж 62е.

Преимущества данного рейтинга:

  1. Учитывается уровень соперников: победы достигнутые во 2й лиге со слабыми соперниками имеют гораздо меньшее влияние, чем победы над лидерами Премьер-Лиги.

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

  3. Уменьшено влияние побед 4-2 и 3-2, в которых смена досок могла поменять победителя.

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

Недостатки данного рейтинга:

  1. Как и в альтернативном рейтинге по ФО: очень высокая чувствительность. Разрывы в лидирующей группе достаточно маленькие и пара туров может сильно поменять расклад в этой группе. Чтобы решить эту проблему, можно вместо самого рейтинга брать скользящее среднее или среднее место команды за определённый период, или уменьшить константу К.

  2. Если строить рейтинг с учётом кубковых игр (что желательно), то не всегда понятно, в каком порядке брать матчи для вычисления разницы. Однако поскольку за одну неделю рейтинг команды меняется на довольно ограниченную величину, эта проблема возможно не так важна.

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

Ну и напоследок, большое спасибо Алексею aknyazev за предоставленные данные и Сергею Listopad за возможность опубликовать всё в данном блоге!