Sistema di valutazione Glicko-2: bug o exploit?


13

Inizialmente avevo pubblicato questo su StackOverflow in quanto potrebbe essere un bug nelle implementazioni, ma alcuni hanno suggerito di postare in matematica. Ho appena trovato questo stackexchange e ho pensato chi sarebbe meglio? Alcuni di voi potrebbero sapere fin dall'inizio che questo sembra accurato o no, senza la necessità di eseguire il debug. Tutti i collegamenti a calcolatori online o metodi di valutazione alternativi sono i benvenuti.


Glicko-2 è un sistema di classificazione utilizzato negli scacchi, ma può essere utilizzato in molte altre situazioni. Glicko-2 è un miglioramento rispetto a Glicko-1, che ha affrontato i problemi del vecchio rating ELO.

Ciò che rende speciale Glicko-2 rispetto alla versione 1 è che incorpora una deviazione di rating più alta (RD) più a lungo qualcuno è rimasto inattivo. Lo fa con l'idea di una costante di sistema che si riferisce ai periodi di tempo / valutazione.

Un esempio scritto dall'autore si trova qui: http://www.glicko.net/glicko/glicko2.pdf .
All'interno di questo documento, spiega:

Il sistema Glicko-2 funziona meglio quando il numero di giochi in un periodo di valutazione è da moderato a grande, diciamo una media di almeno 10-15 giochi per giocatore in un periodo di valutazione. Il periodo di tempo per un periodo di valutazione è a discrezione dell'amministratore.

Partendo dal presupposto che un gruppo di giocatori di scacchi attivi gioca in media 10-15 partite in un periodo di 1 mese, l'amministratore aggiorna quindi le valutazioni alla fine di ogni mese.


Avevo bisogno di un'implementazione PHP del sistema di classificazione Glicko-2 e ho riscontrato quanto segue:

Implementazione JavaScript di Glicko-2

  • JavaScript ha avuto un piccolo errore, nel quale non ha lasciato corrispondere all'esempio tecnico di redazione, l'autore l'ha trovato abbastanza vicino e non si è preoccupato di eseguire il debug.

Implementazione PHP di Glicko-2

  • L'implementazione di PHP è stata afflitta da molti bug, ma ciò non era evidente a meno che tu non abbia fatto più di un periodo di valutazione (di cui la scrittura tecnica non mostra mai i valori previsti di)

Calcolatrice Glicko-2 in Excel

  • Finalmente il calcolatore Excel sembrava essere privo di errori e il più professionale, fatto da qualcuno nella comunità degli scacchi. Una volta risolto il bug JavaScript, il calcolatore JavaScript ed Excel si combinavano molto strettamente tra loro (anche se non perfetto, potrebbe essere in errore di arrotondamento)

Avevo corretto i bug (e inviato problemi / patch agli autori) che trovavo nelle versioni PHP e JavaScript in modo che corrispondessero al calcolatore Excel


Ora sono fiducioso al 99% di avere un'implementazione accurata di Glicko-2 (tra i 3) per l'analisi e questo è quando mi sono imbattuto in qualcosa di strano e l'argomento di questa discussione.

Dato il valore predefinito suggerito per Glicko-2 per un nuovo giocatore:

Rating:      1500
RD:           350
Volatility:  0.06

Se ti trovi di fronte a un avversario medio di rating 1378 e RD 99 ( Fonte ) solo una volta per ogni periodo di valutazione (1 mese) per i successivi 12 periodi (1 anno) avrai accumulato una valutazione nazionale di Classe A (1800-1999) del 1852 quando in realtà hai battuto solo 12 giocatori con un punteggio medio nell'arco di 12 mesi.

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        〃

Se affronti 2 avversari medi in ogni periodo di classificazione, puoi raggiungere la Classe A nazionale circa 4-5 mesi, affrontando solo 8-10 avversari medi.

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        〃


Questi presupposti sono accurati? C'è un bug nella mia calcolatrice?

Se non si tratta di un bug, quali sono alcuni modi per contrastare questo oltre a:

  • Considera "valutazione reale" come limite inferiore della deviazione (Valutazione - RD)
  • Non mostrare la valutazione dell'utente inattivo
  • Non mostrare agli utenti con meno di N giochi


Risposte:


9

Ho lavorato su un'implementazione di Scala alcuni mesi fa, anche se era un po 'non lucidato - dovrei tornare indietro per finirlo. Almeno ho ottenuto alcuni risultati ragionevoli da esso.

Se vinci ogni partita a cui giochi, sì, la tua valutazione diventerà abbastanza alta anche se giochi solo contro giocatori con una valutazione bassa. La probabilità che vincerai ogni partita contro un simile avversario probabilmente dipende da ciò che un giocatore di classe A otterrebbe (anche se probabilmente è un po 'gonfiato a causa del RD relativamente alto, comunque).

Il modo migliore per contrastare, secondo me, è di non considerare qualcuno con un RD oltre un certo importo come un rating stabile - cioè considerarlo "provvisorio". Inoltre, per ottenere effettivamente un titolo, almeno in USCF, hanno un sistema di norme, in cui devi esibirti ad un certo livello in un torneo di 4 o più partite (4 volte, credo), il che rende probabile di giocare contro un ~ 1378 per l'intero torneo [quattro volte] molto improbabile.

Il tuo obiettivo è quello di usare questo per gli scacchi? Qual è il tuo caso d'uso?

Aggiornamento: FICS lo gestisce considerando solo le persone con un RD <80 attivo. (Continuano a usare Glicko-1, credo.) Http://www.freechess.org/Help/ficsfaq.html#Q005.003

A proposito, Glicko-1 usa anche il decadimento RD / tempo. Il principale miglioramento di Glicko-2 è stato il fattore "volatilità", che consente alle persone con risultati irregolari o risultati stabili di essere calcolate in modo leggermente diverso. Penso che sia una piccola modifica a Glicko-1 che causa un notevole calcolo extra - ma come te, ero ancora interessato a calcolarlo. In realtà ho chiesto a Glickman stesso alcuni punti dati aggiuntivi per i test, ma era troppo impegnato per fornirli in quel momento.


Cordiali saluti, un titolo di livello USCF richiede di guadagnare una norma in 5 tornei.
DM
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.