用于比赛评分的python模块(类似于elo评分)
elote的Python项目详细描述
埃洛特
==
[![覆盖状态](https://coveralls.io/repos/wdm0006/elote/badge.svg?branch=master&service=github)(https://coveralls.io/github/wdm0006/elote?分支=主)![特拉维斯状态](https://travis-ci.org/wdm0006/elote.svg?branch=master)
这方面的经典例子是基于不同棋手之间重复的对头比赛对棋手进行评分。在elote中实现的第一个评级系统,即elo评级
系统,就是为这个目的而设计的[3]。另一个众所周知的用例是大学足球排名。
修正后的评分系统是:
*elo[3]
*glicko-1[1]
*ecf[4]
*dwz[5]
usage
==
examples目录中有很多示例,如果您想深入一点,但是
elote使用起来非常简单。我们关心的两个对象是竞争对手和竞技场。竞争对手是你评价的对象,竞技场是安排他们之间比赛的机制。首先,竞争对手:
od)*100,)
print('打得好的概率:%5.2f%'%(好的。预期的_分数(好的)*100,))
这将创建两个竞争对手,初始评分不同。现在我们可以看到他们之间的匹配可能会怎样:
t(较好)
或
较好。输给(良好)
然后,我们可以重新运行预测,并查看更新的概率:
较好击败良好的概率:61.25%
良好击败较好的概率:38.75%
使用默认设置不会有太大变化。
arenas
----
arenas是调度大量比赛或匹配的有用抽象。lambdarena对象
接受带有两个参数的lambda函数,如果第一个参数获胜,则返回布尔值(对于ties,则不返回布尔值)。在不手动设置任何竞争对手的情况下,只要参数是散列的,arena对象将创建
所有竞争对手,运行比赛并对其进行排名。
下面是一个玩具示例,它使用一个lambda函数来比较两个整数。有了这个,我们实现了
性能最差、最复杂的排序算法,但它仍然有效:
from elote import lambdarena
import json
import random
(a,b):
返回a>;b
matchups=[(random.randint(1,10),random.randint(1,10))用于范围(1000)]
arena=lambdarena(func)
arena.matchups(matchups)
print(json.dumps(arena.leaderboard(),indent=4))
好的,比如:
[
{
"评级":560.0,
"竞争对手":1
},
{
"评级":803.3256886926524,
"竞争对手":2
},
{
"评级":994.1660057704563,
"竞争对手":3
},
{
"评级":1096.0912814220258,
"竞争对手":4
},
{
"评级":1221.000354671287,
"竞争对手":5
},
{
"评级":1351.4243548137367,
"竞争对手":6
},
{
"评级":1401.770230395329,
"竞争对手":7
},
"评级":1558.9349074885894,
""竞争者":8
},
{
"评级":1607.6971796462033,
"竞争者":9
},
{
"评级":1708.3786662956998,
"竞争者":10
}
]
使用生成的数据来显示elote,
的不同特性的基本示例,以及一些使用真实数据的用例,迄今为止这些都来自masseyratings.com,但已转换为json[2]。
installation
===
很快将在pypi上实现,但现在您可以从git派生repo或安装。
仅支持python 3。4+
贡献
==
打开
问题或PR,我们可以协调工作。
references
==
[1]-http://www.glicko.net/glicko/glicko.pdf
[2]-masseyratings.com
[3]-elo,arpad(1978)。棋手的等级,过去和现在。阿科。ISBN 0-668-04721-6.
[4]-http://www.ecfgrading.org.uk/new/help.php elo
[5]-https://en.wikipedia.org/wiki/deutsche\u wertungszahl
==
[![覆盖状态](https://coveralls.io/repos/wdm0006/elote/badge.svg?branch=master&service=github)(https://coveralls.io/github/wdm0006/elote?分支=主)![特拉维斯状态](https://travis-ci.org/wdm0006/elote.svg?branch=master)
这方面的经典例子是基于不同棋手之间重复的对头比赛对棋手进行评分。在elote中实现的第一个评级系统,即elo评级
系统,就是为这个目的而设计的[3]。另一个众所周知的用例是大学足球排名。
修正后的评分系统是:
*elo[3]
*glicko-1[1]
*ecf[4]
*dwz[5]
usage
==
examples目录中有很多示例,如果您想深入一点,但是
elote使用起来非常简单。我们关心的两个对象是竞争对手和竞技场。竞争对手是你评价的对象,竞技场是安排他们之间比赛的机制。首先,竞争对手:
od)*100,)
print('打得好的概率:%5.2f%'%(好的。预期的_分数(好的)*100,))
这将创建两个竞争对手,初始评分不同。现在我们可以看到他们之间的匹配可能会怎样:
t(较好)
或
较好。输给(良好)
然后,我们可以重新运行预测,并查看更新的概率:
较好击败良好的概率:61.25%
良好击败较好的概率:38.75%
使用默认设置不会有太大变化。
arenas
----
arenas是调度大量比赛或匹配的有用抽象。lambdarena对象
接受带有两个参数的lambda函数,如果第一个参数获胜,则返回布尔值(对于ties,则不返回布尔值)。在不手动设置任何竞争对手的情况下,只要参数是散列的,arena对象将创建
所有竞争对手,运行比赛并对其进行排名。
下面是一个玩具示例,它使用一个lambda函数来比较两个整数。有了这个,我们实现了
性能最差、最复杂的排序算法,但它仍然有效:
from elote import lambdarena
import json
import random
(a,b):
返回a>;b
matchups=[(random.randint(1,10),random.randint(1,10))用于范围(1000)]
arena=lambdarena(func)
arena.matchups(matchups)
print(json.dumps(arena.leaderboard(),indent=4))
好的,比如:
[
{
"评级":560.0,
"竞争对手":1
},
{
"评级":803.3256886926524,
"竞争对手":2
},
{
"评级":994.1660057704563,
"竞争对手":3
},
{
"评级":1096.0912814220258,
"竞争对手":4
},
{
"评级":1221.000354671287,
"竞争对手":5
},
{
"评级":1351.4243548137367,
"竞争对手":6
},
{
"评级":1401.770230395329,
"竞争对手":7
},
"评级":1558.9349074885894,
""竞争者":8
},
{
"评级":1607.6971796462033,
"竞争者":9
},
{
"评级":1708.3786662956998,
"竞争者":10
}
]
使用生成的数据来显示elote,
的不同特性的基本示例,以及一些使用真实数据的用例,迄今为止这些都来自masseyratings.com,但已转换为json[2]。
installation
===
很快将在pypi上实现,但现在您可以从git派生repo或安装。
仅支持python 3。4+
贡献
==
打开
问题或PR,我们可以协调工作。
references
==
[1]-http://www.glicko.net/glicko/glicko.pdf
[2]-masseyratings.com
[3]-elo,arpad(1978)。棋手的等级,过去和现在。阿科。ISBN 0-668-04721-6.
[4]-http://www.ecfgrading.org.uk/new/help.php elo
[5]-https://en.wikipedia.org/wiki/deutsche\u wertungszahl