Рейтинговая система Glicko-2: ошибка или эксплойт?


13

Первоначально я разместил это в StackOverflow, так как это могло быть ошибкой в ​​реализациях, но некоторые предлагали мне публиковать в математике. Я только что нашел этот стек, и подумал, кто лучше? Некоторые из вас могут знать об этом, скорее, это кажется точным или нет, без необходимости отладки. Любые ссылки на онлайн калькуляторы или альтернативные методы оценки приветствуются.


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

Что делает Glicko-2 особенным по сравнению с версией 1, так это то, что он включает более высокое отклонение рейтинга (RD), чем дольше человек неактивен. Это делается с помощью понятия системной константы, которая относится к периодам времени / рейтинга.

Пример написания от автора находится здесь: http://www.glicko.net/glicko/glicko2.pdf .
В этом документе он объясняет:

Система Glicko-2 работает лучше всего, когда количество игр в рейтинговом периоде от среднего до большого, скажем, в среднем не менее 10-15 игр на игрока в рейтинговом периоде. Продолжительность периода оценки определяется по усмотрению администратора.

Предполагая, что группа активных шахматистов играет в среднем по 10-15 игр в течение 1 месяца, администратор будет обновлять рейтинги в конце каждого месяца.


Мне нужна была PHP-реализация системы рейтинга Glicko-2, и я наткнулся на следующее:

Glicko-2 Реализация JavaScript

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

Glicko-2 Реализация PHP

  • Реализация PHP страдала от многих ошибок, но это не было очевидно, если вы не сделали более одного периода оценки (который в технической статье никогда не показывает ожидаемые значения)

Глико-2 Калькулятор в Excel

  • Наконец, калькулятор Excel оказался безошибочным и самым профессиональным, сделанным кем-то из шахматного сообщества. После того, как ошибка JavaScript была устранена, JavaScript и Excel Calculator очень близко совпали друг с другом (хотя и не идеально, возможно, произошла ошибка округления)

Я исправил ошибки (и представил проблемы / исправления авторам), которые я мог найти в версиях PHP и JavaScript, чтобы они максимально соответствовали калькулятору Excel.


Теперь я на 99% уверен, что у меня есть точная реализация Glicko-2 (между тремя из них) для анализа, и именно тогда я столкнулся с чем-то странным и темой этой дискуссии.

Учитывая предложенное значение по умолчанию для Glicko-2 для нового игрока:

Rating:      1500
RD:           350
Volatility:  0.06

Если вы столкнетесь со средним противником с рейтингом 1378 и RD 99 ( Источник ) только один раз за каждый рейтинговый период (1 месяц) в течение следующих 12 периодов (1 год), у вас будет накоплен предполагаемый рейтинг Национального класса А (1800-1999) 1852 когда в действительности вы побили 12 игроков со средним рейтингом за 12 месяцев.

Month   Rating      RD      Volatility      Class
1       1625        259     0.059999        National Class B
2       1682        225     0.059998        〃
3       1718        205     0.059997        〃
6       1784        174     0.059994        〃
12      1852        148     0.059988        National Class A
24      1922        127     0.059976        〃

Если вы сталкиваетесь с 2 средними оппонентами в течение каждого рейтингового периода, вы можете добраться до Национального класса А примерно за 4-5 месяцев, столкнувшись только с 8-10 средними противниками.

Month   Rating      RD      Volatility      Class
1       1672        215     0.059999        National Class B
2       1733        183     0.059997        〃
3       1770        166     0.059995        〃
4       1797        154     0.059993        〃
5       1819        146     0.059992        National Class A
6       1836        140     0.059991        〃


Являются ли эти предположения точными? В моем калькуляторе есть ошибка?

Если это не ошибка, каковы некоторые способы противодействия этому помимо:

  • Считайте «истинный рейтинг» нижней границей отклонения (Рейтинг - RD)
  • Не показывать рейтинг неактивного пользователя
  • Не показывать пользователям менее N игр


Ответы:


9

Я работал над реализацией Scala несколько месяцев назад, хотя она была немного неполированной - я должен вернуться, чтобы закончить ее. Я по крайней мере получил некоторые разумные результаты от этого.

Если вы выиграете каждую игру, в которую играете, да, ваш рейтинг вырастет до довольно высокого уровня, даже если вы играете против игроков с низким рейтингом. Вероятность того, что вы выиграете каждую игру против такого противника, вероятно, зависит от того, чего добьется игрок класса А (хотя, вероятно, он немного завышен из-за относительно высокого RD).

На мой взгляд, лучший способ противостоять этому - не считать кого-либо с RD выше определенной суммы стабильным рейтингом, то есть считать его «временным». Кроме того, для того, чтобы фактически получить титул, по крайней мере в USCF, у них есть система норм, где вы должны выступать на определенном уровне в турнире из 4 или более игр (я думаю, 4 раза), что делает вероятность играть против ~ 1378 за весь турнир [четыре раза] очень маловероятно.

Ваша цель использовать это для шахмат? Какой у вас вариант использования?

Обновление: FICS обрабатывает это, рассматривая только людей с RD <80 active. (Они используют Glicko-1, я все еще верю.) Http://www.freechess.org/Help/ficsfaq.html#Q005.003

И, кстати, Glicko-1 также использует RD / спад времени. Основным улучшением Glicko-2 стал фактор «волатильности», который позволяет людям с ошибочными или стабильными результатами рассчитываться совсем немного иначе. Я думаю, что это очень незначительная настройка Glicko-1, которая требует значительных дополнительных вычислений - но, как и вы, я все еще был заинтересован в ее расчете. Я на самом деле попросил у Гликмана несколько дополнительных точек данных для тестирования, но он был слишком занят, чтобы предоставить их в то время.


К вашему сведению, звание класса USCF требует заработать норму в 5 турнирах.
DM
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.