patternMinor
Analysis and classification based on data points
Viewed 0 times
pointsanalysisbasedandclassificationdata
Problem
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.
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.
Solution
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:
-
https://stats.stackexchange.com/q/6379/2921
-
https://stats.stackexchange.com/q/30976/2921
-
https://stats.stackexchange.com/q/15776/2921
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:
-
https://stats.stackexchange.com/q/6379/2921
-
https://stats.stackexchange.com/q/30976/2921
-
https://stats.stackexchange.com/q/15776/2921
Context
StackExchange Computer Science Q#16775, answer score: 2
Revisions (0)
No revisions yet.