Первоначально я разместил это в 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 была небольшая ошибка, из-за которой он не соответствовал техническому примеру написания, автор нашел его достаточно близким и не стал отлаживать.
- Реализация PHP страдала от многих ошибок, но это не было очевидно, если вы не сделали более одного периода оценки (который в технической статье никогда не показывает ожидаемые значения)
- Наконец, калькулятор 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 игр