Système de notation Glicko-2: bug ou exploit?


13

À l'origine, je l'avais posté sur StackOverflow car cela pourrait être un bogue dans les implémentations, mais certains m'ont suggéré de publier en mathématiques. Je viens de trouver ce stackexchange, et je pensais qui mieux? Certains d'entre vous savent peut-être au départ que cela semble exact ou non, sans avoir besoin de débogage. Tous les liens vers des calculatrices en ligne ou d'autres méthodes de notation sont les bienvenus.


Glicko-2 est un système de notation utilisé dans les échecs, mais peut être utilisé dans de nombreuses autres situations. Glicko-2 est une amélioration par rapport à Glicko-1, qui traitait des problèmes de l'ancienne classification ELO.

Ce qui rend Glicko-2 spécial par rapport à la version 1, c'est qu'il incorpore un écart de notation (RD) plus élevé, plus une personne est inactive depuis longtemps. Il le fait avec la notion de constante système qui se rapporte aux périodes de temps / de notation.

Un exemple d'écriture de l'auteur se trouve ici: http://www.glicko.net/glicko/glicko2.pdf .
Dans ce document, il explique:

Le système Glicko-2 fonctionne mieux lorsque le nombre de parties dans une période de notation est modéré à élevé, disons une moyenne d'au moins 10 à 15 parties par joueur dans une période de notation. La durée d'une période de notation est à la discrétion de l'administrateur.

En faisant l'hypothèse qu'un groupe de joueurs d'échecs actifs joue en moyenne 10 à 15 parties sur une période de 1 mois, l'administrateur mettrait à jour les classements à la fin de chaque mois.


J'avais besoin d'une implémentation PHP du système de notation Glicko-2 et suis tombé sur les éléments suivants:

Implémentation de Glicko-2 JavaScript

  • Le JavaScript avait une petite erreur, qui ne le laissait pas correspondre à l'exemple de rédaction technique, l'auteur l'a trouvé assez proche et n'a pas pris la peine de déboguer.

Implémentation de PHP Glicko-2

  • L'implémentation de PHP était en proie à de nombreux bugs, mais cela n'était apparent que si vous aviez fait plus d'une période de notation (dont la rédaction technique ne montre jamais les valeurs attendues)

Calculatrice Glicko-2 dans Excel

  • Enfin, la calculatrice Excel semblait être sans erreur et la plus professionnelle, réalisée par quelqu'un de la communauté des échecs. Une fois le bogue JavaScript résolu, le calculateur JavaScript et Excel correspondaient très étroitement l'un à l'autre (bien qu'ils ne soient pas parfaits, il pouvait y avoir une erreur d'arrondi)

J'avais corrigé les bugs (et soumis des problèmes / correctifs aux auteurs) que je pouvais trouver sur les versions PHP et JavaScript pour correspondre aussi étroitement à la calculatrice Excel


Maintenant, je suis sûr à 99% que j'ai une implémentation Glicko-2 précise (entre les 3 d'entre eux) pour analyse et c'est à ce moment que je suis tombé sur quelque chose d'étrange, et le sujet de cette discussion.

Étant donné la valeur par défaut suggérée pour Glicko-2 pour un nouveau joueur:

Rating:      1500
RD:           350
Volatility:  0.06

Si vous faites face à un adversaire moyen de cote 1378 et RD 99 ( Source ) une seule fois par période de notation (1 mois) pour les 12 prochaines périodes (1 an), vous aurez accumulé une cote nationale présumée de classe A (1800-1999) de 1852 alors qu'en réalité vous n'avez battu que 12 joueurs avec une note moyenne sur une période de 12 mois.

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        〃

Si vous affrontez 2 adversaires moyens à chaque période de classement, vous pouvez accéder à la classe nationale A environ 4-5 mois, face à seulement 8-10 adversaires moyens.

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        〃


Ces hypothèses sont-elles exactes? Y a-t-il un bug dans ma calculatrice?

Si ce n'est pas un bug, quelles sont les autres façons de contrer cela en plus:

  • Considérez que la «vraie cote» est la borne inférieure de l'écart (cote - RD)
  • Ne pas afficher la note de l'utilisateur inactif
  • Ne pas afficher les utilisateurs avec moins de N jeux


Réponses:


9

J'ai travaillé sur une implémentation Scala il y a quelques mois, même si elle était un peu polie - je devrais y retourner pour la terminer. J'en ai au moins obtenu des résultats raisonnables.

Si vous gagnez à chaque partie que vous jouez, oui, votre cote deviendra assez élevée même si vous ne jouez qu'avec des joueurs peu bien notés. La probabilité que vous gagniez chaque match contre un tel adversaire dépend probablement de ce qu'un joueur de classe A obtiendrait (bien qu'il soit probablement un peu gonflé en raison de la RD relativement élevée).

La meilleure façon de contrer, à mon avis, est de ne pas considérer une personne ayant un DR supérieur à un certain montant comme une note stable - c'est-à-dire de la considérer comme "provisoire". De plus, afin de gagner un titre, au moins en USCF, ils ont un système de normes, où vous devez jouer à un certain niveau dans un tournoi de 4 matchs ou plus (4 fois, je crois), ce qui rend la probabilité de jouer contre un ~ 1378 pour tout le tournoi [quatre fois] très peu probable.

Votre objectif est-il de l'utiliser pour les échecs? Quel est votre cas d'utilisation?

Mise à jour: FICS le gère en ne considérant que les personnes avec un RD <80 actif. (Ils utilisent Glicko-1, toujours, je crois.) Http://www.freechess.org/Help/ficsfaq.html#Q005.003

Et en passant, Glicko-1 utilise également la décroissance RD / temps. La principale amélioration de Glicko-2 a été le facteur de «volatilité», qui permet aux personnes ayant des résultats erratiques ou stables de calculer très légèrement différemment. Je pense que c'est un ajustement très mineur de Glicko-1 qui provoque un calcul supplémentaire considérable - mais comme vous, j'étais toujours intéressé à le calculer. En fait, j'ai demandé à Glickman lui-même des points de données supplémentaires pour les tests, mais il était trop occupé pour les fournir à l'époque.


Pour info, un titre de classe USCF nécessite de gagner une norme dans 5 tournois.
DM
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.