I'm not sure if this is the correct stack exchange or correct tags, but my question is as follows:

I am working on a sort-of ratings system for players in a particular game. After allowing the ratings to develop for many games, I have set up a "database" (not sure if this is the correct term) for matches: a point in the database would consist of the score difference between the players (i.e if it's >0 player 1 won) and the rating discrepancy between the two players before this match.

The idea is to use this database in order to predict the score difference of a match that has not yet occurred: I measure the rating discrepancy between the 2 players, and lookup in my database for the score differences in games of a "similar" rating discrepancy, and based on these games I am able to predict, say, a rough probability of each score difference occurring in this match that has not yet happened.

I actually have two questions:

1) what is a good approach to using the database to predict the probability of each score difference, i.e what qualifies as a "similar" rating discrepancy, how do I deal with extreme cases where the rating discrepancy is very large and I have few data examples of such matches (should I relax my definition of "similar"?), etc. A bit of googling shows that maybe I am looking for something relating to data clusters.

2)how would I go about implementing an algorithm as above? are there good standard implementations of such classification algorithms? I am writing in C# if it makes a difference.


One option is to use the Elo rating system. It is based upon some mathematical theory of the sort you are mentioning.

The Bradley-Terry model is another mathematical approach that may also interest you. It assumes that each player has an (unknown) strength, which can be quantified as a real number, and the probability that Alice beats Bob is determined by some smooth function of the difference of their strengths. Then, given the pairwise win/loss records, it estimates the strength of each player.

See also:

  • $\begingroup$ The thing is I already have the rating system, and it "suits" the data well (captures accurately skill of players). I'm familiar with the more rigorous rating systems but have found that for various reason my game is not really compatible with such rating systems. I guess what I am looking for is some method to do regression analysis on score difference as a function of rating discrepancy, but I am not really familiar with statistic libraries so not really sure how to go about it. Do you have an idea? $\endgroup$ Nov 6 '13 at 22:30
  • $\begingroup$ @ctlaltdefeat, maybe it makes more sense to migrate this question to the Statistics Stack Exchange? (You can do that by clicking on the "flag" link to flag it for moderator attention and ask them to migrate it.) You will probably need to give them a little more information; a scatterplot/chart of win percentage as a function of the score difference might help too. $\endgroup$
    – D.W.
    Nov 6 '13 at 23:34
  • $\begingroup$ I think I have a direction now, if I need more help I will migrate the question. Thanks, your answer made me realize better what exactly I'm after. $\endgroup$ Nov 6 '13 at 23:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.