Commit 3cb30215 by ziho

simple elo rating system

parent 95fa4b2c
...@@ -173,7 +173,7 @@ ...@@ -173,7 +173,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 4, "execution_count": 3,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
...@@ -191,7 +191,7 @@ ...@@ -191,7 +191,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 5, "execution_count": 4,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
...@@ -261,7 +261,7 @@ ...@@ -261,7 +261,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 11, "execution_count": 6,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
...@@ -269,56 +269,56 @@ ...@@ -269,56 +269,56 @@
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"model rating games wins losses \n", "model rating games wins losses \n",
"49000 3045.67 5002 3388 1614 \n", "48000 2420.39 698 506 192 \n",
"48000 2980.58 5746 3496 2250 \n", "49000 2418.49 670 502 168 \n",
"47000 2868.33 6564 3516 3048 \n", "47000 2363.03 780 482 298 \n",
"46000 2818.49 6540 3328 3212 \n", "46000 2264.49 850 488 362 \n",
"45000 2742.48 6228 3316 2912 \n", "45000 2215.11 762 444 318 \n",
"44000 2673.12 5896 3148 2748 \n", "44000 2185.74 798 462 336 \n",
"43000 2605.95 5942 3102 2840 \n", "43000 2170.56 818 470 348 \n",
"42000 2574.61 6292 3272 3020 \n", "42000 2091.00 680 410 270 \n",
"41000 2470.60 6142 3206 2936 \n", "40000 2032.70 778 440 338 \n",
"40000 2448.55 5884 3034 2850 \n", "41000 2029.70 782 448 334 \n",
"39000 2388.98 5954 3018 2936 \n", "39000 2002.24 768 426 342 \n",
"37000 2295.24 5952 3040 2912 \n", "38000 1926.60 818 450 368 \n",
"38000 2282.79 6082 3062 3020 \n", "36000 1923.38 782 436 346 \n",
"36000 2204.54 5938 3012 2926 \n", "37000 1916.76 808 438 370 \n",
"35000 2186.72 6008 3030 2978 \n", "35000 1827.42 770 424 346 \n",
"34000 2088.25 5944 3000 2944 \n", "33000 1810.02 814 442 372 \n",
"33000 1999.89 6004 3062 2942 \n", "34000 1767.18 814 424 390 \n",
"32000 1952.80 5854 2958 2896 \n", "32000 1737.48 798 428 370 \n",
"31000 1881.68 6102 3098 3004 \n", "31000 1731.06 750 396 354 \n",
"30000 1810.49 5962 2992 2970 \n", "30000 1730.33 810 428 382 \n",
"29000 1753.48 5976 3016 2960 \n", "29000 1621.78 800 408 392 \n",
"27000 1712.87 5920 2978 2942 \n", "27000 1616.15 740 378 362 \n",
"28000 1657.39 6024 3024 3000 \n", "28000 1570.02 836 424 412 \n",
"26000 1557.71 6070 3016 3054 \n", "25000 1537.03 810 410 400 \n",
"24000 1517.55 6062 3066 2996 \n", "24000 1533.98 832 426 406 \n",
"25000 1511.32 5948 2984 2964 \n", "26000 1527.41 794 398 396 \n",
"23000 1432.79 6176 3098 3078 \n", "23000 1460.27 812 402 410 \n",
"22000 1317.84 6166 3042 3124 \n", "22000 1417.07 864 422 442 \n",
"21000 1258.16 6064 3010 3054 \n", "20000 1343.24 862 404 458 \n",
"20000 1254.75 6032 2996 3036 \n", "21000 1333.34 830 392 438 \n",
"19000 1210.90 6138 3018 3120 \n", "19000 1319.81 850 412 438 \n",
"18000 1052.93 5950 2926 3024 \n", "18000 1286.31 816 380 436 \n",
"17000 1012.31 6060 2988 3072 \n", "17000 1265.46 832 404 428 \n",
"15000 934.62 5898 2870 3028 \n", "16000 1263.20 800 376 424 \n",
"16000 923.44 5918 2902 3016 \n", "14000 1195.94 836 382 454 \n",
"14000 922.92 5854 2880 2974 \n", "15000 1153.36 816 380 436 \n",
"13000 779.87 5804 2852 2952 \n", "12000 1114.91 754 338 416 \n",
"12000 715.08 6146 3018 3128 \n", "13000 1083.15 782 350 432 \n",
"11000 687.11 5880 2876 3004 \n", "11000 1067.94 830 368 462 \n",
"10000 579.16 6010 2912 3098 \n", "10000 972.21 782 358 424 \n",
"8000 504.51 6006 2914 3092 \n", "9000 960.96 880 388 492 \n",
"9000 487.08 6156 2992 3164 \n", "7000 908.83 812 348 464 \n",
"7000 387.35 6008 2904 3104 \n", "8000 881.56 900 402 498 \n",
"5000 359.80 5924 2856 3068 \n", "6000 762.80 832 338 494 \n",
"6000 341.27 5982 2860 3122 \n", "5000 735.52 812 338 474 \n",
"4000 263.29 6234 3018 3216 \n", "4000 688.69 816 326 490 \n",
"3000 225.60 6516 3216 3300 \n", "2000 638.93 788 304 484 \n",
"2000 163.61 6318 2904 3414 \n", "3000 566.54 826 328 498 \n",
"1000 76.26 5620 2188 3432 \n", "1000 460.25 820 292 528 \n",
"0 34.34 5044 1568 3476 \n" "0 435.00 600 136 464 \n"
] ]
} }
], ],
...@@ -341,7 +341,7 @@ ...@@ -341,7 +341,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 12, "execution_count": 7,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
...@@ -350,56 +350,56 @@ ...@@ -350,56 +350,56 @@
"text": [ "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", "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", "model rating games wins losses \n",
"49000 3045.67 5002 3388 1614 \n", "48000 2420.39 698 506 192 \n",
"48000 2980.58 5746 3496 2250 \n", "49000 2418.49 670 502 168 \n",
"47000 2868.33 6564 3516 3048 \n", "47000 2363.03 780 482 298 \n",
"46000 2818.49 6540 3328 3212 \n", "46000 2264.49 850 488 362 \n",
"45000 2742.48 6228 3316 2912 \n", "45000 2215.11 762 444 318 \n",
"44000 2673.12 5896 3148 2748 \n", "44000 2185.74 798 462 336 \n",
"43000 2605.95 5942 3102 2840 \n", "43000 2170.56 818 470 348 \n",
"42000 2574.61 6292 3272 3020 \n", "42000 2091.00 680 410 270 \n",
"41000 2470.60 6142 3206 2936 \n", "40000 2032.70 778 440 338 \n",
"40000 2448.55 5884 3034 2850 \n", "41000 2029.70 782 448 334 \n",
"39000 2388.98 5954 3018 2936 \n", "39000 2002.24 768 426 342 \n",
"37000 2295.24 5952 3040 2912 \n", "38000 1926.60 818 450 368 \n",
"38000 2282.79 6082 3062 3020 \n", "36000 1923.38 782 436 346 \n",
"36000 2204.54 5938 3012 2926 \n", "37000 1916.76 808 438 370 \n",
"35000 2186.72 6008 3030 2978 \n", "35000 1827.42 770 424 346 \n",
"34000 2088.25 5944 3000 2944 \n", "33000 1810.02 814 442 372 \n",
"33000 1999.89 6004 3062 2942 \n", "34000 1767.18 814 424 390 \n",
"32000 1952.80 5854 2958 2896 \n", "32000 1737.48 798 428 370 \n",
"31000 1881.68 6102 3098 3004 \n", "31000 1731.06 750 396 354 \n",
"30000 1810.49 5962 2992 2970 \n", "30000 1730.33 810 428 382 \n",
"29000 1753.48 5976 3016 2960 \n", "29000 1621.78 800 408 392 \n",
"27000 1712.87 5920 2978 2942 \n", "27000 1616.15 740 378 362 \n",
"28000 1657.39 6024 3024 3000 \n", "28000 1570.02 836 424 412 \n",
"26000 1557.71 6070 3016 3054 \n", "25000 1537.03 810 410 400 \n",
"24000 1517.55 6062 3066 2996 \n", "24000 1533.98 832 426 406 \n",
"25000 1511.32 5948 2984 2964 \n", "26000 1527.41 794 398 396 \n",
"23000 1432.79 6176 3098 3078 \n", "23000 1460.27 812 402 410 \n",
"22000 1317.84 6166 3042 3124 \n", "22000 1417.07 864 422 442 \n",
"21000 1258.16 6064 3010 3054 \n", "20000 1343.24 862 404 458 \n",
"20000 1254.75 6032 2996 3036 \n", "21000 1333.34 830 392 438 \n",
"19000 1210.90 6138 3018 3120 \n", "19000 1319.81 850 412 438 \n",
"18000 1052.93 5950 2926 3024 \n", "18000 1286.31 816 380 436 \n",
"17000 1012.31 6060 2988 3072 \n", "17000 1265.46 832 404 428 \n",
"15000 934.62 5898 2870 3028 \n", "16000 1263.20 800 376 424 \n",
"16000 923.44 5918 2902 3016 \n", "14000 1195.94 836 382 454 \n",
"14000 922.92 5854 2880 2974 \n", "15000 1153.36 816 380 436 \n",
"13000 779.87 5804 2852 2952 \n", "12000 1114.91 754 338 416 \n",
"12000 715.08 6146 3018 3128 \n", "13000 1083.15 782 350 432 \n",
"11000 687.11 5880 2876 3004 \n", "11000 1067.94 830 368 462 \n",
"10000 579.16 6010 2912 3098 \n", "10000 972.21 782 358 424 \n",
"8000 504.51 6006 2914 3092 \n", "9000 960.96 880 388 492 \n",
"9000 487.08 6156 2992 3164 \n", "7000 908.83 812 348 464 \n",
"7000 387.35 6008 2904 3104 \n", "8000 881.56 900 402 498 \n",
"5000 359.80 5924 2856 3068 \n", "6000 762.80 832 338 494 \n",
"6000 341.27 5982 2860 3122 \n", "5000 735.52 812 338 474 \n",
"4000 263.29 6234 3018 3216 \n", "4000 688.69 816 326 490 \n",
"3000 225.60 6516 3216 3300 \n", "2000 638.93 788 304 484 \n",
"2000 163.61 6318 2904 3414 \n", "3000 566.54 826 328 498 \n",
"1000 76.26 5620 2188 3432 \n", "1000 460.25 820 292 528 \n",
"0 34.34 5044 1568 3476 \n" "0 435.00 600 136 464 \n"
] ]
} }
], ],
...@@ -415,22 +415,22 @@ ...@@ -415,22 +415,22 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 14, "execution_count": 8,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"data": { "data": {
"text/plain": [ "text/plain": [
"[<matplotlib.lines.Line2D at 0x23c9ba99208>]" "[<matplotlib.lines.Line2D at 0x261ff1ebeb8>]"
] ]
}, },
"execution_count": 14, "execution_count": 8,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
}, },
{ {
"data": { "data": {
"image/png": "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\n", "image/png": "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\n",
"text/plain": [ "text/plain": [
"<Figure size 432x288 with 1 Axes>" "<Figure size 432x288 with 1 Axes>"
] ]
...@@ -442,6 +442,7 @@ ...@@ -442,6 +442,7 @@
} }
], ],
"source": [ "source": [
"%matplotlib inline\n",
"import matplotlib\n", "import matplotlib\n",
"import matplotlib.pyplot as plt\n", "import matplotlib.pyplot as plt\n",
"plt.plot([int(m) for m in models],[int(r) for r in elo.getRating()])" "plt.plot([int(m) for m in models],[int(r) for r in elo.getRating()])"
......
...@@ -158,10 +158,10 @@ class EloRatingSystem: ...@@ -158,10 +158,10 @@ class EloRatingSystem:
k=choose_k(R2) k=choose_k(R2)
player2.rating=R2+k*(1-winrate-E2) player2.rating=R2+k*(1-winrate-E2)
# if player1.rating<0: if player1.rating<0:
# player1.rating=0 player1.rating=0
# elif player2.rating<0: elif player2.rating<0:
# player2.rating=0 player2.rating=0
if online: if online:
#print('{}\'s rating:{}->{} ; {}\'s rating:{}->{}'.format(p1,R1,player1.rating,p2,R2,player2.rating)) #print('{}\'s rating:{}->{} ; {}\'s rating:{}->{}'.format(p1,R1,player1.rating,p2,R2,player2.rating))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment