Closed tomjenkinson closed 6 years ago
Tom, thanks for your comment.
I did not implement the Elo rating system, I used this library http://rubygems.org/gems/elo.
The k-factor is not used to address the issue you describe, but it used to quickly determine a new players rating, and then to stablise their rating once they have played a reasonable amount of games (the k-factor and the amount of games are not fixed, but are dependent on your environment). Using the k-factor allows larger fluctuations in a players rating early in the players career, these then become smaller once the player has played a certain amount of games.
With regards to the issue of "people being sat in the middle of the table", this is a known constraint of the Elo rating system. If you read the section on "Practical Issues" on the wiki page you posted, it describes the problem of lack of activity. There have been some efforts to address this by adding an "activity reward", this is external to the Elo rating system. Nunn's "Activity Reward" described on the wiki page and also the efforts described here: http://www.pokerth.net/forum/13-general/5076-elo-ranking-system.html are two examples.
Both these solutions reward players for playing more games. However, I don't think this approach really applies to the problem you describe. I think a more appropriate solution would be to penalise those players who do not play. I am not aware of any standard algorithms that address this so I've outlined a rudimentary way below, which might solve the problem, we can discuss and amend as we see fit. Or if we come across a standard approach then implement that.
Lack of Activity Penalty
a = Number of days without play d = The allowed number of days of inactivity b = baseline rating (that a player will not drop below) x = % penalty r = players current rating
each day do if a > d r = r - (x * (r - b)) a = 0 end end
What do you think?
Martyn,
Humblest apologies for not responding sooner, I concur with your proposal!
Tom
I have reviewed your application and on the whole it is rather an impressive piece of work. However, I do query whether the Elo Ratings system has been implemented correctly. For instance you have players sat in the middle of the table that have not played many games. I believe the solution for this is to introduce K-Factor (http://en.wikipedia.org/wiki/Elo_rating_system) with a greater coefficient applied to players who have played only a few games.