2010-12-21 18 views
2

我正在尝试为我的产品数据库获得体面的排序算法。用户可以使用0到5的分数来投票选择他们的产品(0.5分也可以是2.5)。我的表结构目前看起来是这样的:按用户分级对产品进行排序/排名的公式

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

每当用户投票,我用一个非常简单的公式一样 (TotalPoints/NumberOfVotes)= FinalScore正在计算finalscore。

然后我对FinalScore和NumberOfVotes进行排序。

这虽然有效,但并不公平,因为只有1票5星的产品很容易进入排行榜。

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

这怎么办?

+1

您可以试着用一堆平均分数(约2.5)来“欺骗”每一款新产品。通过这种方式,需要多个真正的投票才能移动产品评级,但这可能会给客户留下不好的印象。或者,在产品至少有N张选票之前,不要将产品放入排名靠前的产品。 – StuartLC 2010-12-21 13:32:28

回答

1

您可以使用median,这通常比原始平均值更好。此外,您可能会考虑不给予评分低于5票的任何项目。

3

,我发现这个在这里,介绍各种选项,包括thier利弊一个伟大的职位:How Not To Sort By Average Rating但它似乎是正确的解决办法是这样的......

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

似乎令人生畏,但职位包括伪代码和一个明确的解释。