Původně jsem toto zveřejnil na StackOverflow , protože by to mohla být chyba v implementacích , ale někteří navrhli, abych přidal příspěvek k matematice. Právě jsem našel tuto výměnu zásobníku a pomyslel jsem si, kdo je lepší? Někteří z vás možná znají netopýra, spíše se to zdá přesné nebo ne, bez nutnosti ladění. Jakékoli odkazy na online kalkulačky nebo alternativní metody hodnocení jsou vítány.
Glicko-2 je systém hodnocení používaný v šachu, ale lze jej použít v mnoha dalších situacích. Glicko-2 je vylepšení oproti Glicko-1, které řešilo problémy staršího hodnocení ELO.
V porovnání s verzí 1 je Glicko-2 speciální v tom, že obsahuje vyšší odchylku hodnocení (RD) déle je někdo neaktivní. Dělá to s představou systémové konstanty, která souvisí s časovými / hodnotícími obdobími.
Příklad zápisu od autora naleznete zde: http://www.glicko.net/glicko/glicko2.pdf .
V tomto dokumentu vysvětluje:
Systém Glicko-2 funguje nejlépe, když je počet her v období hodnocení mírný až velký, řekněme průměrně alespoň 10–15 her na hráče v hodnotícím období. Délka období pro hodnocení je na uvážení administrátora.
Předpoklad, že skupina aktivních šachistů hraje 10-15 her v průměru za 1 měsíc by administrátor poté aktualizoval hodnocení na konci každého měsíce.
Potřeboval jsem implementaci PHP systému hodnocení Glicko-2 a narazil jsem na následující:
Implementace JavaScriptu Glicko-2
- JavaScript měl malou chybu, ve které jej nenechal odpovídat příkladu technického zápisu, autor jej shledal dostatečně blízko a neobtěžoval se ladění.
- Implementace PHP byla sužována mnoha chybami, ale to nebylo zjevné, pokud jste neudělali více než jedno hodnotící období (což technický zápis- nahoru nev er zobrazuje očekávané hodnoty)
- Nakonec se kalkulačka aplikace Excel zdála být bezchybná a nejprofesionálnější, provedená někým v šachové komunitě. Jakmile byla chyba JavaScriptu vyřešena, kalkulačka JavaScriptu a Excelu se navzájem velmi těsně shodovaly (i když to nebylo dokonalé, mohlo to být v zaokrouhlování)
Opravil jsem chyby (a odeslal problémy patche pro autory) Na verzích PHP a JavaScript jsem našel, aby se co nejvíce shodovaly s kalkulačkou aplikace Excel.
Nyní jsem 99% přesvědčen, že mám přesnou implementaci Glicko-2 (mezi 3 z nich) pro analýzu a to je, když jsem narazil na něco zvláštního, a na téma této diskuse.
Vzhledem k navrhovanému výchozímu nastavení Glicko-2 pro nového hráče:
Rating: 1500 RD: 350 Volatility: 0.06
Pokud se setkáte s průměrným oponentem hodnocení 1378 a RD 99 ( Zdroj ) pouze jednou za každé hodnotící období (1 za následujících 12 období (1 rok) se vám nashromáždila předpokládaná národní třída A (1800-1999) hodnocení 1852, když ve skutečnosti máte porazili pouze 12 průměrně hodnocených hráčů v rozpětí 12 měsíců.
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 〃
Pokud v každém hodnotícím období čelíte 2 průměrným oponentům, můžete se dostat do národní třídy A přibližně za 4–5 měsíců a čelit pouze 8–10 průměrným protivníkům.
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 〃
Jsou tyto předpoklady přesné? Je v mé kalkulačce chyba?
Pokud se nejedná o chybu, jaké jsou další způsoby, jak tomu čelit:
- Považujte „skutečné hodnocení“ za spodní hranici odchylky (hodnocení – RD)
- Nezobrazovat hodnocení neaktivních uživatelů
- Nezobrazovat uživatele s méně než N hrami
Komentáře
odpověď
Před několika měsíci jsem pracoval na implementaci Scala, i když to bylo trochu neleštěné – měl bych se vrátit a dokončit to. Přinejmenším jsem získal rozumné výsledky z it.
Pokud vyhrajete každou hru, kterou hrajete, ano, vaše hodnocení bude poměrně vysoké, i když budete hrát pouze proti hráčům s nízkým hodnocením. Pravděpodobnost, že vyhrajete každou hru proti takovému protivníkovi, je pravděpodobně o tom, čeho by hráč třídy A dosáhl (i když pravděpodobně já je trochu nafouknutý kvůli relativně vysoké RD, stále).
Podle mého názoru je nejlepším způsobem, jak čelit, nepovažovat někoho s RD nad určitou částku za stabilní hodnocení – tj. považují to za „prozatímní“. Aby také získali titul, přinejmenším v USCF, mají systém norem, kde musíte hrát na určité úrovni v turnaji se 4 a více hrami (věřím čtyřikrát), což zvyšuje pravděpodobnost hrát proti ~ 1378 za celý turnaj [čtyřikrát] velmi nepravděpodobné.
Je vaším cílem použít toto pro šachy? Jaký je váš případ použití?
Aktualizace: FICS to řeší tak, že vezme v úvahu pouze lidi s aktivním RD < 80. (Věřím, že používají Glicko-1.) http://www.freechess.org/Help/ficsfaq.html#Q005.003
A tím mimochodem, Glicko-1 také používá RD / time decay. Hlavním zlepšením Glicko-2 byl faktor „volatility“, který umožňuje lidem s nevypočitatelnými výsledky nebo stabilními výsledky počítat velmi mírně odlišně. Myslím, že je to velmi malé vylepšení Glicko-1, které způsobuje značné výpočty navíc – ale stejně jako ty, mě stále zajímal výpočet. Vlastně jsem požádal samotného Glickmana o několik dalších datových bodů pro testování, ale byl v té době příliš zaneprázdněn, než aby je mohl dodat.
Komentáře
- FYI, a Titul USCF na úrovni třídy vyžaduje vydělávání norem na 5 turnajích.
Odpověď
Všechny systémy hodnocení mají problémy v reálný život. V nejlepším případě nikdo z nich nedokáže více než přibližný odhad vašich schopností.
Lepší výsledky budou na úrovni GM, protože tito hráči jsou konzistentnější a mají tendenci hrát více GM; zatímco my ostatní jsme více nekonzistentní a máme tendenci hrát širší škálu hráčů s nízkým hodnocením, kteří jsou také více nekonzistentní. A noví hráči mají tendenci se zlepšovat mnohem rychleji, zatímco hrají na menším počtu turnajů, což dále zkresluje všechna hodnocení. A na jakékoli úrovni mají někteří hráči dny volna nebo se nesnaží tak tvrdě, pokud to nezmění jejich pozici v konečných výsledcích.
Snažit se doladit hodnocení, podobně jako Glicko2, je blázen.
Dalším faktorem zhoršujícím problém je, že hráči mají sklon hrát stejné hráče. Pokud by existoval celosvětový povinný švýcarský systém, který by hrál dost kol, došlo by k velkému otřesu ve většině hráčských hodnocení. Celosvětový dvoukolový průzkum by provedl další změny, ale švýcarský by byl dobrým začátkem při opravách chyb v hodnocení – alespoň uprostřed se zavedenými hráči. Stále máte problém s novými hráči, kteří narušují hodnocení.