Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
elo-rating
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
huangzhihao
elo-rating
Commits
3cb30215
Commit
3cb30215
authored
Aug 12, 2020
by
ziho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
simple elo rating system
parent
95fa4b2c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
113 additions
and
112 deletions
+113
-112
elo.ipynb
+109
-108
elorating.py
+4
-4
No files found.
elo.ipynb
View file @
3cb30215
...
...
@@ -173,7 +173,7 @@
},
{
"cell_type": "code",
"execution_count":
4
,
"execution_count":
3
,
"metadata": {},
"outputs": [],
"source": [
...
...
@@ -191,7 +191,7 @@
},
{
"cell_type": "code",
"execution_count":
5
,
"execution_count":
4
,
"metadata": {},
"outputs": [
{
...
...
@@ -261,7 +261,7 @@
},
{
"cell_type": "code",
"execution_count":
11
,
"execution_count":
6
,
"metadata": {},
"outputs": [
{
...
...
@@ -269,56 +269,56 @@
"output_type": "stream",
"text": [
"model rating games wins losses \n",
"4
9000 3045.67 5002 3388 1614
\n",
"4
8000 2980.58 5746 3496 2250
\n",
"47000 2
868.33 6564 3516 3048
\n",
"46000 2
818.49 6540 3328 3212
\n",
"45000 2
742.48 6228 3316 2912
\n",
"44000 2
673.12 5896 3148 2748
\n",
"43000 2
605.95 5942 3102 2840
\n",
"42000 2
574.61 6292 3272 3020
\n",
"4
1000 2470.60 6142 3206 2936
\n",
"4
0000 2448.55 5884 3034 2850
\n",
"39000 2
388.98 5954 3018 2936
\n",
"3
7000 2295.24 5952 3040 2912
\n",
"3
8000 2282.79 6082 3062 3020
\n",
"3
6000 2204.54 5938 3012 2926
\n",
"35000
2186.72 6008 3030 2978
\n",
"3
4000 2088.25 5944 3000 2944
\n",
"3
3000 1999.89 6004 3062 2942
\n",
"32000 1
952.80 5854 2958 2896
\n",
"31000 1
881.68 6102 3098 3004
\n",
"30000 1
810.49 5962 2992 2970
\n",
"29000 1
753.48 5976 3016 2960
\n",
"27000 1
712.87 5920 2978 2942
\n",
"28000 1
657.39 6024 3024 3000
\n",
"2
6000 1557.71 6070 3016 3054
\n",
"24000 15
17.55 6062 3066 2996
\n",
"2
5000 1511.32 5948 2984 2964
\n",
"23000 14
32.79 6176 3098 3078
\n",
"22000 1
317.84 6166 3042 3124
\n",
"2
1000 1258.16 6064 3010 3054
\n",
"2
0000 1254.75 6032 2996 3036
\n",
"19000 1
210.90 6138 3018 3120
\n",
"18000 1
052.93 5950 2926 3024
\n",
"17000 1
012.31 6060 2988 3072
\n",
"1
5000 934.62 5898 2870 3028
\n",
"1
6000 923.44 5918 2902 3016
\n",
"1
4000 922.92 5854 2880 2974
\n",
"1
3000 779.87 5804 2852 2952
\n",
"1
2000 715.08 6146 3018 3128
\n",
"11000
687.11 5880 2876 3004
\n",
"10000
579.16 6010 2912 3098
\n",
"
8000 504.51 6006 2914 3092
\n",
"
9000 487.08 6156 2992 3164
\n",
"
7000 387.35 6008 2904 3104
\n",
"
5000 359.80 5924 2856 3068
\n",
"
6000 341.27 5982 2860 3122
\n",
"4000
263.29 6234 3018 3216
\n",
"
3000 225.60 6516 3216 3300
\n",
"
2000 163.61 6318 2904 3414
\n",
"1000
76.26 5620 2188 3432
\n",
"0
34.34 5044 1568 3476
\n"
"4
8000 2420.39 698 506 192
\n",
"4
9000 2418.49 670 502 168
\n",
"47000 2
363.03 780 482 298
\n",
"46000 2
264.49 850 488 362
\n",
"45000 2
215.11 762 444 318
\n",
"44000 2
185.74 798 462 336
\n",
"43000 2
170.56 818 470 348
\n",
"42000 2
091.00 680 410 270
\n",
"4
0000 2032.70 778 440 338
\n",
"4
1000 2029.70 782 448 334
\n",
"39000 2
002.24 768 426 342
\n",
"3
8000 1926.60 818 450 368
\n",
"3
6000 1923.38 782 436 346
\n",
"3
7000 1916.76 808 438 370
\n",
"35000
1827.42 770 424 346
\n",
"3
3000 1810.02 814 442 372
\n",
"3
4000 1767.18 814 424 390
\n",
"32000 1
737.48 798 428 370
\n",
"31000 1
731.06 750 396 354
\n",
"30000 1
730.33 810 428 382
\n",
"29000 1
621.78 800 408 392
\n",
"27000 1
616.15 740 378 362
\n",
"28000 1
570.02 836 424 412
\n",
"2
5000 1537.03 810 410 400
\n",
"24000 15
33.98 832 426 406
\n",
"2
6000 1527.41 794 398 396
\n",
"23000 14
60.27 812 402 410
\n",
"22000 1
417.07 864 422 442
\n",
"2
0000 1343.24 862 404 458
\n",
"2
1000 1333.34 830 392 438
\n",
"19000 1
319.81 850 412 438
\n",
"18000 1
286.31 816 380 436
\n",
"17000 1
265.46 832 404 428
\n",
"1
6000 1263.20 800 376 424
\n",
"1
4000 1195.94 836 382 454
\n",
"1
5000 1153.36 816 380 436
\n",
"1
2000 1114.91 754 338 416
\n",
"1
3000 1083.15 782 350 432
\n",
"11000
1067.94 830 368 462
\n",
"10000
972.21 782 358 424
\n",
"
9000 960.96 880 388 492
\n",
"
7000 908.83 812 348 464
\n",
"
8000 881.56 900 402 498
\n",
"
6000 762.80 832 338 494
\n",
"
5000 735.52 812 338 474
\n",
"4000
688.69 816 326 490
\n",
"
2000 638.93 788 304 484
\n",
"
3000 566.54 826 328 498
\n",
"1000
460.25 820 292 528
\n",
"0
435.00 600 136 464
\n"
]
}
],
...
...
@@ -341,7 +341,7 @@
},
{
"cell_type": "code",
"execution_count":
12
,
"execution_count":
7
,
"metadata": {},
"outputs": [
{
...
...
@@ -350,56 +350,56 @@
"text": [
"add model to system:['0', '1000', '2000', '3000', '4000', '5000', '6000', '7000', '8000', '9000', '10000', '11000', '12000', '13000', '14000', '15000', '16000', '17000', '18000', '19000', '20000', '21000', '22000', '23000', '24000', '25000', '26000', '27000', '28000', '29000', '30000', '31000', '32000', '33000', '34000', '35000', '36000', '37000', '38000', '39000', '40000', '41000', '42000', '43000', '44000', '45000', '46000', '47000', '48000', '49000']\n",
"model rating games wins losses \n",
"4
9000 3045.67 5002 3388 1614
\n",
"4
8000 2980.58 5746 3496 2250
\n",
"47000 2
868.33 6564 3516 3048
\n",
"46000 2
818.49 6540 3328 3212
\n",
"45000 2
742.48 6228 3316 2912
\n",
"44000 2
673.12 5896 3148 2748
\n",
"43000 2
605.95 5942 3102 2840
\n",
"42000 2
574.61 6292 3272 3020
\n",
"4
1000 2470.60 6142 3206 2936
\n",
"4
0000 2448.55 5884 3034 2850
\n",
"39000 2
388.98 5954 3018 2936
\n",
"3
7000 2295.24 5952 3040 2912
\n",
"3
8000 2282.79 6082 3062 3020
\n",
"3
6000 2204.54 5938 3012 2926
\n",
"35000
2186.72 6008 3030 2978
\n",
"3
4000 2088.25 5944 3000 2944
\n",
"3
3000 1999.89 6004 3062 2942
\n",
"32000 1
952.80 5854 2958 2896
\n",
"31000 1
881.68 6102 3098 3004
\n",
"30000 1
810.49 5962 2992 2970
\n",
"29000 1
753.48 5976 3016 2960
\n",
"27000 1
712.87 5920 2978 2942
\n",
"28000 1
657.39 6024 3024 3000
\n",
"2
6000 1557.71 6070 3016 3054
\n",
"24000 15
17.55 6062 3066 2996
\n",
"2
5000 1511.32 5948 2984 2964
\n",
"23000 14
32.79 6176 3098 3078
\n",
"22000 1
317.84 6166 3042 3124
\n",
"2
1000 1258.16 6064 3010 3054
\n",
"2
0000 1254.75 6032 2996 3036
\n",
"19000 1
210.90 6138 3018 3120
\n",
"18000 1
052.93 5950 2926 3024
\n",
"17000 1
012.31 6060 2988 3072
\n",
"1
5000 934.62 5898 2870 3028
\n",
"1
6000 923.44 5918 2902 3016
\n",
"1
4000 922.92 5854 2880 2974
\n",
"1
3000 779.87 5804 2852 2952
\n",
"1
2000 715.08 6146 3018 3128
\n",
"11000
687.11 5880 2876 3004
\n",
"10000
579.16 6010 2912 3098
\n",
"
8000 504.51 6006 2914 3092
\n",
"
9000 487.08 6156 2992 3164
\n",
"
7000 387.35 6008 2904 3104
\n",
"
5000 359.80 5924 2856 3068
\n",
"
6000 341.27 5982 2860 3122
\n",
"4000
263.29 6234 3018 3216
\n",
"
3000 225.60 6516 3216 3300
\n",
"
2000 163.61 6318 2904 3414
\n",
"1000
76.26 5620 2188 3432
\n",
"0
34.34 5044 1568 3476
\n"
"4
8000 2420.39 698 506 192
\n",
"4
9000 2418.49 670 502 168
\n",
"47000 2
363.03 780 482 298
\n",
"46000 2
264.49 850 488 362
\n",
"45000 2
215.11 762 444 318
\n",
"44000 2
185.74 798 462 336
\n",
"43000 2
170.56 818 470 348
\n",
"42000 2
091.00 680 410 270
\n",
"4
0000 2032.70 778 440 338
\n",
"4
1000 2029.70 782 448 334
\n",
"39000 2
002.24 768 426 342
\n",
"3
8000 1926.60 818 450 368
\n",
"3
6000 1923.38 782 436 346
\n",
"3
7000 1916.76 808 438 370
\n",
"35000
1827.42 770 424 346
\n",
"3
3000 1810.02 814 442 372
\n",
"3
4000 1767.18 814 424 390
\n",
"32000 1
737.48 798 428 370
\n",
"31000 1
731.06 750 396 354
\n",
"30000 1
730.33 810 428 382
\n",
"29000 1
621.78 800 408 392
\n",
"27000 1
616.15 740 378 362
\n",
"28000 1
570.02 836 424 412
\n",
"2
5000 1537.03 810 410 400
\n",
"24000 15
33.98 832 426 406
\n",
"2
6000 1527.41 794 398 396
\n",
"23000 14
60.27 812 402 410
\n",
"22000 1
417.07 864 422 442
\n",
"2
0000 1343.24 862 404 458
\n",
"2
1000 1333.34 830 392 438
\n",
"19000 1
319.81 850 412 438
\n",
"18000 1
286.31 816 380 436
\n",
"17000 1
265.46 832 404 428
\n",
"1
6000 1263.20 800 376 424
\n",
"1
4000 1195.94 836 382 454
\n",
"1
5000 1153.36 816 380 436
\n",
"1
2000 1114.91 754 338 416
\n",
"1
3000 1083.15 782 350 432
\n",
"11000
1067.94 830 368 462
\n",
"10000
972.21 782 358 424
\n",
"
9000 960.96 880 388 492
\n",
"
7000 908.83 812 348 464
\n",
"
8000 881.56 900 402 498
\n",
"
6000 762.80 832 338 494
\n",
"
5000 735.52 812 338 474
\n",
"4000
688.69 816 326 490
\n",
"
2000 638.93 788 304 484
\n",
"
3000 566.54 826 328 498
\n",
"1000
460.25 820 292 528
\n",
"0
435.00 600 136 464
\n"
]
}
],
...
...
@@ -415,22 +415,22 @@
},
{
"cell_type": "code",
"execution_count":
14
,
"execution_count":
8
,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x2
3c9ba9920
8>]"
"[<matplotlib.lines.Line2D at 0x2
61ff1ebeb
8>]"
]
},
"execution_count":
14
,
"execution_count":
8
,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
=\n",
"image/png": "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
=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
...
...
@@ -442,6 +442,7 @@
}
],
"source": [
"%matplotlib inline\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"plt.plot([int(m) for m in models],[int(r) for r in elo.getRating()])"
...
...
elorating.py
View file @
3cb30215
...
...
@@ -158,10 +158,10 @@ class EloRatingSystem:
k
=
choose_k
(
R2
)
player2
.
rating
=
R2
+
k
*
(
1
-
winrate
-
E2
)
#
if player1.rating<0:
#
player1.rating=0
#
elif player2.rating<0:
#
player2.rating=0
if
player1
.
rating
<
0
:
player1
.
rating
=
0
elif
player2
.
rating
<
0
:
player2
.
rating
=
0
if
online
:
#print('{}\'s rating:{}->{} ; {}\'s rating:{}->{}'.format(p1,R1,player1.rating,p2,R2,player2.rating))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment