[英]Glicko-2 Rating System: Bug or exploit?
Glicko-2 is a rating system used in chess, but can be used in many other situations. Glicko-2是国际象棋中使用的评级系统,但可以在许多其他情况下使用。 Glicko-2 is an improvement on Glicko-1, which addressed problems of the older ELO rating.
Glicko-2是对Glicko-1的改进,它解决了旧ELO评级的问题。
What makes Glicko-2 special in comparison to version 1 is that it incorporates a higher rating deviation (RD) the longer someone has been inactive. 与版本1相比,Glicko-2的特殊之处在于它具有更高的评级偏差(RD),即某人不活动的时间越长。 It does this with the notion of a system constant which relates to time/rating periods.
它使用与时间/评级周期相关的系统常数的概念来实现这一点。
An example write up from the author is found here: http://www.glicko.net/glicko/glicko2.pdf . 可以在此处找到作者的一个例子: http : //www.glicko.net/glicko/glicko2.pdf 。
Within this document, he explains: 在这份文件中,他解释说:
The Glicko-2 system works best when the number of games in a rating period is moderate to large, say an average of at least 10-15 games per player in a rating period.
当评级期间的游戏数量从中到大时,Glicko-2系统效果最佳,比如评级期内每位玩家平均至少10-15场比赛。 The length of time for a rating period is at the discretion of the administrator.
评级期的时间长短由管理员决定。
Making an assumption that a group of active chess players play 10-15 games on average in a 1 month time period, the administrator would then update ratings at the end of every month. 假设一组活跃的国际象棋选手在1个月的时间内平均玩10-15场比赛,管理员将在每个月末更新评级。
I needed a PHP Implementation of the Glicko-2 rating system and came across the following: 我需要一个Glicko-2评级系统的PHP实现,并且遇到了以下内容:
Glicko-2 JavaScript Implementation Glicko-2 JavaScript实现
Glicko-2 PHP Implementation Glicko-2 PHP实现
Glicko-2 Calculator in Excel Excel中的Glicko-2计算器
I had fixed the bugs (and submitted issues/patches to the authors) I could find on the PHP and JavaScript versions to match as closely to the Excel Calculator 我已经修复了错误(并向作者提交了问题/补丁)我可以在PHP和JavaScript版本上找到与Excel计算器紧密匹配的错误
Now I am 99% confident that I have an accurate Glicko-2 implementation (between the 3 of them) for analysis and that is when I came across something strange, and the topic of this discussion. 现在,我有99%的信心,我有一个准确的Glicko-2实现(在它们中的3个之间)进行分析,这就是我遇到一些奇怪的东西,以及这个讨论的主题。
Given the suggested default for Glicko-2 for a new player: 给出新玩家Glicko-2的建议默认值:
Rating: 1500
RD: 350
Volatility: 0.06
If you face an average opponent of rating 1378 and RD 99 ( Source ) only once every rating period (1 month) for the next 12 periods (1 year) you will have accumulated an assumed National Class A (1800-1999) rating of 1852 when in reality you have only beat 12 average rated players over a span of 12 months. 如果您在接下来的12个时期(1年)的每个评级期(1个月)内只面对1378评级和RD 99( 来源 )的平均对手,您将累积假定的国家A级 (1800-1999)评级为1852实际上,你在12个月的时间里只击败了12名平均水平的球员。
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 〃
If you face 2 average opponents every rating period, you can get to National Class A about 4-5 months, facing only 8-10 average opponents. 如果你在每个评级期间面对2个普通对手,你可以在4-5个月内到达国家A级,面对的平均对手只有8-10个。
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 〃
If it is not a bug, what are some ways of countering this besides: 如果它不是一个bug,除此之外还有哪些方法可以解决这个问题:
It may seem counter-intuitive but this is actually a correct result. 这看似违反直觉,但实际上这是一个正确的结果。 If you continuously play average players, but you always win, regardless of the time periods, you're demonstrating you have a high ranking (not an average ranking even though your opponents are average).
如果你连续玩普通玩家,但你总是赢,无论时间段如何,你都表明你的排名很高(即使你的对手是平均水平,也不是平均排名)。 A player who is average (has a 'true' average rank), playing opponents of exactly the same 'true' rank (average) should win and lose about 50% of the time.
平均(具有“真正的”平均等级)的玩家,打出完全相同的“真实”等级(平均值)的对手应该赢得并且失去大约50%的时间。 A player with a 'true' rank that is very high, will win a larger percentage of the time when playing average players which depends on just how far apart their ranks are, but lets say it's a high enough rank that they should win 90% of the time.
具有非常高的“真实”等级的玩家将在玩普通玩家时赢得更大比例的时间,这取决于他们的等级有多远,但是可以说这是一个足够高的等级,他们应该赢得90%的时间。 That means for ever 10 games played against an average player, this highly ranked player should lose 1 of them.
这意味着对于普通玩家来说,有10场比赛,这个排名很高的球员应该输掉其中的一场。
What you've effectively modeled is a player that has a rank high enough to win every single game against an average player (more than 12 or 24 games without a loss) which means their score will continue to go up unbounded if they continue to win, because they've never lost. 你有效建模的是一个排名足够高的玩家,可以赢得每场比赛对阵普通玩家(超过12或24场没有损失的比赛),这意味着如果他们继续获胜,他们的得分将继续上升因为他们从未输过。 Their demonstrating an ability that (until a loss happens) should have a rank separation large enough to approach an expected win ratio of 100%.
他们表现出的能力(直到发生损失)应该具有足够大的等级分离,以达到100%的预期胜率。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.