Спочатку це було опубліковано в 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 зазнала багатьох помилок, але це не було очевидно, якщо ви не зробили більше одного рейтингового періоду (який технічна дописка ніколи не показує очікуваних значень)
- Нарешті, калькулятор 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 ігор