Eu tinha postado isso originalmente em StackOverflow , pois pode ser um bug nas implementações , mas alguns sugeriram que eu postasse em matemática. Acabei de encontrar esta troca de pilha e pensei em quem melhor? Alguns de vocês podem saber de cara, mas isso parece preciso ou não, sem a necessidade de depuração. Todos os links para calculadoras online ou métodos alternativos de classificação são bem-vindos.


Glicko-2 é um sistema de classificação usado no xadrez, mas pode ser usado em muitas outras situações. Glicko-2 é uma melhoria do Glicko-1, que abordou problemas da classificação ELO mais antiga.

O que torna o Glicko-2 especial em comparação com a versão 1 é que ele incorpora um desvio de classificação (RD) mais alto, o mais alguém está inativo. Ele faz isso com a noção de uma constante do sistema que se relaciona com os períodos de tempo / classificação.

Um exemplo escrito do autor é encontrado aqui: http://www.glicko.net/glicko/glicko2.pdf .
Neste documento, ele explica:

O sistema Glicko-2 funciona melhor quando o número de jogos em um período de classificação é moderado a grande, digamos uma média de pelo menos 10-15 jogos por jogador em um período de classificação. A duração de um período de classificação fica a critério do administrador.

Fazer uma suposição de que um grupo de jogadores de xadrez ativos joga 10-15 partidas em média, em um período de 1 mês, o administrador atualizaria as classificações no final de cada mês.


Eu precisava de uma implementação de PHP do sistema de classificação Glicko-2 e me deparei com o seguinte:

Implementação de JavaScript Glicko-2

  • O JavaScript tinha um pequeno erro, no qual não correspondia ao exemplo de redação técnica, o autor achou perto o suficiente e não se preocupou em debug.

Implementação Glicko-2 PHP

  • A implementação do PHP estava infestada de muitos bugs, mas isso não era aparente, a menos que você fizesse mais de um período de avaliação (que o técnico escreveu até nev er mostra os valores esperados de)

Calculadora Glicko-2 no Excel

  • Finalmente a calculadora do Excel parecia estar livre de erros e a mais profissional, feita por alguém da comunidade do xadrez. Depois que o bug do JavaScript foi resolvido, o JavaScript e a Calculadora do Excel combinaram muito (embora não sejam perfeitos, podem estar dentro do erro de arredondamento)

Eu corrigi os bugs (e enviei os problemas / patches para os autores) Eu poderia encontrar nas versões PHP e JavaScript para corresponder o mais próximo à Calculadora do Excel


Agora estou 99% confiante de que tenho uma implementação precisa do Glicko-2 (entre os 3 deles) para análise e foi quando me deparei com algo estranho, e o tópico desta discussão.

Dado o padrão sugerido para Glicko-2 para um novo jogador:

Rating: 1500 RD: 350 Volatility: 0.06 

Se você enfrentar um oponente médio de classificação 1378 e RD 99 ( Fonte ) apenas uma vez a cada período de classificação (1 mês) pelos próximos 12 períodos (1 ano), você terá acumulado uma Classe Nacional A (1800-1999) classificação de 1852 quando na realidade você tem venceu apenas 12 jogadores com classificação média em um período de 12 meses.

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 você enfrentar 2 oponentes em média a cada período de classificação, você pode chegar à Classe A nacional por cerca de 4-5 meses, enfrentando apenas 8-10 oponentes em média.

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 〃 


Essas suposições são precisas? Existe um bug na minha calculadora?

Se não for um bug, quais são algumas maneiras de contra-atacar isso:

  • Considere “classificação verdadeira” como o limite inferior do desvio (Classificação – RD)
  • Não mostrar a classificação do usuário inativo
  • Não mostrar usuários com menos de N jogos

Comentários

Resposta

Trabalhei em uma implementação do Scala há alguns meses, embora estivesse um pouco mal acabada – devo voltar para terminá-la. Pelo menos obtive alguns resultados razoáveis de .

Se você vencer todos os jogos que jogar, sim, sua classificação aumentará para ser bastante alta, mesmo se você jogar apenas contra jogadores de baixa classificação. A probabilidade de vencer todos os jogos contra esse oponente é provavelmente sobre o que um jogador classe A alcançaria (embora provavelmente eu está um pouco inflado devido ao RD relativamente alto, ainda).

A melhor maneira de contra-atacar, em minha opinião, é não considerar alguém com um RD acima de um determinado valor como uma classificação estável – ou seja, considerá-lo “provisório”. Além disso, para realmente ganhar um título, pelo menos na USCF, eles têm um sistema de normas, onde você deve jogar em um determinado nível em um torneio de 4 jogos ou mais (4 vezes, eu acredito), o que torna a probabilidade de jogar contra um ~ 1378 em todo o torneio [quatro vezes] muito improvável.

Seu objetivo é usar isso para o xadrez? Qual é o seu caso de uso?

Atualização: a FICS trata disso considerando apenas pessoas com um RD de < 80 ativo. (Eles usam Glicko-1, ainda assim, eu acredito.) http://www.freechess.org/Help/ficsfaq.html#Q005.003

E por aliás, o Glicko-1 também usa RD / redução de tempo. A principal melhoria do Glicko-2 foi o fator de “volatilidade”, que permite que pessoas com resultados erráticos ou estáveis sejam calculados de forma um pouco diferente. Eu acho que é “um pequeno ajuste no Glicko-1 que causa cálculos extras consideráveis – mas como você, ainda estava interessado em calculá-lo. Na verdade, pedi ao próprio Glickman alguns pontos de dados adicionais para teste, mas ele estava muito ocupado para fornecê-los no momento.

Comentários

  • Para sua informação, um O título de nível de classe da USCF exige que você ganhe uma norma em 5 torneios.

Resposta

Todos os sistemas de classificação têm problemas em Vida real. Na melhor das hipóteses, nenhum deles pode fazer mais do que adivinhar sua habilidade.

Eles se sairão melhor no nível do GM, pois esses jogadores são mais consistentes e tendem a jogar mais GMs; enquanto o resto de nós é mais inconsistente e tende a jogar com uma gama mais ampla de jogadores de baixa classificação que também são mais inconsistentes. E os novos jogadores tendem a melhorar muito mais rápido enquanto jogam em menos torneios, o que distorce ainda mais todas as classificações. E, em qualquer nível, alguns jogadores têm dias de folga ou não se esforçam tanto se isso não mudar sua posição nos resultados finais.

Tentar ajustar as avaliações tanto como o Glicko2 é uma missão tola.

Outro fator que exacerba o problema é que os jogadores tendem a jogar com os mesmos jogadores. Se houvesse um sistema suíço obrigatório mundial que jogasse rodadas suficientes, haveria uma grande mudança na classificação da maioria dos jogadores. Um double round robin mundial faria mais algumas mudanças, mas o suíço seria um bom começo para corrigir erros de classificação – pelo menos no meio com jogadores estabelecidos. Você ainda tem problemas com novos jogadores que distorcem as classificações.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *