2

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

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

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

然后我根据 FinalScore 和 NumberOfVotes 对表格进行排序。

虽然这可行,但并不完全公平,因为只有 1 票 5 星的产品很容易进入最高排名。

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

如何才能做到这一点?

4

2 回答 2

3

我在这里找到了一篇很棒的文章,解释了各种选项,包括它们的优缺点:如何不按平均评级排序,但似乎正确的解决方案是这个......

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

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

于 2010-12-21T14:25:46.533 回答
1

您可以使用中位数,这通常比原始平均值更好。此外,您可能会考虑不对任何少于五票的项目进行评分。

于 2010-12-21T13:39:08.293 回答