Jeg havde dette oprindeligt sendt på StackOverflow , da det kunne være en fejl i implementeringerne , men nogle foreslog, at jeg skrev til matematik. Jeg har lige fundet denne stakkebytte, og jeg tænkte hvem bedre? Nogle af jer kender måske fra flagermusen, snarere synes dette korrekt eller ej uden behov for fejlfinding. Alle links til online regnemaskiner eller alternative klassificeringsmetoder er velkomne.


Glicko-2 er et klassificeringssystem, der bruges i skak, men kan bruges i mange andre situationer. Glicko-2 er en forbedring af Glicko-1, som adresserede problemer med den ældre ELO-rating.

Hvad der gør Glicko-2 specielt i forhold til version 1 er, at den indeholder en højere klassificeringsafvigelse (RD), længere har nogen været inaktive. Det gør det med forestillingen om en systemkonstant, der vedrører tids- / vurderingsperioder.

Et eksempel, der er skrevet op fra forfatteren, findes her: http://www.glicko.net/glicko/glicko2.pdf .
Inden for dette dokument forklarer han:

Glicko-2-systemet fungerer bedst, når antallet af spil i en vurderingsperiode er moderat til stort, sig et gennemsnit på mindst 10-15 spil pr. spiller i en vurderingsperiode. Længden af tid for en vurderingsperiode er efter administratorens skøn.

At antage, at en gruppe aktive skakspillere spiller 10-15 spil i gennemsnit i en periode på 1 måned opdaterede administratoren derefter ratings i slutningen af hver måned.


Jeg havde brug for en PHP-implementering af Glicko-2-klassificeringssystemet og stødte på følgende:

Glicko-2 JavaScript-implementering

  • JavaScript havde en lille fejl, hvor ikke det matchede det tekniske skriveeksempel, forfatteren fandt det tæt nok og ikke gider at debug.

Glicko-2 PHP-implementering

  • PHP-implementeringen var plaget med mange bugs, men det var ikke tydeligt, medmindre du gjorde mere end en vurderingsperiode (som den tekniske skriv- op nev er viser forventede værdier på)

Glicko-2 Lommeregner i Excel

  • Endelig syntes Excel-regnemaskinen at være fejlfri og den mest professionelle, udført af nogen i skakfællesskabet. Når JavaScript-fejlen var løst, matchede JavaScript og Excel-regnemaskinen meget tæt på hinanden (omend ikke perfekt, kunne være inden for afrundingsfejl)

Jeg havde løst fejlene (og indsendt problemer / patches til forfatterne) Jeg kunne finde på PHP- og JavaScript-versionerne, så de passer så tæt sammen med Excel-lommeregner


Nu er jeg 99% sikker på, at jeg har en nøjagtig Glicko-2-implementering (mellem 3 af dem) til analyse, og det var da jeg stødte på noget underligt, og emnet for denne diskussion.

I betragtning af den foreslåede standard for Glicko-2 for en ny spiller:

Rating: 1500 RD: 350 Volatility: 0.06 

Hvis du kun står over for en gennemsnitlig modstander med rating 1378 og RD 99 ( Kilde ) en gang hver vurderingsperiode (1 måned) for de næste 12 perioder (1 år) har du samlet en antaget National klasse A (1800-1999) vurdering af 1852 når du i virkeligheden har kun slå 12 gennemsnitlige spillere i løbet af et tidsrum 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øder 2 gennemsnitlige modstandere hver vurderingsperiode, kan du komme til National klasse A omkring 4-5 måneder og kun stå over for 8-10 gennemsnitlige modstandere.

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 antagelser nøjagtige? Er der en fejl i min lommeregner?

Hvis det ikke er en fejl, hvad er der nogle måder at imødegå dette udover:

  • Overvej “sand vurdering” for at være den nedre grænse for afvigelsen (Rating – RD)
  • Vis ikke inaktiv brugers vurdering
  • Vis ikke brugere med mindre end N-spil

Kommentarer

Svar

Jeg arbejdede på en Scala-implementering for et par måneder siden, selvom det var lidt upoleret – jeg skulle vende tilbage for at afslutte det. Jeg fik i det mindste nogle rimelige resultater fra det.

Hvis du vinder hvert spil, du spiller, ja, vil din rating vokse til at være ret høj, selvom du kun spiller mod spillere med lav karakter. Sandsynligheden for at du vinder hvert spil mod en sådan modstander er sandsynligvis om, hvad en klasse A-spiller ville opnå (selvom det sandsynligvis i s lidt oppustet på grund af den relativt høje RD, stadig).

Den bedste måde at modvirke er efter min mening ikke at betragte nogen med en RD over et bestemt beløb som en stabil rating – dvs. betragter det som “foreløbigt”. For faktisk at vinde en titel, i det mindste i USCF, har de et normsystem, hvor du skal udføre på et bestemt niveau i en turnering på 4 spil eller mere (4 gange tror jeg), hvilket gør sandsynligheden at spille mod ~ 1378 i hele turneringen [fire gange] meget usandsynligt.

Er dit mål at bruge dette til skak? Hvad er din brugssag?

Opdatering: FICS håndterer det ved kun at overveje personer med en RD på < 80 aktive. (De bruger stadig Glicko-1, tror jeg.) http://www.freechess.org/Help/ficsfaq.html#Q005.003

Og af på den måde bruger Glicko-1 også RD / tidsforfald. Glicko-2s vigtigste forbedring var “volatilitet” -faktoren, der gør det muligt for folk med uberegnelige resultater eller stabile resultater at blive beregnet meget lidt anderledes. Jeg synes, det er en meget mindre tweak til Glicko-1, som forårsager betydelig ekstra beregning – ligesom dig, var jeg stadig interesseret i at beregne det. Jeg bad faktisk Glickman selv om nogle yderligere datapunkter til testning, men han var for travl til at levere dem på det tidspunkt.

Kommentarer

  • FYI, en USCF-klassetitel kræver optjening af en norm i 5 turneringer.

Svar

Alle klassificeringssystemer har problemer i I virkeligheden. I bedste fald kan ingen af dem gøre mere end at tilnærme et gæt på din evne.

De vil klare sig bedre på GM-niveau, da disse spillere er mere ensartede og har tendens til at spille flere GMer; mens resten af os er mere inkonsekvente og har tendens til at spille en bredere vifte af spillere med lavere karakter, som også er mere inkonsekvente. Og nye spillere har en tendens til at forbedre sig meget hurtigere, mens de spiller i færre turneringer, hvilket yderligere vrider alle ratings. Og på ethvert niveau har nogle spillere fridage eller prøver ikke så hårdt, hvis det ikke ændrer deres position i de endelige resultater.

Forsøger at finjustere ratings så meget som Glicko2 er et fjols ærinde.

En anden faktor, der forværrer problemet, er at spillere har tendens til at spille de samme spillere. Hvis der var et verdensomspændende obligatorisk schweizisk system, der spillede nok runder, ville der være en stor omrystning i de fleste spillere. En verdensomspændende dobbelt runde-robin ville gøre nogle flere ændringer, men den schweiziske ville være en god start på at rette ratingfejl – i det mindste i midten med etablerede spillere. Du har stadig problemet med, at nye spillere fordrejer klassificeringerne.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *