[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[pbmserv-dev] ratings.cpp



Okay, thanks for your help! This is the section of code I was
looking for:

 if (games1 < 20) {  /* Provisional against... */
  int value;
  if (games2 < 20) /* provisional */
   value = (rating1+effrat2)/2 + 200*outcome;
  else   /* established */
   value = effrat2 + 400*outcome;
  newrating = (rating1*games1+value)/(games1+1) + (1720-rating1)/5;

Note that the term (1720-rating1)/5 is added to your rating
EVERY TIME a game is completed. No record is kept of what your
rating would have been without this bias. This seems to contradict
what it says in http://www.gamerz.net/pbmserv/ratings.html

"The rating during the provisional period is the average of a set of values,
one for each game played.  The values (of which the rating is an average)
depend on whether the opponent is provisional, or is established.  The value
against a provisional player is the average of the two ratings (using 1600 if
the player has never played) plus 200 times the outcome (which is -1, 0, 1
for loss, draw and win).   The value against an established player is the
opponent's rating plus 400 times the outcome.  Some extra points are now added
to the rating for the purpose of keeping the average rating of all established
active players close to 1720.  In particular, 1/5th of 1720 minus the current
average is added to the rating."

But that's not what's happening. No record is kept of what your average
rating would be before the bias adjustment. So the bias is applied after
each game, and the cumulative effect can drag your rating way down,
even if you are beating 1800 established players, as you reach the end
of your 20 games.

Am I making sense here? Do you see what I'm saying?

David