lidraughts
lidraughts copied to clipboard
Tournament Performance
The current tournament performance rating scheme is based on the model Lichess uses which is based on glicko-2, http://www.glicko.net/glicko/glicko2.pdf This has known issues when users play small numbers of games, or have large win or loss streaks, or playing players with more than 400 points rating difference. Ex Winnings a game is +400 points so beating a lower rated player will lower your performance https://prnt.sc/qcciu7 then https://prnt.sc/qccipd Newer games are weighted heavier https://prnt.sc/qd4xgi PS it also doesn't change after a user has been flagged as cheating https://prnt.sc/q6uqr8
This results in a user being able to gain rating points in a tournament while having a performance significantly below their rating. In this tournament (Yah i know lila code but still same mechanism they don't want to change it cause "It's good enough" from ornicar) https://lichess.org/tournament/vGE5M30Y top player gains rating with a performance below their rating.
Solution. Performance rating should be the rating that the player should have entered the tournament with to have a rating change <1 by the end of the tournament. This solves our small game case since if you played one game it would be about +500, if a users went on a streak players rated further away would have diminishing effect on the performance. The way it would work is with a regression that initializes to the players current rating if the player would have increased rating then the new guess is moved up that many rating points and re-evaluated. I am sure a method that converges faster can be developed but that's the basic idea. PS I can code this up if it's agreed this would be a good change.
I have not verified your analysis/solution, but see your point. A solution that converges by "iterative guessing" wouldn't do.
As far as I'm concerned, it's not something I would want to spend my time on, or that would justify adding much complexity. So I tend to agree it is only a minor issue ("good enough").
How is "iterative guessing" not going to do is it too process intensive, or is there no way to pull in those variables.
If you don't have time to go through it and change it that is understandable. Where in here is the code for that so I can go through and find it to take a look? I can see right now it works something like tournament pertformance = average rating of opponents in the tournament +/- calculated rating difference which seems like it makes sense but isn't representative.
I played this today on Lichess today http://prntscr.com/toft9o and since I'm guessing you didn't change the code since it was forked Lidraughts would also be susceptible.