Bayeselo: Difference between revisions

From Warzone Wiki
Jump to navigation Jump to search
No edit summary
 
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
WarLight uses an ELO rating system, similar to what is used in Chess.  
'''Bayeselo''', or Bayesian Elo Rating, is a modifier form of ELO used to calculate the ratings on the [[Seasonal Ladder]].


==How Ranks and Ratings are calculated==
See [http://remi.coulom.free.fr/Bayesian-Elo/ Bayesian Elo Rating] for the full details.  This has several advantages over other ELO rating systems:
 
More specifically, WarLight uses Bayesian Elo Rating, which has several advantages over other ELO rating systems:
* Beating the same opponent multiple times gives you more rating than beating them once. In most ELO systems, only a win or loss is considered for each opponent.
* Beating the same opponent multiple times gives you more rating than beating them once. In most ELO systems, only a win or loss is considered for each opponent.
* This system allows giving an advantage to players that pick first, as described above.
* Bayeselo behaves correctly when opponents' ratings are far apart
* Bayeselo behaves correctly when opponents' ratings are far apart
* Ratings are calculated based on final ratings, not just what the rating was when the game took place.
* Ratings are calculated based on final ratings, not just what the rating was when the game took place.
Line 19: Line 16:
* How would the ratings be different if first-pick advantage was higher or lower?
* How would the ratings be different if first-pick advantage was higher or lower?


Here's the process to re-produce the current rankings:
Here’s the process to re-produce the current rankings:


* Download Bayeselo.exe from [http://remi.coulom.free.fr/Bayesian-Elo/ remi.coulom.free.fr].
* Download Bayeselo.exe from [http://remi.coulom.free.fr/Bayesian-Elo/ remi.coulom.free.fr].
Line 26: Line 23:
  ResultSet>
  ResultSet>


* Copy the entire contents of BayeseloLog.txt to your clipboard, and paste it into the Bayeselo application. (Note: To paste into a console app on Windows, you can right-click on the titlebar, select Edit then Paste)
* Get BayeseloLog text file:
** Visit [https://www.warzone.com/LadderSeasons this page] to get the list of seasons
** Click the season you want the log for
** Check your URL, and you'll see it ends with ID= and a number.  For example, Season XXX is ID=4029
** Enter that number into this URL: http://data.warlight.net/Data/BayeseloLog4029.txt


BayeseloLog can be obtained separately for each ladder. Here are the links:
* Copy the entire contents of BayeseloLog.txt to your clipboard, and paste it into the Bayeselo application. (Note: To paste into a console app on windows, you can right-click on the titlebar, select Edit then Paste)
 
1v1 ladder: http://warlight.net/Data/BayeseloLog0.txt
 
2v2 ladder: http://warlight.net/Data/BayeseloLog1.txt


This will produce rankings like the following:
This will produce rankings like the following:


  Rank Name                      Elo    +    - games score oppo. draws
  Rank Name                      Elo    +    - games score oppo. draws
  1 TheImpaller                2087 196 150    20   85%  1792   0%
    1 Waya                      303  457 341    1 100%   179   0%
  2 Heyheuhei                  2027 100  88    58  79%  1776   0%
    2 Fizzer                    302  412  285    2  100%   115   0%
  3 zaeban                    1991 123 109   37  73%  1779   0%
    3 Soyrice                  218 297 240    2  100%   87   0%
  4 chas                      1990 267 229     6  67% 1884   0%
    4 FBGDragons                181 494 353     1  100%   52   0%
  5 bostonfred                1966 145 122    32   78% 1713   0%
    5 NoZone                    179 219 235    3   33%   220   0%
  6 Oliebol                    1947 126 114   33   70%  1768   0%
    6 FBGMoDogg                110 326 421    1   0%   218   0%
  7 Troll                      1945 176 158    14   64%  1842   0%
    7 Ruthless                  83 410 281    2  100%   -99   0%
  8 gilgamesz                  1910 270 233     6   67% 1796   0%
    8 GuyMannington              65 311 312     2   50%   45   0%
  9 TypeSomething              1880 175 152    18   72% 1690   0%
    9 deweylikedonuts            55 304 304    2   50%   59   0%
  10 Fizzer                    1875 138 129    23   61% 1788   0%
  10 Perrin3088                52 222 217    5   60%   -45   0%
  11 MathWolf                  1872 119 107    38   71%  1686   0%
  11 sue                        50  457 340    1 100%   -69   0%
   ...
   ...


Line 57: Line 54:
* Enter the command “reset” to clear the previous results. This ensures you’re starting from a clean slate.
* Enter the command “reset” to clear the previous results. This ensures you’re starting from a clean slate.
* Modify BayeseloLog.txt depending on what you want to try (see below).
* Modify BayeseloLog.txt depending on what you want to try (see below).
* Copy/paste the modified BayeseloLog.txt back into Bayeselo.exe to see the results. Compare to your previous run to see how they changed. In BayeseloLog.txt, you’ll find two large sections – first, a bunch of addplayer commands, then a bunch of addresult commands.
* Copy/paste the modified BayeseloLog.txt back into Bayeselo.exe to see the results. Compare to your previous run to see how they changed.  
 
== Modifying the log ==
 
In BayeseloLog.txt, you’ll find two large sections – first, a bunch of addplayer commands, then a bunch of addresult commands.


==Players==
===Players===


Each addplayer line corresponds to a player participating (or that has participated at one time) in the ladder. They are also numbered, starting at zero and going up.
Each addplayer line corresponds to a player participating (or that has participated at one time) in the ladder. They are also numbered, starting at zero and going up.
Line 71: Line 72:
  ...
  ...


==Results==
===Results===


After the players, there are a bunch of addresult commands. Each addresult corresponds to one finished ladder game. In these numbers, we tell Bayeselo what two players fought eachother, who got first pick, and who won. Let’s examine this in detail.
After the players, there are a bunch of addresult commands. Each addresult corresponds to one finished ladder game. In these numbers, we tell Bayeselo which two players fought each other, who got first pick, and who won. Let's examine this in detail.


  addresult 0 7 2
  addresult 0 7 2
Line 82: Line 83:
  ...
  ...


http://blog.warlight.net/images/addresult.png
https://d32kaghj56y4ei.cloudfront.net/static/img/addresult.png


By changing these, you can simulate new wins/losses or change existing games to see how they would affect the results.
By changing these, you can simulate new wins/losses or change existing games to see how they would affect the results.


=See Also=
==See Also==


* [[Ladders]]
* [[Ladders]]


[[Category:Ladders]]
[[Category:Ladders|Ranks and Ratings]]

Latest revision as of 02:27, 14 May 2023

Bayeselo, or Bayesian Elo Rating, is a modifier form of ELO used to calculate the ratings on the Seasonal Ladder.

See Bayesian Elo Rating for the full details. This has several advantages over other ELO rating systems:

  • Beating the same opponent multiple times gives you more rating than beating them once. In most ELO systems, only a win or loss is considered for each opponent.
  • Bayeselo behaves correctly when opponents' ratings are far apart
  • Ratings are calculated based on final ratings, not just what the rating was when the game took place.

The exact algorithm used by this tool is documented on their page, and is not repeated here. The source code is also available for the truly nerdy.

Run your own Ladder Simulations

You can run your own ladder simulations which help to understand how the ratings are calculated. This can be used to answer questions like:

  • How would the ratings be different if I had won versus X instead of lost?
  • How would the ratings change if I win or lose this in-progress game?
  • How would the ratings be different if first-pick advantage was higher or lower?

Here’s the process to re-produce the current rankings:

  • Download Bayeselo.exe from remi.coulom.free.fr.
  • Download BayeseloLog.txt from the links below. This file is automatically generated each time the ladder updates and contains all of the commands needed to re-produce the current ladder rankings.
  • Run Bayeselo.exe. You’ll be left at a prompt that says
ResultSet>
  • Copy the entire contents of BayeseloLog.txt to your clipboard, and paste it into the Bayeselo application. (Note: To paste into a console app on windows, you can right-click on the titlebar, select Edit then Paste)

This will produce rankings like the following:

Rank Name                      Elo    +    - games score oppo. draws
   1 Waya                      303  457  341     1  100%   179    0%
   2 Fizzer                    302  412  285     2  100%   115    0%
   3 Soyrice                   218  297  240     2  100%    87    0%
   4 FBGDragons                181  494  353     1  100%    52    0%
   5 NoZone                    179  219  235     3   33%   220    0%
   6 FBGMoDogg                 110  326  421     1    0%   218    0%
   7 Ruthless                   83  410  281     2  100%   -99    0%
   8 GuyMannington              65  311  312     2   50%    45    0%
   9 deweylikedonuts            55  304  304     2   50%    59    0%
  10 Perrin3088                 52  222  217     5   60%   -45    0%
  11 sue                        50  457  340     1  100%   -69    0%
 ...

Making changes

Now that you can re-produce the existing ladder rankings, you can try making changes and seeing how they affect the results. Here’s the process:

  • First, ensure you are on the “ResultSet>” prompt. If you’re in “ResultSet-EloRating>”, enter a command of just “x” to go back up one.
  • Enter the command “reset” to clear the previous results. This ensures you’re starting from a clean slate.
  • Modify BayeseloLog.txt depending on what you want to try (see below).
  • Copy/paste the modified BayeseloLog.txt back into Bayeselo.exe to see the results. Compare to your previous run to see how they changed.

Modifying the log

In BayeseloLog.txt, you’ll find two large sections – first, a bunch of addplayer commands, then a bunch of addresult commands.

Players

Each addplayer line corresponds to a player participating (or that has participated at one time) in the ladder. They are also numbered, starting at zero and going up.

addplayer Fizzer ;0
addplayer Knoebber ;1
addplayer FBGDragons ;2
addplayer CuChulainn ;3
...
addplayer Perrin3088 ;7
...

Results

After the players, there are a bunch of addresult commands. Each addresult corresponds to one finished ladder game. In these numbers, we tell Bayeselo which two players fought each other, who got first pick, and who won. Let's examine this in detail.

addresult 0 7 2
addresult 1 4 2
addresult 2 7 2
addresult 3 7 0
addresult 4 18 0
...

addresult.png

By changing these, you can simulate new wins/losses or change existing games to see how they would affect the results.

See Also