-
-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rank to MMR #396
Comments
is this EU only or does it hold true for russia, eu, sea, us east, us west? awesome job with the formulas! |
СIS + EU |
I don't think it makes sense to do this for the US/SEA, because there are more streams from either the CIS or Europe, and I'm not sure if it's possible to track the region of the match. The rating systems are different everywhere, because the number of players varies from region to region. |
How to do this for any server.Step 1. We have data from dotabod: what mmr = what rank. So we can do the following. We take people from the database, look at which server they played the last match on, and write them into the database. Now we know and can calculate the average rating for each region. Step 2. From each region CIS/Europe/Chine/US West|East, we select a separate region and calculate the rank approximation to mmr, as it was in my code, the more data the more accurate the result will be. Step 3. We get formulas that now calculate the average player rating at any given time. Ez |
thats a good idea @dankYoff looks like opendota returns the region in api https://docs.opendota.com/#tag/matches/operation/get_matches_by_match_id |
I wrote a code that can convert rank to mmr. To do this, we substitute the rank in the 1st or 2nd formula (depending on the rank). And we can see how the rank and MMR correlate. For high ranks, the error is 100-300 MMR (> rank = <accuracy: it depends on the top, as well as a limited amount of information about the ranks, I had 15 of them).
But in general, this can be easily corrected and the formulas can be made even more accurate, although they are already quite accurate in calculating MMR.
MAIN
Accuracy: 95-98% | If Rank <=460
Formula: MMR = -448.45658 * ln(9264.01245 * "RANK") + 17242.22337
Accuracy: 98-99% | If Rank>460
Formula: MMR = -1248.02749 * ln(1861.20536 * "RANK") + 27052.29973
Example:
Rank 131 | ~ 11000-11150 MMR
MMR = -448.45658 * ln(9264.01245 * 131) + 17242.22337 = 10959.75 MMR
Accuracy: 98.3%
Rank 1674 | ~ 8245 MMR
MMR = -1248.02749 * ln(1861.20536 * 1674) + 27052.29973 = 8391 MMR
Accuracy: 98.2%
Image for example:
The text was updated successfully, but these errors were encountered: