elo-rating
elo-rating copied to clipboard
FIDE k-factor
Not sure if you will be interested in that, but I updated your rating system with the FIDE K-factor. This will take in consideration the number of game played by each player and their raking in the final calculation. I also added some tests.
cheers for this @konpa!
I've been using it on a little personal project for a 8-ball pool leaderboard, and it seems like the scores are a bit too... volatile? I assigne new players a 1000 point score and, considering this is a win-or-lose kind of match (ie. there's no actual game score), I use as match score of either 1-0 or 0-1, depending on which player won. What happens is, the player ratings seem to hover a bit too much around 1000, and if for instance an experienced player loses a match or two, he could easily go under 1000 rating, thus having less points than a player without a single game played or one who won a single match.
Would you be able to advise as to the best way to tweak the numbers in order to achieve a more reliable ranking system for my case? I see a lot of constant numbers in _getExpectedScores
and _getKFactors
which seem could be the ones which need changing...
Hi @daniel-gomes and thanks for your feedback.
Unfortunately, for what I read about Elo rating, this seems to be the downside of this rating system. It works very well when you have some results already saved but problem is for starter or when your leaderboard begins. You can change the K-factor values in order to allow new players to "move" faster (or slower) in the leaderboard. Additionally, in my case, I does not allow players' points to go under 1000 points in order to avoid situations like the one you described. If a player with 1000 points loses, he stays with 1000 points. You could also give more points to a starter regarding his level (if you have a way to know his level...).
Hope it helps :)
I actually already have some results I can use to simulate scores, since my leaderboard already has about 200 matches for around 20 users, so I I wrote a script to simulate the end scores of each player with different k-factors etc. After playing around a bit and I came up with values which seem to make sense in my head (it helps knowing which players play more/are more consistent), so I guess I'll go with that. I was just wondering if there was some sort of rule for my particular case, but I guess I just have to play round with the values as you said.
Thanks for the help!
Почему если счет например 3-2 то рейтинг идет в плюс обоим? Хотя второму игроку должен , быть в минус, он же проиграл!
Why, if, for example, 3-2 then the rating goes to a plus for both? Although the second player needs to be in the negative, he also lost!