使用 Trueskill 绘图时评分不一致

问题描述 投票:0回答:1

我正在使用 Trueskill 尝试为我的朋友之间的网球锦标赛创建一个评级系统。游戏是 1v1,所以我正在尝试以下内容:

from trueskill import Rating, quality_1vs1, rate_1vs1

alice, bob = Rating(25), Rating(25)
print('No games')
print(alice)
print(bob)

alice, bob = rate_1vs1(alice, bob)
print('First game, winner alice')
print(alice)
print(bob)

alice, bob = rate_1vs1(bob, alice)
print('Second game, winner bob')
print(alice)
print(bob)

输出以下内容:

No games
trueskill.Rating(mu=25.000, sigma=8.333)
trueskill.Rating(mu=25.000, sigma=8.333)
First game, winner alice
trueskill.Rating(mu=29.396, sigma=7.171)
trueskill.Rating(mu=20.604, sigma=7.171)
Second game, winner bob
trueskill.Rating(mu=26.643, sigma=6.040)
trueskill.Rating(mu=23.357, sigma=6.040)

我本来希望两名球员在这两场比赛后都有相同的评分,但我会同意,没有问题。但是,如果我删除第二个游戏并将其替换为平局并重新运行该游戏:

alice, bob = rate_1vs1(bob, alice, True)
print('Second game, draw')
print(alice)
print(bob)

我得到以下信息:

First game, winner alice
trueskill.Rating(mu=29.396, sigma=7.171)
trueskill.Rating(mu=20.604, sigma=7.171)
Second game, draw
trueskill.Rating(mu=23.886, sigma=5.678)
trueskill.Rating(mu=26.114, sigma=5.678)

bob
平局时的排名似乎比获胜时的排名更好。

这是怎么回事?我做错了什么?

python ranking rating leaderboard rating-system
1个回答
0
投票

我本以为两名球员在这两场比赛后都有相同的评分

TrueSkill 常见问题解答提到它“比旧游戏结果更多地考虑最近的游戏结果”。

看起来 TrueSkill 只记住每个玩家的两个数字(mu 和 sigma),所以如果它想忘记过去,它必须对其旧知识进行某种指数衰减。

鲍勃平局时的排名似乎比获胜时的排名更高。这是怎么回事?

我不知道,但我不认为你做错了什么。答案可能就在公式(或者可能是实现)中。请注意在抽签结果后西格玛如何减少更多,因此算法似乎认为它从抽签结果中获得了更有力的证据。 mu 值移动更多的事实似乎只是这个的结果。所以要问的问题是:为什么应该认为抽签能提供更多信息?

© www.soinside.com 2019 - 2024. All rights reserved.