Pierwotnie miałem to opublikowane na StackOverflow, ponieważ może to być błąd w implementacjach, ale niektórzy sugerowali, że piszę do matematyki. Właśnie znalazłem tę wymianę stosów i pomyślałem, kto lepiej? Niektórzy z was mogą wiedzieć od samego początku, że wydaje się to trafne lub nie, bez potrzeby debugowania. Wszelkie linki do kalkulatorów online lub alternatywnych metod oceny są mile widziane.
Glicko-2 to system oceniania stosowany w szachach, ale może być stosowany w wielu innych sytuacjach. Glicko-2 to poprawa w stosunku do Glicko-1, która rozwiązała problemy związane ze starszą oceną ELO.
Tym, co wyróżnia Glicko-2 w porównaniu z wersją 1, jest to, że zawiera wyższe odchylenie oceny (RD), im dłużej ktoś jest nieaktywny. Robi to z pojęciem stałej systemowej odnoszącej się do okresów / okresów ratingowych.
Przykładowy napisany przez autora można znaleźć 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 do dużej, powiedzmy średnio co najmniej 10-15 gier na gracza w okresie oceny. Czas trwania okresu oceny zależy od administratora.
Zakładając, że grupa aktywnych szachistów gra średnio 10-15 gier w okresie 1 miesiąca, administrator aktualizuje oceny na koniec każdego miesiąca.
Potrzebowałem implementacji PHP systemu oceny Glicko-2 i natrafiłem na następujące:
Implementacja JavaScript Glicko-2
- JavaScript miał mały błąd, w którym nie pozwolił mu pasować do przykładu technicznego zapisu, autor stwierdził, że jest wystarczająco blisko i nie zadał sobie trudu, aby debugować.
- Wdrożenie PHP było obarczone wieloma błędami, ale nie było to oczywiste, chyba że zrobiłeś więcej niż jeden okres oceniania (którego techniczny zapis nigdy nie pokazuje oczekiwanych wartości)
- Wreszcie kalkulator Excel wydawał się być wolny od błędów i najbardziej profesjonalny, wykonywany przez kogoś ze społeczności szachowej. Po usunięciu błędu JavaScript JavaScript i kalkulator Excela bardzo ściśle do siebie pasują (choć nie idealnie, może występować błąd zaokrąglania)
Naprawiłem błędy (i przesłałem autorom problemy / poprawki), które mogłem znaleźć w wersjach PHP i JavaScript, aby pasowały do kalkulatora Excel
Teraz jestem w 99% pewien, że mam dokładną implementację Glicko-2 (pomiędzy 3 z nich) do analizy i wtedy natrafiłem na coś dziwnego i na 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 zmierzysz się ze średnim przeciwnikiem o ocenach 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ą ocenę klasy krajowej A (1800-1999) z 1852 r. kiedy w rzeczywistości pokonałeś 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 zmierzysz się z 2 przeciętnymi przeciwnikami w każdym okresie oceny, możesz dostać się do klasy krajowej A około 4-5 miesięcy, mając do czynienia 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ą dokładne? Czy w moim kalkulatorze jest błąd?
Jeśli to nie błąd, jakie są inne sposoby przeciwdziałania temu:
- Rozważ „prawdziwą ocenę” jako dolną granicę odchylenia (ocena - RD)
- Nie pokazuj nieaktywnej oceny użytkownika
- Nie pokazuj użytkowników z mniej niż N grami