Inițial am postat acest lucru pe StackOverflow , deoarece ar putea fi o eroare în implementări , dar unii mi-au sugerat să postez la matematică. Tocmai am găsit acest stackexchange și m-am gândit cine mai bine? Este posibil ca unii dintre voi să știe că nu pare a fi exact sau nu, fără a fi nevoie de depanare. Orice link către calculatoare online sau metode alternative de evaluare este binevenit.
Glicko-2 este un sistem de evaluare utilizat în șah, dar poate fi utilizat în multe alte situații. Glicko-2 este o îmbunătățire față de Glicko-1, care a abordat problemele clasificării ELO mai vechi.
Ceea ce face Glicko-2 special în comparație cu versiunea 1 este că încorporează o abatere de rating mai mare (RD) mai mult timp cineva a fost inactiv. Face acest lucru cu noțiunea de constantă de sistem care se referă la perioade de timp / evaluare.
Un exemplu scris de la autor se găsește aici: http://www.glicko.net/glicko/glicko2.pdf .
În cadrul acestui document, el explică:
Sistemul Glicko-2 funcționează cel mai bine atunci când numărul de jocuri dintr-o perioadă de evaluare este moderat până la mare, spune o medie de cel puțin 10-15 jocuri per jucător într-o perioadă de evaluare. Durata de timp pentru o perioadă de evaluare este la latitudinea administratorului.
Presupunând că un grup de șahici activi joacă 10-15 jocuri în medie într-o perioadă de timp de o lună, administratorul va actualiza evaluările la sfârșitul fiecărei luni.
Aveam nevoie de o implementare PHP a sistemului de evaluare Glicko-2 și am întâlnit următoarele:
Implementare JavaScript Glicko-2
- JavaScript a avut o mică eroare, în care nu l-a lăsat să se potrivească cu exemplul tehnic de scriere, autorul l-a găsit suficient de aproape și nu s-a deranjat să depanare.
- Implementarea PHP a fost afectată de multe erori, dar acest lucru nu a fost evident decât dacă ați făcut mai mult de o perioadă de evaluare (pe care scrierea tehnică a sus nev er arată valorile așteptate ale)
- În cele din urmă, calculatorul Excel părea să nu conțină erori și să fie cel mai profesionist, realizat de cineva din comunitatea de șah. Odată ce bug-ul JavaScript a fost rezolvat, calculatorul JavaScript și Excel se potriveau foarte strâns unul cu celălalt (deși nu este perfect, ar putea fi în cadrul unei erori de rotunjire)
Am remediat erorile (și am trimis patch-uri pentru autori) am putut găsi pe versiunile PHP și JavaScript pentru a se potrivi la fel de strâns cu calculatorul Excel
Acum sunt 99% sigur că am o implementare exactă Glicko-2 (între 3 dintre ele) pentru analiză și atunci am întâlnit ceva ciudat și subiectul acestei discuții.
Având în vedere valoarea implicită sugerată pentru Glicko-2 pentru un nou jucător:
Rating: 1500 RD: 350 Volatility: 0.06
Dacă vă confruntați cu un adversar mediu de rating 1378 și RD 99 ( Sursă ) o singură dată la fiecare perioadă de evaluare (1 lună) pentru următoarele 12 perioade (1 an) veți fi acumulat o clasa națională A (1800-1999) rating din 1852 când în realitate aveți a învins doar 12 jucători cu rating mediu pe o perioadă de 12 luni.
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 〃
Dacă vă confruntați cu 2 adversari medii în fiecare perioadă de rating, puteți ajunge la clasa națională A aproximativ 4-5 luni, înfruntând doar 8-10 adversari medii.
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 〃
Sunt aceste presupuneri corecte? Există o eroare în calculatorul meu?
Dacă nu este o eroare, care sunt câteva modalități de a contracara acest lucru în plus:
- Luați în considerare „evaluarea adevărată” ca fiind limita inferioară a abaterii (Rating – RD)
- Nu afișați evaluarea utilizatorului inactiv
- Nu afișați utilizatorii cu mai puțin de N jocuri
Comentarii
- chess.com/forum/view/general/chess-ratings—glicko-vs-elo aruncă o privire asupra acestui aspect
- chesschat.org/showthread.php?t=13621
Răspuns
Am lucrat la o implementare Scala acum câteva luni, deși a fost puțin nepoluată – ar trebui să mă întorc pentru a o finaliza. Cel puțin am obținut câteva rezultate rezonabile de la it.
Dacă câștigi fiecare joc pe care îl joci, da, ratingul tău va deveni destul de mare chiar dacă joci doar împotriva jucătorilor cu rating scăzut. Probabilitatea că vei câștiga fiecare joc împotriva unui astfel de adversar este probabil despre ceea ce ar obține un jucător de clasa A (deși probabil eu s-a cam umflat din cauza RD relativ mare, încă).
Cel mai bun mod de a contracara, în opinia mea, este să nu consideri că cineva cu un RD peste o anumită sumă este un rating stabil – adică. consideră că este „provizoriu”. De asemenea, pentru a câștiga efectiv un titlu, cel puțin în USCF, aceștia au un sistem de norme, în care trebuie să performați la un anumit nivel într-un turneu de 4 sau mai multe jocuri (cred că de 4 ori), ceea ce face probabilitatea să joci împotriva unui ~ 1378 pentru tot turneul [de patru ori] foarte puțin probabil.
Scopul tău este să folosești acest lucru pentru șah? Care este cazul dvs. de utilizare?
Actualizare: FICS îl gestionează luând în considerare doar persoanele cu un RD de < 80 activ. (Ei folosesc Glicko-1, totuși, cred.) http://www.freechess.org/Help/ficsfaq.html#Q005.003
Și de de altfel, Glicko-1 folosește și RD / decadere de timp. Principala îmbunătățire a lui Glicko-2 a fost factorul „volatilitate”, care permite calcularea foarte ușor a persoanelor cu rezultate neregulate sau cu rezultate stabile. Cred că este o modificare foarte mică la Glicko-1, ceea ce determină un calcul suplimentar considerabil – dar la fel ca tine, eram încă interesat să-l calculez. De fapt, i-am cerut lui Glickman câteva puncte de date suplimentare pentru testare, dar el era prea ocupat pentru a le furniza în acel moment.
Comentarii
- FYI, a Titlul la nivel de clasă USCF necesită câștigarea unei norme în 5 turnee.
Răspuns
Toate sistemele de rating au probleme în viata reala. În cel mai bun caz, niciunul dintre ei nu poate face mai mult decât să presupună o abilitate.
Se vor descurca mai bine la nivelul GM, deoarece acești jucători sunt mai consecvenți și tind să joace mai mulți GM; în timp ce noi ceilalți suntem mai inconsistenți și tind să joace o gamă mai largă de jucători cu rating mai mic, care sunt, de asemenea, mai inconsistenți. Iar jucătorii noi tind să se îmbunătățească mult mai repede în timp ce joacă în mai puține turnee, ceea ce distorsionează în continuare toate ratingurile. Și, la orice nivel, unii jucători au zile libere sau nu încearcă la fel de mult dacă nu își vor schimba poziția în rezultatele finale.
Încercarea de a regla calificările la fel de mult ca Glicko2 este o comisie nebună.
Un alt factor care agravează problema este că jucătorii tind să joace aceiași jucători. Dacă ar exista un sistem elvețian obligatoriu la nivel mondial care ar juca destule runde, ar exista o mare scuturare în majoritatea ratingurilor jucătorilor. Un dublu round-robin la nivel mondial ar face câteva schimbări, dar elvețianii ar fi un bun început pentru a remedia erorile de rating – cel puțin la mijloc cu jucătorii consacrați. Încă aveți problema cu jucătorii noi care denaturează ratingurile.