Statistics 1对1投票:计算评分(Flickchart.com)

Statistics 1对1投票:计算评分(Flickchart.com),statistics,charts,ranking,voting,Statistics,Charts,Ranking,Voting,我希望有1对1的“战斗”,而不是评分从1到10的项目。两个项目显示在一起,您可以选择更喜欢的项目。根据这些“战斗”结果,算法应该计算每个项目的评分 您可以在使用此方法对电影进行分级的位置上看到此方法 看起来是这样的: if rank(loser) == null and rank(winner) == null insert loser at position estimated from global rank insert winner at position estimat

我希望有1对1的“战斗”,而不是评分从1到10的项目。两个项目显示在一起,您可以选择更喜欢的项目。根据这些“战斗”结果,算法应该计算每个项目的评分

您可以在使用此方法对电影进行分级的位置上看到此方法

看起来是这样的:

if rank(loser) == null and rank(winner) == null
    insert loser at position estimated from global rank
    insert winner at position estimated from global rank
else if rank(winner) == null or rank(winner) < rank(loser)
    then advance winner to loser's position and demote loser and all following by 1

正如你所看到的,如果他们赢得了一场“战斗”,物品就会向上推。排名总是根据“战斗”结果而变化。但这不能仅仅基于胜诉报价(这里是54%),因为击败“泰坦尼克号”比击败“25小时”更难

有几件事我很不清楚: -评级是如何计算的?你如何决定哪部电影排名第一?你必须考虑一个项目获胜的次数和被打败的项目有多好。 -如何选择有“战斗”的物品


当然,你不能告诉我Flickchart到底是如何做到这一切的。但也许你能告诉我怎么做。提前谢谢

这可能并不完全是flickchart所做的,但您可以使用国际象棋(和其他运动)中使用的算法的变体,因为这些基本上都是他们赢/输的战斗/游戏

基本上,所有电影一开始都是0胜/负,每次赢了都会得到一定的分数。你的平均得分通常在20分左右(但任何数字都可以),如果你赢了一部与你相同评级的电影,你会得到20分。战胜一部糟糕的电影可能得10分,而战胜一部更好的电影可能得30分。反过来说,输给一部好电影你只会损失10分,但如果输给一部坏电影,你会损失30分


该算法的详细信息在维基百科链接中。

或者您可能希望使用PageRank的变体,请参见。

(或原名为的)

评级是如何计算的?你如何决定哪部电影排名第一?你必须考虑一个项目获胜的次数和被打败项目的好坏。 你想要的是一个加权评级,也称为贝叶斯估计

我认为这是一个更好的起点,使排名网站。有些电影的票数超过300000张,而有些电影的票数不足50000张。IMDB使用贝叶斯估计对电影进行排名,而不会对流行电影进行不公平的加权。算法在页面底部给出:

加权评级(WR)=(v÷(v+m))×R +(m÷(v+m))×C式中:

  • R=电影的平均值(平均值)= (评级)
  • v=选举的投票数 电影=(投票)
  • m=最低票数 需要列入前250名 (目前为3000人)
  • C=平均投票数 整个报告(目前) (6.9)
对于前250名,只有来自 普通选民被考虑在内

我不知道IMDB是如何选择3000票作为他们的最低票数的。他们本可以选择1000或10000,而名单则大致相同。也许他们使用的是“6周票房后的平均票数”,或者他们使用的是试错法

在任何情况下,这都不重要。上面的公式几乎是排名网站上正常化投票的标准,我几乎可以肯定Flickrchart在背景中使用了类似的东西

这个公式非常有效,因为它将评级“拉”向平均值,因此高于平均值的评级略有下降,低于平均值的评级略有上升。然而,吸引力的强度与一部电影的票数成反比。因此,得票少的电影比得票多的电影更倾向于中庸。以下是两个数据点来演示该属性:

Rank  Movie            Votes            Avg Rating        Weighted Rating
----  -----            -----            ----------        ---------------
219   La Strada        15,000+          8.2               8.0
221   Pirates of the   210,000+         8.0               8.0
      Caribbean 2
这两部电影的收视率都有所下降,但对《斯特拉达》的影响更为显著,因为它的得票率较低,因此不如《波塔》的收视率具有代表性


对于您的具体情况,您在“战斗”中有两个项目。您可能应该按照以下方式设计表格:

Items
-----
ItemID (pk)
FightsWon (int)
FightsEngaged (int)
平均等级为FightsWon/FightsEngaged。使用上述公式计算加权评级

当用户在战斗中选择胜利者时,将获胜物品的FightsWon字段增加1,将两个物品FightsEngaged字段都增加1

希望这有帮助!
-朱丽叶

至于flickchart,我一直在玩弄它,我认为评级系统相当简单。在伪代码中,我猜它看起来像这样:

if rank(loser) == null and rank(winner) == null
    insert loser at position estimated from global rank
    insert winner at position estimated from global rank
else if rank(winner) == null or rank(winner) < rank(loser)
    then advance winner to loser's position and demote loser and all following by 1
如果排名(失败者)==null,而排名(获胜者)==null
在根据全球排名估计的位置插入失败者
在根据全球排名估计的位置插入赢家
否则,如果排名(赢家)=空或排名(赢家)<排名(输家)
然后将胜利者提升到失败者的位置,并将失败者降级,然后所有人按1
我为什么这么想?首先,我完全相信他们的贝叶斯先验并不是基于对我之前选择的仔细挖掘。他们似乎无法猜测,因为我喜欢《绝地归来》,所以我喜欢《帝国反击战》。事实上,他们无法理解,因为我看过《孤家寡人2》,所以我可能看过《孤家寡人1》。在经历了数百次的收视率之后,选择还没有出现

其次,如果你看上面的代码,你可能会发现一个小错误,你肯定会在网站上注意到。你可能会注意到,有时你会做出选择,胜利者会以一比一领先。这似乎只发生在输家之前没有加入的情况下。我的猜测是,正在发生的事情是,输家被加得比赢家高

除此之外,你会注意到排名根本不会改变,除非排名较低的电影直接击败排名较高的电影。我认为这不是真的