如何根据比赛结果对一组人进行排名?

时间:2011-07-06 22:39:06

标签: algorithm ranking

我这里有一点大脑融化。

我有一群人。他们在定时活动中相互竞争。每个竞赛产生一组结果,显示每个人,按时间排名。

根据这些数据,我可以看到(比方说)A人在48次会议中有73%的时间击败了B人。简单。

我们假设我有人A B C D E F G.对于任何配对,我可以通过比较它们来看看谁是胜利者,但我如何提出“最准确”的总体排名呢?

是否需要某种迭代过程?任何提示赞赏,我不知道从哪里开始!

(如果重要的话,每场比赛不一定是所有参赛者的完整组合。)

我想通过考虑他们的相对时间来进一步改善事物,而不仅仅是“A beat B”或“B beat A”。 “A节拍B减去6.3秒”等等。但是现在让我们保持简单,我想!

如果需要,请尽快提供更多信息,告诉我什么!

非常感谢!

2 个答案:

答案 0 :(得分:1)

作为第一步,我将实施elo评级系统。

http://en.wikipedia.org/wiki/Elo_rating_system

它会做得不错。你可以通过Glicko或Trueskill等更复杂的系统来获得更好的体验,但我会先与Elo一起去看看它是否适合你。

答案 1 :(得分:0)

您可以使用Elo Rating System(在国际象棋中用于评估世界各地的玩家)。

我认为它的工作方式如下:每个玩家都以一定数量的积分开始。当两名球员互相挑战时,他们将根据每位球员的得分赢得或输掉不同数量的分数。

再次失去一个比你强大的人不会让你失去那么多的分数,好像你是在和你的等级(或低于它)中的某个人玩。我认为比赛结束后总积分可能会有所不同。例如,一个玩家可以赢得10分,另一个玩家可以赢得5分,在系统中创造5个新点。

我相信这个算法是用于Hot还是不用。

一些类似的替代方案:Glicko Rating SystemChessmetrics