我正在尝试为我的产品数据库获得一个不错的排序算法。用户可以使用0到5之间的分数来投票给他们的产品(也可以像2.5一样得分为0.5)。我的表结构当前如下所示:

[ProductID] [Title] ... [NumberOfVotes] [TotalPoints] [FinalScore]


每当用户投票时,我都会使用一个非常简单的公式来计算最终得分
     (总点数/投票数)= FinalScore。

然后,我对FinalScore和NumberOfVotes上的表进行排序。

尽管这可行,但这并不完全公平,因为只有1票5颗星的产品可以轻松地进入最高排名。

我不太擅长使用统计数据或算法来获得公平的产品排名。
我正在寻找一个相对易于实现的公式,该公式比我现在使用的方法更公平。

如何才能做到这一点?

最佳答案

我在这里找到了一篇很好的文章,解释了各种选择,包括它们的优缺点:How Not To Sort By Average Rating,但是看来正确的解决方案是这样...


  “得分=威尔逊得分的下限
  伯努利的置信区间
  参数”


似乎令人生畏,但该帖子包含伪代码和清晰的说明。

关于c# - 根据用户评分对产品进行排序/排名的公式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4499712/

10-09 06:12
查看更多