Glicko-2 Rating System: Bug oder Exploit?

13

Ursprünglich hatte ich dies auf StackOverflow gepostet, da es ein Fehler in den Implementierungen sein könnte, aber einige schlugen vor, dass ich auf math poste. Ich habe gerade diese Stapelbörse gefunden, und ich dachte, wer ist besser? Einige von Ihnen wissen vielleicht sofort, ob dies korrekt ist oder nicht, ohne dass ein Debugging erforderlich ist. Alle Links zu Online-Taschenrechnern oder alternativen Bewertungsmethoden sind willkommen.


Glicko-2 ist ein Bewertungssystem, das im Schach verwendet wird, aber in vielen anderen Situationen verwendet werden kann. Glicko-2 ist eine Verbesserung gegenüber Glicko-1, mit der Probleme der älteren ELO-Bewertung behoben wurden.

Das Besondere an Glicko-2 im Vergleich zu Version 1 ist, dass es eine höhere Bewertungsabweichung (RD) aufweist, je länger jemand inaktiv war. Dies geschieht mit dem Begriff einer Systemkonstante, die sich auf Zeit- / Bewertungsperioden bezieht.

Ein Beispiel des Autors finden Sie hier: http://www.glicko.net/glicko/glicko2.pdf .
In diesem Dokument erklärt er:

Das Glicko-2-System funktioniert am besten, wenn die Anzahl der Spiele in einem Bewertungszeitraum moderat bis groß ist, dh durchschnittlich mindestens 10-15 Spiele pro Spieler in einem Bewertungszeitraum. Die Dauer eines Ratingzeitraums liegt im Ermessen des Administrators.

Unter der Annahme, dass eine Gruppe aktiver Schachspieler durchschnittlich 10 bis 15 Partien in einem Zeitraum von 1 Monat spielt, aktualisiert der Administrator die Bewertungen am Ende eines jeden Monats.


Ich benötigte eine PHP-Implementierung des Glicko-2-Bewertungssystems und fand Folgendes:

Glicko-2 JavaScript Implementierung

  • Das JavaScript hatte einen kleinen Fehler, bei dem es nicht mit dem Beispiel der technischen Beschreibung übereinstimmte, der Autor fand es nah genug und machte sich nicht die Mühe, Fehler zu beheben.

Glicko-2 PHP Implementierung

  • Die PHP-Implementierung war mit vielen Fehlern behaftet, aber das war nicht ersichtlich, es sei denn, Sie haben mehr als einen Bewertungszeitraum durchgeführt (für den in der technischen Beschreibung nie die erwarteten Werte angegeben werden).

Glicko-2 Rechner in Excel

  • Schließlich schien der Excel-Rechner fehlerfrei und der professionellste zu sein, der von jemandem in der Schachgemeinschaft ausgeführt wurde. Sobald der JavaScript-Fehler behoben war, stimmten JavaScript und Excel-Rechner sehr genau überein (auch wenn dies nicht perfekt ist, kann es zu Rundungsfehlern kommen).

Ich hatte die Fehler behoben (und die Probleme / Patches an die Autoren geschickt), die ich in den PHP- und JavaScript-Versionen finden konnte, um sie so gut wie möglich mit dem Excel-Rechner abzugleichen


Jetzt bin ich zu 99% zuversichtlich, dass ich eine genaue Glicko-2-Implementierung (zwischen den drei) für die Analyse habe, und da bin ich auf etwas Merkwürdiges und das Thema dieser Diskussion gestoßen.

Angesichts der vorgeschlagenen Standardeinstellung für Glicko-2 für einen neuen Spieler:

Rating:      1500
RD:           350
Volatility:  0.06

Wenn Sie in den nächsten 12 Perioden (1 Jahr) nur einmal pro Bewertungszeitraum (1 Monat) einem durchschnittlichen Gegner mit der Bewertung 1378 und RD 99 ( Quelle ) gegenüberstehen, haben Sie eine angenommene Bewertung der nationalen Klasse A (1800-1999) von 1852 erhalten In Wirklichkeit haben Sie in einem Zeitraum von 12 Monaten nur 12 durchschnittlich bewertete Spieler geschlagen.

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        〃

Wenn Sie in jedem Bewertungszeitraum mit 2 durchschnittlichen Gegnern konfrontiert sind, können Sie in der Nationalen Klasse A etwa 4 bis 5 Monate lang gegen nur 8 bis 10 durchschnittliche Gegner antreten.

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        〃


Sind diese Annahmen korrekt? Gibt es einen Fehler in meinem Rechner?

Wenn es sich nicht um einen Bug handelt, wie können Sie dem entgegenwirken?

  • Betrachten Sie "true rating" als Untergrenze der Abweichung (Rating - RD)
  • Keine inaktive Benutzerbewertung anzeigen
  • Zeige keine Benutzer mit weniger als N Spielen
ParoX
quelle
chess.com/forum/view/general/chess-ratings---glicko-vs-elo werfen Sie einen Blick auf diese
BlueBerry - Vignesh4303
chesschat.org/showthread.php?t=13621
BlueBerry - Vignesh4303

Antworten:

9

Ich habe vor ein paar Monaten an einer Scala-Implementierung gearbeitet, obwohl diese etwas unpoliert war - ich sollte zurückgehen, um sie zu beenden. Ich habe zumindest ein paar vernünftige Ergebnisse erzielt.

Wenn Sie jedes Spiel, das Sie spielen, gewinnen, wird Ihre Wertung ziemlich hoch, selbst wenn Sie nur gegen Spieler mit niedriger Wertung spielen. Die Wahrscheinlichkeit, dass Sie jedes Spiel gegen einen solchen Gegner gewinnen, hängt wahrscheinlich davon ab, was ein Spieler der Klasse A erreichen würde (obwohl es aufgrund der relativ hohen RD wahrscheinlich immer noch etwas überhöht ist).

Meiner Meinung nach ist der beste Weg, dem entgegenzuwirken, jemanden mit einem RD über einem bestimmten Betrag nicht als ein stabiles Rating zu betrachten - dh als "vorläufig". Außerdem, um tatsächlich einen Titel zu gewinnen, zumindest in der USCF, haben sie ein System von Normen, in denen Sie auf einem bestimmten Niveau in einem Turnier von 4 Spielen oder mehr (4 Mal, glaube ich) durchführen müssen, was die Wahrscheinlichkeit erhöht Es ist sehr unwahrscheinlich, dass man das ganze Turnier über [viermal] gegen ~ 1378 spielt.

Ist Ihr Ziel, dies für Schach zu verwenden? Was ist Ihr Anwendungsfall?

Update: FICS behandelt dies, indem nur Personen mit einem RD von <80 aktiv berücksichtigt werden. (Ich glaube, sie verwenden immer noch Glicko-1.) Http://www.freechess.org/Help/ficsfaq.html#Q005.003

Übrigens nutzt Glicko-1 auch RD / Time Decay. Die Hauptverbesserung von Glicko-2 war der "Volatilitäts" -Faktor, mit dem Personen mit fehlerhaften oder stabilen Ergebnissen leicht unterschiedlich berechnet werden können. Ich denke, es ist eine sehr geringfügige Änderung an Glicko-1, die eine beträchtliche zusätzliche Berechnung verursacht - aber wie Sie war ich immer noch daran interessiert, sie zu berechnen. Eigentlich habe ich Glickman selbst nach zusätzlichen Datenpunkten zum Testen gefragt, aber er war zu beschäftigt, um sie zu liefern.

Eve Freeman
quelle
Zu Ihrer Information, ein USCF-Titel auf Klassenebene erfordert das Erreichen einer Norm in 5 Turnieren.
DM