System oceny Glicko-2: Błąd lub exploit?


13

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ć.

Implementacja PHP Glicko-2

  • 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)

Kalkulator Glicko-2 w Excelu

  • 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


Odpowiedzi:


9

Kilka miesięcy temu pracowałem nad implementacją Scali, chociaż była ona nieco niedopolerowana - powinienem wrócić, aby ją ukończyć. Mam przynajmniej rozsądne wyniki.

Jeśli wygrasz każdą grę, w którą grasz, tak, twoja ocena wzrośnie do dość wysokiej, nawet jeśli grasz tylko z graczami o niskiej ocenie. Prawdopodobieństwo, że wygrasz każdą grę z takim przeciwnikiem, prawdopodobnie zależy od tego, co osiągnąłby gracz klasy A (choć prawdopodobnie jest nieco zawyżone ze względu na relatywnie wysokie RD).

Moim zdaniem najlepszym sposobem, aby temu przeciwdziałać, jest nie uznawanie osoby z rzadkimi chorobami powyżej określonej kwoty za stabilną ocenę - tj. Uznanie jej za „tymczasową”. Ponadto, aby faktycznie zdobyć tytuł, przynajmniej w USCF, mają system norm, w którym musisz występować na pewnym poziomie w turnieju z 4 lub więcej gier (4 razy, jak sądzę), co zwiększa prawdopodobieństwo granie przeciwko ~ 1378 przez cały turniej [cztery razy] jest bardzo mało prawdopodobne.

Czy Twoim celem jest wykorzystanie tego do szachów? Jaki jest twój przypadek użycia?

Aktualizacja: FICS obsługuje to, biorąc pod uwagę tylko osoby z RD <80 aktywną. (Sądzę, że używają Glicko-1). Http://www.freechess.org/Help/ficsfaq.html#Q005.003

Nawiasem mówiąc, Glicko-1 również wykorzystuje rozkład RD / czas. Główną poprawą Glicko-2 był współczynnik „zmienności”, który pozwala bardzo nieznacznie obliczyć osoby z błędnymi wynikami lub stabilnymi wynikami. Myślę, że to bardzo drobna poprawka do Glicko-1, która powoduje znaczne dodatkowe obliczenia - ale podobnie jak ty, wciąż byłem zainteresowany jej obliczeniem. Właściwie poprosiłem Glickmana o dodatkowe punkty danych do testowania, ale był zbyt zajęty, aby je wtedy dostarczyć.


Do Twojej wiadomości, tytuł klasy USCF wymaga zdobycia normy w 5 turniejach.
DM
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.