首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Glicko-2评级系统:漏洞还是漏洞?

Glicko-2评级系统:漏洞还是漏洞?
EN

Stack Overflow用户
提问于 2012-08-21 12:08:51
回答 1查看 4.3K关注 0票数 3

Glicko-2是国际象棋中使用的一种评分系统,但也可以在许多其他情况下使用.Glicko-2是对Glicko-1的改进,它解决了较旧的ELO评级的问题.

与版本1相比,Glicko-2的特殊之处在于它包含了一个更高的评级偏差(RD),一个人不活跃的时间越长。它用一个系统常数的概念来做这件事,这个常数与时间/评级周期有关。

作者编写的一个示例可以在这里找到:http://www.glicko.net/glicko/glicko2.pdf

在本文件中,他解释说:

Glicko-2系统在一个级别期间的游戏数量是中等到大的时候运行最好,也就是说,在一个评估期间,每个玩家平均至少有10-15场比赛。评等期间的时间长短由管理员自行决定。

假设一组活跃的棋手在一个月的时间内平均下10-15局棋,管理员就会在每个月底更新评分。

我需要一个PHP实现Glicko-2评级系统,并遇到了以下情况:

Glicko-2 JavaScript实现

  • JavaScript有一个小错误,其中不允许它与技术编写示例相匹配,作者发现它足够接近,并且不需要进行调试。

Glicko-2PHP实现

  • PHP实现受到了许多but的困扰,但这并不明显,除非您做了一个以上的评等期(技术编写从来没有显示预期的值)。

Excel中的Glicko-2计算器

  • 最后,Excel计算器似乎是没有错误的,也是最专业的,是由国际象棋社区的人完成的。一旦JavaScript错误得到解决,JavaScript和就会非常紧密地匹配(尽管并不完美,但可能存在舍入错误)。

我已经修复了bug(并向作者提交了问题/补丁),我可以在PHP和JavaScript版本中找到与匹配的版本。

现在,我有99%的信心,我有一个准确的Glicko-2实现(三者之间)进行分析,这是当我遇到一些奇怪的事情,以及这个讨论的主题。

考虑到新玩家Glicko-2的默认设置:

代码语言:javascript
运行
复制
Rating:      1500
RD:           350
Volatility:  0.06

如果你在接下来的12个阶段(1年)只面对1378和RD 99 (来源)的平均对手一次,那么在接下来的12个期间(1年),你将累积一个假设的国家甲级 (1800-1999)等级,而实际上你在12个月的时间里只击败了12名平均评分的玩家。

代码语言:javascript
运行
复制
Month   Rating      RD      Volatility      Class
1       1625        259     0.059999        National Class B
2       1682        225     0.059998        〃
3       1718        205     0.059997        〃
6       1784        174     0.059994        〃
12      1852        148     0.059988        National Class A
24      1922        127     0.059976        〃

如果你面对的是2个普通对手,你可以在4-5个月左右进入国家A级,面对的只有8-10个普通对手。

代码语言:javascript
运行
复制
Month   Rating      RD      Volatility      Class
1       1672        215     0.059999        National Class B
2       1733        183     0.059997        〃
3       1770        166     0.059995        〃
4       1797        154     0.059993        〃
5       1819        146     0.059992        National Class A
6       1836        140     0.059991        〃

这些假设准确吗?我的计算器里有错误吗?

如果它不是一个bug,除了以下几个方面,还有什么方法来对付这个问题:

  • 将“真实评级”视为偏差的下限(评级- RD)。
  • 不要显示非活动用户的评等
  • 不要向用户展示少于N的游戏
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-04 23:14:33

这似乎违反了直觉,但这实际上是一个正确的结果。如果你连续打普通球员,但你总是赢,不管时间长短,你证明了你的排名很高(而不是一个平均排名,即使你的对手是平均的)。一个平均水平的球员(有一个“真正的”平均等级),与完全相同的“真实”等级(平均)的对手应该赢和输大约50%的时间。一个“真正”等级很高的球员,在打普通球员的时间里会赢得更大的百分比,这取决于他们的等级有多远,但让我们说这是一个足够高的等级,他们应该可以赢得90%的时间。这意味着对一个普通球员的10场比赛中,这位排名很高的球员应该输掉1场。

你所建立的模型是一个拥有足够高的排名的球员,能够在每一场比赛中赢下每一场比赛(超过12场或24场而不会输),这意味着如果他们继续赢下去,他们的分数将继续无限上升,因为他们从未输过。他们展示了一种能力,这种能力(直到损失发生)应该有足够大的等级分离,以接近100%的预期胜率。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12054514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档