我看到这个问题在TrueSkill的讨论中出现了很多,但我还没有找到一个决定性的答案。
我在这里使用python实现:
https://github.com/sublee/trueskill
我在这里用这个库做了一个简单的模拟:
https://gist.github.com/klenwell/3a15eca6b83ce575d0ca
该问题作为python库的first issue提交。在大多数TrueSkill讨论返回的Jeff Moser blog post中,这个问题在评论中出现了好几次。
有人能提供一个与python库实现兼容的函数,根据两个玩家的评分,准确地返回一个玩家对另一个玩家的预测获胜概率吗?

最佳答案

以下是一个基于Moser博客上this comment的功能:

from math import sqrt
from trueskill import BETA
from trueskill.backends import cdf

def win_probability(player_rating, opponent_rating):
    delta_mu = player_rating.mu - opponent_rating.mu
    denom = sqrt(2 * (BETA * BETA) + pow(player_rating.sigma, 2) + pow(opponent_rating.sigma, 2))
    return cdf(delta_mu / denom)

my gist测试,这似乎比原来的win_probability函数执行得更好。
此函数仅处理面对面的情况,但注释中包含了计算多人比赛获胜概率的更通用方法。

关于python - 使用trueskill算法,给定两个玩家的评分,如何计算获胜/失败概率?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28031698/

10-09 05:24