Jeg hadde dette opprinnelig lagt ut på StackOverflow da det kunne være en feil i implementeringene , men noen foreslo at jeg skulle legge ut matematikk. Jeg fant nettopp dette stakkebyttet, og jeg tenkte hvem bedre? Noen av dere vet kanskje fra balltre heller dette virker nøyaktig eller ikke, uten behov for feilsøking. Alle lenker til online kalkulatorer eller alternative vurderingsmetoder er velkomne.


Glicko-2 er et klassifiseringssystem som brukes i sjakk, men kan brukes i mange andre situasjoner. Glicko-2 er en forbedring av Glicko-1, som adresserte problemer med den eldre ELO-klassifiseringen.

Det som gjør Glicko-2 spesiell i forhold til versjon 1, er at den inneholder et høyere rangeavvik (RD) lenger noen har vært inaktive. Det gjør dette med forestillingen om en systemkonstant som er relatert til tids- / vurderingsperioder.

Et eksempel som er skrevet opp fra forfatteren, finnes her: http://www.glicko.net/glicko/glicko2.pdf .
Innenfor dette dokumentet forklarer han:

Glicko-2-systemet fungerer best når antall spill i en vurderingsperiode er moderat til stort, si et gjennomsnitt på minst 10-15 kamper per spiller i en vurderingsperiode. Det er administratorens skjønn hvor lang tid det er for en vurderingsperiode.

Gjør en antagelse om at en gruppe aktive sjakkspillere spiller 10-15 kamper i gjennomsnitt i løpet av en tidsperiode på 1 måned, ville administratoren da oppdatere rangeringer på slutten av hver måned.


Jeg trengte en PHP-implementering av Glicko-2-klassifiseringssystemet og kom over følgende:

Glicko-2 JavaScript-implementering

  • JavaScript hadde en liten feil, der ikke lot det stemme overens med det tekniske skriveeksemplet, forfatteren fant det nært nok, og gadd ikke å feilsøking.

Glicko-2 PHP-implementering

  • PHP-implementeringen var plaget med mange feil, men det var ikke tydelig med mindre du gjorde mer enn en vurderingsperiode (som den tekniske skrivingen opp nev er viser forventede verdier av)

Glicko-2 Kalkulator i Excel

  • Endelig syntes Excel-kalkulatoren å være feilfri og den mest profesjonelle, gjort av noen i sjakkmiljøet. Når JavaScript-feilen ble løst, samsvarte JavaScript og Excel-kalkulatoren veldig tett med hverandre (om enn ikke perfekt, kunne være innenfor avrundingsfeil)

Jeg hadde løst feilene (og sendt inn problemer / patches til forfatterne) Jeg kunne finne på PHP- og JavaScript-versjonene for å matche like tett med Excel-kalkulatoren


Nå er jeg 99% trygg på at jeg har en nøyaktig Glicko-2-implementering (mellom 3 av dem) for analyse, og det var da jeg kom over noe rart, og temaet for denne diskusjonen.

Gitt den foreslåtte standard for Glicko-2 for en ny spiller:

Rating: 1500 RD: 350 Volatility: 0.06 

Hvis du møter en gjennomsnittlig motstander av rangering 1378 og RD 99 ( Kilde ) bare en gang hver vurderingsperiode (1 måned) for de neste 12 periodene (1 år) vil du ha samlet en antatt Nasjonal klasse A (1800-1999) vurdering 1852 når du i virkeligheten har bare slå 12 gjennomsnittlig rangerte spillere i løpet av et tidsrom på 12 måneder.

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 〃 

Hvis du møter 2 gjennomsnittlige motstandere hver vurderingsperiode, kan du komme til nasjonal klasse A omtrent 4-5 måneder, og bare møte 8-10 gjennomsnittlige motstandere.

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 〃 


Er disse antagelsene nøyaktige? Er det en feil i kalkulatoren min?

Hvis det ikke er en feil, hva er noen måter å motvirke dette i tillegg til:

  • Betrakt «sann vurdering» for å være nedre grense for avviket (Vurdering – RD)
  • Ikke vis inaktive brukeres rangering
  • Ikke vis brukere med mindre enn N-spill

Kommentarer

Svar

Jeg jobbet med en Scala-implementering for noen måneder siden, selv om den var litt upolert – jeg burde gå tilbake for å fullføre den. Jeg fikk i det minste noen rimelige resultater fra det.

Hvis du vinner hvert spill du spiller, ja, vil vurderingen din bli ganske høy, selv om du spiller mot bare spillere med lav karakter. Sannsynligheten for at du vil vinne hver kamp mot en slik motstander er sannsynligvis om hva en klasse A-spiller ville oppnå (selv om det sannsynligvis jeg er litt oppblåst på grunn av den relativt høye RD, fortsatt).

Den beste måten å motvirke, etter min mening, er å ikke anse noen med en RD over et visst beløp for å være en stabil vurdering – dvs. anser det for å være «foreløpig». For å faktisk få en tittel, i det minste i USCF, har de et system med normer, der du må prestere på et visst nivå i en turnering på 4 spill eller mer (4 ganger, tror jeg), noe som gjør sannsynligheten av å spille mot ~ 1378 for hele turneringen [fire ganger] veldig usannsynlig.

Er målet ditt å bruke dette til sjakk? Hva er din brukstilfelle?

Oppdatering: FICS håndterer det ved å bare vurdere personer med en RD på < 80 aktive. (De bruker fortsatt Glicko-1, tror jeg.) http://www.freechess.org/Help/ficsfaq.html#Q005.003

Og av slik bruker Glicko-1 også RD / tidsforfall. Glicko-2s viktigste forbedring var «volatilitet» -faktoren, som gjør at personer med uberegnelige resultater eller stabile resultater kan beregnes veldig annerledes. Jeg tror det er en veldig liten tweak til Glicko-1 som gir betydelig ekstra beregning – men som deg, var jeg fortsatt interessert i å beregne det. Jeg spurte faktisk Glickman selv om noen ekstra datapunkter for testing, men han var for opptatt til å levere dem på den tiden.

Kommentarer

  • FYI, a USCF-klassetittel krever å tjene en norm i fem turneringer.

Svar

Alle klassifiseringssystemene har problemer i virkelige liv. I beste fall kan ingen av dem gjøre mer enn å anslå en gjetning av din evne.

De vil gjøre det bedre på GM-nivå ettersom disse spillerne er mer konsistente og har en tendens til å spille flere GM-er; mens vi andre er mer inkonsekvente og har en tendens til å spille et bredere utvalg av spillere med lavere karakter som også er mer inkonsekvente. Og nye spillere har en tendens til å forbedre seg mye raskere mens de spiller i færre turneringer, noe som ytterligere vrir all rangering. Og på alle nivåer har noen spillere fridager eller prøver ikke så hardt hvis det ikke endrer sin posisjon i de endelige resultatene.

Prøver å finjustere rangeringer så mye som Glicko2 er et tullete ærend.

En annen faktor som forverrer problemet er at spillerne har en tendens til å spille de samme spillerne. Hvis det var et verdensomspennende obligatorisk sveitsisk system som spilte nok runder, ville det bli en stor rystelse i de fleste spillernes rangeringer. En verdensomspennende dobbel runde-robin ville gjøre noen flere endringer, men sveitseren ville være en god start på å fikse ratingfeil – i det minste i midten med etablerte spillere. Du har fortsatt problemet med at nye spillere forvrenger rangeringene.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *