Pierwotnie opublikowałem to na StackOverflow , ponieważ może to być błąd w implementacjach , ale niektórzy sugerowali, żebym wysłał wiadomość do matematyki. Właśnie znalazłem tę wymianę stosów i pomyślałem, kto lepiej? Niektórzy z was mogą wiedzieć od razu, że wydaje się to poprawne lub nie, bez potrzeby debugowania. Wszelkie linki do kalkulatorów online lub alternatywnych metod oceniania są mile widziane.
Glicko-2 to system oceniania używany w szachach, ale może być używany w wielu innych sytuacjach. Glicko-2 to ulepszenie Glicko-1, które rozwiązało problemy ze starszą klasyfikacją ELO.
To, co sprawia, że Glicko-2 jest wyjątkowy w porównaniu do wersji 1, to fakt, że zawiera wyższe odchylenie oceny (RD) już ktoś był nieaktywny. Czyni to za pomocą pojęcia stałej systemowej, która odnosi się do czasu / okresów oceny.
Przykładowy opis autora znajduje się tutaj: http://www.glicko.net/glicko/glicko2.pdf .
W tym dokumencie wyjaśnia:
System Glicko-2 działa najlepiej, gdy liczba gier w okresie oceny jest umiarkowana lub duża, powiedzmy średnio co najmniej 10-15 gier na gracza w okresie oceniania. Długość okresu oceny zależy od decyzji administratora.
Zakładając, że grupa aktywnych szachistów gra 10-15 partii średnio w okresie 1 miesiąca administrator aktualizował oceny pod koniec każdego miesiąca.
Potrzebowałem implementacji PHP systemu oceny Glicko-2 i natknąłem się na następujące rzeczy:
Glicko-2 Implementacja JavaScript
- JavaScript miał mały błąd, w którym nie pozwolił mu dopasować się do przykładu technicznego zapisu, autor znalazł go wystarczająco blisko i nie zawracał sobie głowy debug.
- Implementacja PHP była nękana wieloma błędami, ale nie było to oczywiste, chyba że zrobiłeś więcej niż jeden okres oceny (który techniczny up nev er pokazuje oczekiwane wartości)
Kalkulator Glicko-2 w programie Excel
- W końcu kalkulator Excela wydawał się wolny od błędów i najbardziej profesjonalny, wykonany przez kogoś ze społeczności szachowej. Gdy błąd JavaScript został rozwiązany, JavaScript i Excel Kalkulator bardzo dobrze się ze sobą dopasowały (choć nie idealne, może zawierać błąd zaokrąglania)
Naprawiłem błędy (i zgłosiłem problemy / poprawki dla autorów), które mogłem znaleźć w wersjach PHP i JavaScript, aby były jak najbardziej zbliżone do kalkulatora programu Excel
Teraz mam 99% pewności, że mam dokładną implementację Glicko-2 (między 3 z nich) do analizy i wtedy natrafiłem na coś dziwnego i temat tej dyskusji.
Biorąc pod uwagę sugerowane domyślne ustawienie Glicko-2 dla nowego gracza:
Rating: 1500 RD: 350 Volatility: 0.06
Jeśli napotkasz przeciętnego przeciwnika w rankingu 1378 i RD 99 ( Źródło ) tylko raz w każdym okresie oceny (1 miesiąc) przez następne 12 okresów (1 rok) zgromadzisz zakładaną National Class A (1800-1999) ocena 1852, podczas gdy w rzeczywistości masz pokonać tylko 12 średnio ocenianych graczy w ciągu 12 miesięcy.
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 〃
Jeśli walczysz z 2 przeciętnymi przeciwnikami w każdym okresie rankingowym, możesz dostać się do National Class A około 4-5 miesięcy, walcząc tylko z 8-10 przeciętnymi przeciwnikami.
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 〃
Czy te założenia są prawidłowe? Czy jest błąd w moim kalkulatorze?
Jeśli to nie jest błąd, jakie są inne sposoby przeciwdziałania temu:
- Uznaj „prawdziwą ocenę” za dolną granicę odchylenia (Rating – RD)
- Nie pokazuj oceny nieaktywnych użytkowników
- Nie pokazuj użytkowników z mniej niż N grami
Komentarze
- chess.com/forum/view/general/chess-ratings—glicko-vs-elo spójrz na to
- chesschat.org/showthread.php?t=13621
Odpowiedź
Pracowałem nad implementacją Scali kilka miesięcy temu, chociaż była trochę niedopracowana – powinienem wrócić, aby ją dokończyć. Przynajmniej uzyskałem rozsądne wyniki z
Jeśli wygrasz każdą grę, w którą grasz, tak, Twoja ocena wzrośnie i będzie dość wysoka, nawet jeśli grasz tylko z graczami o niskich ocenach. Prawdopodobieństwo, że wygrasz każdą grę z takim przeciwnikiem, wynosi prawdopodobnie o tym, co osiągnąłby gracz klasy A (chociaż prawdopodobnie i jest nieco zawyżony z powodu stosunkowo wysokiego RD, nadal).
Moim zdaniem najlepszym sposobem na przeciwdziałanie jest nie uznawanie kogoś z rzadkością powyżej określonej kwoty za stabilną ocenę – tj. uważać je za „tymczasowe”. Ponadto, aby faktycznie zdobyć tytuł, przynajmniej w USCF, mają system norm, w których musisz wystąpić na określonym poziomie w turnieju 4 lub więcej gier (4 razy, jak sądzę), co sprawia, że prawdopodobieństwo gry przeciwko ~ 1378 w całym turnieju [cztery razy] jest bardzo mało prawdopodobne.
Czy Twoim celem jest użycie tego do szachów? Jaki jest Twój przypadek użycia?
Aktualizacja: FICS radzi sobie z tym, biorąc pod uwagę tylko osoby z aktywnym RD < 80. (Wydaje mi się, że nadal używają Glicko-1). http://www.freechess.org/Help/ficsfaq.html#Q005.003
Oraz tak przy okazji, Glicko-1 również używa RD / zaniku czasu. Główną poprawą Glicko-2 był czynnik „zmienności”, który pozwala osobom o błędnych wynikach lub stabilnych wynikach na bardzo nieznaczne obliczenie. tak jak ty, nadal byłem zainteresowany obliczeniem tego. Właściwie poprosiłem samego Glickmana o dodatkowe punkty danych do testów, ale był wtedy zbyt zajęty, aby je dostarczyć.
Komentarze
- Do Twojej wiadomości, Tytuł klasy USCF wymaga zdobycia normy w 5 turniejach.
Odpowiedź
Wszystkie systemy ocen mają problemy z prawdziwe życie. W najlepszym razie żaden z nich nie jest w stanie zrobić więcej niż tylko przybliżone przypuszczenie co do twoich umiejętności.
Będą lepiej radzić sobie na poziomie GM, ponieważ ci gracze są bardziej konsekwentni i mają tendencję do grania większej liczby GMów; podczas gdy reszta z nas jest bardziej niekonsekwentna i ma tendencję do grania szerszego grona graczy o niższych ocenach, którzy są również bardziej niespójni. A nowi gracze mają tendencję do znacznie szybszych postępów podczas gry w mniejszej liczbie turniejów, co dodatkowo wypacza wszystkie oceny. I na każdym poziomie niektórzy gracze mają wolne dni lub nie starają się tak bardzo, jeśli nie zmieni to ich pozycji w końcowych wynikach.
Próbowanie dostrojenia ocen tak bardzo, jak Glicko2, jest głupim zadaniem.
Innym czynnikiem pogarszającym problem jest to, że gracze zwykle grają tymi samymi graczami. Gdyby istniał ogólnoświatowy obowiązkowy system szwajcarski, który rozegrałby wystarczającą liczbę rund, w rankingach większości graczy byłby duży wstrząs. Ogólnoświatowy podwójny system kołowy wprowadziłby więcej zmian, ale szwajcarski byłby dobrym początkiem do naprawiania błędów rankingowych – przynajmniej pośrodku z uznanymi graczami. Nadal masz problem z nowymi graczami, którzy zniekształcają oceny.