KGS Issue - Minimizing Rank Drift
(Sebastian:) This page contains a proposal which I moved out of KGS Wishlist/Game Handling to clean that page up. It that may or may not be useful - I don't know enough about the current rating algorithm to assess this.
- (Sebastian:) Try to minimize rank drift during a hiatus and sudden jumps when users resume playing rated games after a hiatus. This can be achieved by the following:
When computing Rank_A at time t, do not use the current Rank_B(t), but a weighted average such as
Rank_B_Avg := w(t-t0) * Rank_B(t) + (1-w(t-t0)) * Rank_B(t0)
- t0 < t
- is the time when the game was played
- w(delta_t) !
- = exp (-delta_t/t_halflife*log(2)):is a weighting function. On second thought, maybe it shouldn't even be time-dependent. A constant, such as 1/2, might just do as well. IT would reduce such complaints as "I won a game and my rank went down". It's your call.
- is a time constant, probably best something like 60 days
(I assume that if Rank_B(t0) is not available (e.g. because the player had a question mark) you already just reduce the overall weight factor for that game.)
- mgoetze: I don't see how this fits in with the current rating algorithm.
There is another proposal to counter a global rating drift.
jfc: don't we want sudden jumps when a player returns after hiatus? After all it is common for a player's skill to have changed (e.g. they played a lot at the club for the last 6 months but not on KGS or they didn't play a single game for 9 months and have lost 2 stones of strength).
As to the I won a game and my rating went down complaint; The problem is with the people, not the rating system. Perhaps KGS could implement a ranking system e.g. you are the 923 best rated player. This puts you in the 87th percentile of rated KGS players.
With both a rating (used to select an appropriate handicap between two players) and a rank (used for inflation and deflation of ego) we would be much richer, having two numbers to complain about rather than merely one!
Another benefit of adding the rank measurement is it would encourage folks to bring beginners into the game because the more 30-kyus that join KGS the more my KGS percentile rank would increase inspite of my skill level remaining more or less the same. Of course I would have to sabotage beginner's learning to maintain my improved KGS rank...
As far as the hiatus drift is concerned, I've observed it myself but it don't signify. A few games and the rating is back where it should be.
Mef: Games are already have a half-life for how much they affect rank, the problem is that without more information to go on...you have to go on what you have (nice tautology, no?). So instead the rank sytem just becomes less confident in their rank so that when they do play again their rank will be much more affected than any of their opponents. The problem about having large jumps after a hiatus will happen both ways, so trying to adjust for one will just make it worse for the other. The current way of calculating all game results based on current rank does a nice job of minimizing error due to people who were misranked at the time the game was played.
Tas: I think the problem is rather that peoples ranks tend to inflate while they are not playing, because the people they have played in the past have improved. I have a beginner friend whom I am trying to get to play, but he hasn't won a game on KGS yet, and after a few months off playing his (?-marked) rank is still inflated to several stone above him. So it will take yet more losses to bring it down.
usagi: the real problem with the rating system is that old games are re-weighted and re-calculated. What happened 3 and 6 months ago is of little to no relevance for an amateur player. This isn't how ratings are calculated in the real world, so why is it done this way on the internet? This way is supposed to "make sense" but it doesn't work well in practice. In the real world I can walk into a go club, play 2 or 3 games, and get a rating. Having to wait (worst case) 5 or 6 months to get promoted shows just how broken the current system really is.
guest: Put an option in the players profile that you want your rating reset to the last time you played. It's unfair to the player to see the rating inflate when no games have been played and skills may have been lost during a long hiatus.