Рейтингова система Glicko-2: помилка чи експлуатація?


13

Спочатку це було опубліковано в StackOverflow, оскільки це могло бути помилкою у реалізаціях, але деякі пропонували мені надсилати математику. Я щойно знайшов цю зміну ставок, і я подумав, хто кращий? Деякі з вас, можливо, знають, як правильно, чи це здається точним чи ні, без налагодження. Вітаються будь-які посилання на онлайн-калькулятори або альтернативні методи оцінки.


Гліко-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, і я натрапив на таке:

Впровадження JavaScript Glicko-2

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

Впровадження PHP Glicko-2

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

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

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

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


Зараз я на 99% впевнений, що в мене є точна реалізація Glicko-2 (між ними 3) для аналізу, і саме тоді я натрапив на щось дивне, і це тема цієї дискусії.

Враховуючи запропонований Glicko-2 за замовчуванням для нового гравця:

Rating:      1500
RD:           350
Volatility:  0.06

Якщо ви зіткнетесь із середнім противником рейтингу 1378 та RD 99 ( Джерело ) лише один раз на кожен рейтинговий період (1 місяць) протягом наступних 12 періодів (1 рік), ви накопичили припущенний рейтинг національного класу A (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).

Найкращим способом протидії, на мою думку, є не вважати когось із РД за певну суму стабільним рейтингом - тобто вважати його "попереднім". Також для того, щоб фактично здобути титул, принаймні в USCF, у них є система норм, де ви повинні виступити на певному рівні в турнірі з 4-х і більше ігор (я вважаю 4 рази), що робить імовірність грати проти ~ 1378 за весь турнір [чотири рази] дуже малоймовірно.

Ваша мета використовувати це для шахів? Який ваш випадок використання?

Оновлення: FICS обробляє це, розглядаючи лише людей із РД <80 активних. (Вони все ще використовують Glicko-1, я все-таки вважаю.) Http://www.freechess.org/Help/ficsfaq.html#Q005.003

До речі, Glicko-1 також використовує занепад RD / time. Основним поліпшенням Гліко-2 був коефіцієнт "мінливості", який дозволяє людям з помилковими результатами чи стабільними результатами обчислюватись дуже по-різному. Я думаю, що це дуже незначний твір Glicko-1, який спричиняє чималий додатковий розрахунок - але, як і ви, я все ще був зацікавлений у його обчисленні. Я насправді попросив самого Глікмена про деякі додаткові точки даних для тестування, але він був занадто зайнятий, щоб надати їх тоді.


FYI, титул класу на рівні USCF вимагає заробити норму в 5 турнірах.
ДМ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.