clubbadubba
Smash Master
- Joined
- Apr 27, 2011
- Messages
- 4,086
UPDATE: Shears will now be handling all Elo related activities via the website he created. The NA console Elo can be found here:
http://elorankings.com/rankings.aspx?id=4
http://elorankings.com has other rankings present and anyone can create their own rankings as well. If you are interested check it out!
I have created a Java program that will calculate player ratings based on tournament results. The rating system is based on the ELO rating system, which was initially created to rate chess players, but can be used for any head to head competition format. For more information about ELO, you can start at the wikipedia page HERE.
The Logic:
Formulas:
Scope of the project:
Submitting Tournament Data:
Format:
And TO's, please email your text files to clubba22@gmail.com, and when you do please leave a post here telling me to check, because I do not check that email often.
http://elorankings.com/rankings.aspx?id=4
http://elorankings.com has other rankings present and anyone can create their own rankings as well. If you are interested check it out!
I have created a Java program that will calculate player ratings based on tournament results. The rating system is based on the ELO rating system, which was initially created to rate chess players, but can be used for any head to head competition format. For more information about ELO, you can start at the wikipedia page HERE.
The Logic:
ELO is a rating system for head to head competitions. Each new player starts with a default rating of 1500 (an arbitray number), which will increase as they win and decrease as they lose. The amount of points gained or lost from a game is dependent on the rating of the opponent played. For example, if a 2000 player beats a 1000 player, very little change will occur to either players rating. However, if a 2000 player loses to a 1000 player, both players ratings will change drastically. Players ratings will also change more drastically during the first games that are recorded for the ratings. This allows players to reach a stable equilibrium quickly.
Formulas:
Say we have player A and player B, who have ratings of Ra and Rb, respectively. The formulas are as follows:
Ra(new) = Ra(old) + K * ( W – Ea )
Rb(new) = Rb(old) + K * ( W – Eb )
where Ea and Eb are the expecated probability that player A and player B will win the matchup, respectively. W = 1 if the player won, and W = 0 if the player lost.
Ea and Eb can be calculated by:
Ea = 1/(1 + 10 ^ ((Rb-Ra) / 400) )
Eb = 1/(1 + 10 ^ ((Ra-Rb) / 400) )
K is a "K factor" which takes into account how many games a player has played. The fewer games a player has played, the greater the K factor will be. This allows players to reach a stable equilibrium much faster than if K were a non-changing value. In this rating, K for a particular player can be calculated by:
K = 800/(Ne)
where Ne is the total number of games played by a player in order to achieve this rating. The value of 800 is the recommended value for ELO. In order to assure that no player's K factor gets so low that their rating becomes stagnant, a floor value has been set to 64. This value was chosen to be higher than the standard ELO value of 16 or 32, because there are so few competitve games played. This number can be subject to change in the future. At the current value, a player's rating should not be considered "stable" until they have played a minimum of 13 games.
Ra(new) = Ra(old) + K * ( W – Ea )
Rb(new) = Rb(old) + K * ( W – Eb )
where Ea and Eb are the expecated probability that player A and player B will win the matchup, respectively. W = 1 if the player won, and W = 0 if the player lost.
Ea and Eb can be calculated by:
Ea = 1/(1 + 10 ^ ((Rb-Ra) / 400) )
Eb = 1/(1 + 10 ^ ((Ra-Rb) / 400) )
K is a "K factor" which takes into account how many games a player has played. The fewer games a player has played, the greater the K factor will be. This allows players to reach a stable equilibrium much faster than if K were a non-changing value. In this rating, K for a particular player can be calculated by:
K = 800/(Ne)
where Ne is the total number of games played by a player in order to achieve this rating. The value of 800 is the recommended value for ELO. In order to assure that no player's K factor gets so low that their rating becomes stagnant, a floor value has been set to 64. This value was chosen to be higher than the standard ELO value of 16 or 32, because there are so few competitve games played. This number can be subject to change in the future. At the current value, a player's rating should not be considered "stable" until they have played a minimum of 13 games.
Scope of the project:
I have started this project out using only console tournaments. Soon, I will expand this project to online competitions as well. I plan to have 3 different ratings list: 1 for console, 1 for online, and 1 for console/online. International play is welcome to submit data as well.
Submitting Tournament Data:
In order to create these ratings I need the tournament data in text file format. I have so far created the text files for Genesis 2, Apex 2012, and Apex 2013, which are probably 3 of the larger tournaments. It would take a long time for me to do all of them on my own, so I am requesting help from anyone who has the time to create a text file representing tournament data. Thanks to Cobrevolution and Banze for submitting tournament data to me all ready for 3 NJ tournaments and 1 Brazilian tournament. I know there are a few more tournaments that have occurred in recent years, and I would appreciate all the help I can get in turning the data into the appropriately formatted text files.
Format:
1) List all of the tournament players names in a vertical column, with no extra spaces at the end of each name. At the end of the list, write "End Of Entrants List" without the quotes.
2) Immediately following the end of entrants line, proceed to list the games in the following fashion: Name of winning player, followed by a tab, followed by the name of losing player, and that is one line. On the next line you would do the same for the next game. When you are doing games, it is important that you list them in the proper order.
i) Skip all byes
ii) Add all of the winners bracket games all the way through the WF, and until that point be sure to add all of the previous rounds games before moving on to the next.
iii) After the winner's games are done, add the losers brackets games, again being sure to add all the games in each round before moving on to the next round. After adding the LF set, add the first set of GF, and then add the second set if there is one.
iv) If doing something more complicated than a double elimination tournament, just be aware that the purpose of the ordering is to make sure people get credit for the rating their opponent is at AT THE TIME THEY PLAYED. So, essentially each player's games need to be in chronological order.
3) Please simplify all entrant names so that they are all in lower case, and if anyone has numbers in their names in place of letters, please replace them with the proper lower case letters. So m3gav01t would be megavolt. And SuPeRbOoMfAn would be superboomfan. I need all names to be consistent across different tournaments, and this is the easiest way to do it.
Example Format:
kikoushi
isai
superboomfan
.
.
.
sandman
End Of Entrants List
bossman shaolinblunts
.
.
superboomfan bossman
.
.
.
kikoushi isai
.
.
.
isai superboomfan
isai kikoushi
kikoushi isai
2) Immediately following the end of entrants line, proceed to list the games in the following fashion: Name of winning player, followed by a tab, followed by the name of losing player, and that is one line. On the next line you would do the same for the next game. When you are doing games, it is important that you list them in the proper order.
i) Skip all byes
ii) Add all of the winners bracket games all the way through the WF, and until that point be sure to add all of the previous rounds games before moving on to the next.
iii) After the winner's games are done, add the losers brackets games, again being sure to add all the games in each round before moving on to the next round. After adding the LF set, add the first set of GF, and then add the second set if there is one.
iv) If doing something more complicated than a double elimination tournament, just be aware that the purpose of the ordering is to make sure people get credit for the rating their opponent is at AT THE TIME THEY PLAYED. So, essentially each player's games need to be in chronological order.
3) Please simplify all entrant names so that they are all in lower case, and if anyone has numbers in their names in place of letters, please replace them with the proper lower case letters. So m3gav01t would be megavolt. And SuPeRbOoMfAn would be superboomfan. I need all names to be consistent across different tournaments, and this is the easiest way to do it.
Example Format:
kikoushi
isai
superboomfan
.
.
.
sandman
End Of Entrants List
bossman shaolinblunts
.
.
superboomfan bossman
.
.
.
kikoushi isai
.
.
.
isai superboomfan
isai kikoushi
kikoushi isai
And TO's, please email your text files to clubba22@gmail.com, and when you do please leave a post here telling me to check, because I do not check that email often.
Last edited: