计算得分最多的项目的最佳算法是什么?

Fit*_*aki 15 algorithm math

我有一个用户在1到5之间得分的音乐项目,我需要一个公式来获得5个得分最高的项目.

但显然,从1000个不同用户获得3.5平均得分的项目将得到更多得分然后一个项目得到4.9仅来自5个用户的平均得分...换句话说我认为如果项目得到人们的注意得分,这表示该项目很有趣.所以在计算中,votesCount参数需要有权力.(多少力量?我不确定,我要求你得到想法).

我认为我们在函数中需要以下参数:votesAverage,votesCount.

Rob*_*ino 28

对拥有大量选民的五星级系统进行加权投票

您可以使用贝叶斯估计来计算加权投票.

IMDb(互联网电影数据库)使用此计算来确定其IMDb Top 250. (注意:IMDb使用10颗星,但使用5颗星的公式相同).

计算最高额定250标题的公式给出了真正的贝叶斯估计:

加权等级(WR)=(v÷(v + m))×R +(m÷(v + m))×C

哪里:

  • R =电影的平均值(平均值)=(评级)
  • v =电影的投票数=(投票)
  • m =要求列入前250名(目前为3000名)的最低票数
  • C =整个报告的平均投票数(目前为6.9)

IMDb参考

维基百科参考

  • 只是注意完整性,这里WR =(Rv + Cm)/(v + m),当你设置H = m时,这也是我的解决方案(下面) (2认同)

Wel*_*bog 8

如果你真的想以正确的方式去做,那么reddit评分算法可能是最好的选择.它在这里详细解释,并在一个较高水平的XKCD作者兰德尔在这里.

问题是它不适用于五星评级,这正是你想要的.您应该能够概括reddit的排序系统以使用评级.哎呀,它可能已经在某个地方完成了.我要去寻找它.


Ant*_*ima 6

平衡系统的一种简单方法是添加固定数量的假设用户(比如计数为H),他们都投票支持所有部分的长期平均值A. 说平均值是3; 然后公式变成了

得分=(votesCount x votesAverage + H x A)/(votesCount + H)

现在,当投票数量增加时,假设的平均选民的相对影响减少了.

您可以通过实验设置H,也可以通过思考来设置H. 例如,如果您认为20票足以建立相对较强的评级,则可以设置H = 5.说.