我有一个新系统,你可以用1到5星评价新闻。在数据库中我保存计数,总和和绝对评级为int,最高为100(对于html输出,所以5颗星将是100 1星将是20%。 现在我有三个名单: 最佳评级 最受关注 评论最多
最后两个很简单,但第一个有点棘手。 在我接受这件事之前,这一切都是一团糟,而且他们只是在那里放了5个评价最高的新闻,所以事实上如果有一个新闻评分为4.995,有10万票,另一个有5星1票,那么“更好被评为“即使这是荒谬的,也是最重要的。 在第一时间,我对列表进行了限制,因此只有具有一定数量投票(如10或20)的新闻才能出现在列表中。
但我真的不喜欢那样。是否有一种很好的方法可以实现 - 给这些东西一个“重量”与计数或类似的东西?
答案 0 :(得分:7)
您是否考虑过使用weighted bayesian rating system?它将根据投票数和投票价值本身对结果进行加权。
答案 1 :(得分:1)
您可以根据所有参赛作品的平均评分和所有投票的标准差来探索评级的统计置信度。虽然一个条目的平均评分为5,但如果你只有几张选票,那么你可能无法以超过90%的信心说实际评级高于4.7。然后,您可以根据您有90%置信度的评级对条目进行评级。
我不确定这是否符合您的简单要求。
答案 2 :(得分:0)
您可以使用用户评分的中位数作为总评分。 您将有五个带有eatch文章的字段,每个字段包含该文章被评为n个星的次数。然后,您将选择具有所有这些最大值的字段,这将是您的评级。它的优点是忽略了评级中的异常值。