(OK, I know I just turned off all but the geeks)
Exponential smoothing is a technique where the more recent data is weighted more heavily when computing an 'average'. It's the computer equivalent of putting "X"s by players' names in the program when they're hot. Think how a player's whole-season average may not be the best measure of his ability today.
Say I'm looking at a game where I've rated all the players. Now the game goes off and Player A wins. I'm obviously going to increase his rating and decrease the ratings of the other players. But, by how much? With exponential smoothing, I can give him a new rating which rates recent performances more heavily, for example:
New Rating = (0.9 x Old Rating) + (0.1 x This Game Performance)
The coefficients always total 1.0 (in this example). The lower value (0.1) is the smoothing constant, typically called "Alpha". The value (size) of Alpha determines how fast the rating reacts to current (i.e., this game ) performance. In my studies, I vary the value of Alpha to see which value (responsiveness) give me the best results.
- Too high, and the model reacts very quickly - too quickly, in fact, and it is what statisticians call 'nervous'
- Too low, and the model is not very responsive to new data
The above graph illustrates (for an Alpha value of 0.1) the
diminishing significance of historical data over time.
In my system, the average player rating is 125. 1,000 is 'Perfect'. Early-gamers are typically in the 50-150 range, late-gamers 100-200. The high and low extremes are rare.
So (for the geeks that are still reading), do you use such a technique?