User ranking model
I am trying to develop a simple game where a group of users can come and play the game. Based on the results of the user's work, they receive a positive or negative score.
I want two parameters to be taken into account by the user weight
(the number of matches he played and his play in those matches), his instantaneous skill sets
. These two values, combined for each user and compared with the results of other users, can give him a score in the current match.
Then, by combining the rating and the previous rating, we can get a new user rating.
I don't want to reinvent the wheel. I tried and came up with this, but it looks pretty naive and I'm not sure how the performance would be in a real scenario.
Pos[i] and Neg[i] are the positive and negative score of the users in a match.
Step1: Calculate the average score of n people 'for i in range(1, N): sum = sum + Pos[i] Average = sum/N' do the same for negative score.
Step2: Calculate the Standard Deviation (SD)
Step3: Calculate the weight of the user as follows say the user has played M matches, his weight W will be Mxabs((sum(POS[i])/N1 - (sum(NEG[i])/N2))
(where N1 is the number of times he has scored positive scores and N2 the number of times he scored negative result)
Step4: Current Score = (POSi - SD)xW
Step5: His New Rating = Old Rating + Current Score
Please suggest something standard.
source to share
You should check how the chess ratings are calculated . There are several options to choose from, but I think this should be appropriate for your case.
source to share
Check out Glicko, TrueSkill, different approaches in Kaggle chess ranking
http://timsalimans.com/how-i-won-the-deloittefide-chess-rating-challenge/
http://blog.kaggle.com/2012/03/20/could-world-chess-ratings-be-decided-by-the-stephenson-system/
I posted some url here before noticing that the OP was an SO question: http://www.reddit.com/r/statistics/comments/rsomx/how_do_i_calculate_the_rating_of_a_player_in_a/
source to share