基于投票数量和五星评级的评级对象算法

时间:2011-02-23 20:51:50

标签: algorithm comparison evaluation rating

我正在建立一个网站,人们可以通过分配星级评分(比如5星评级)来评价他们选择的对象。对象按一系列标签和类别排列,例如。电子产品>显卡> pci express> ...或维护>承包商>水管工。

如果其他用户搜索特定类别或标记,则匹配必须返回该类别中的最高“评级”对象。然而,如果一个人只为一个物体投票5星,而1000个用户平均投票另一个物体的4.5星,那么该系统将是有缺陷的。显然,逻辑规定可信度将给予1000个用户评级对象,而不是由1个用户评估的对象,即使它具有“较低”分数。

相反,相信具有分数为4.8的用户评级为500的对象比信任具有1000个用户评级为4.5的对象更可靠。

什么算法可以实现这种加权?

4 个答案:

答案 0 :(得分:10)

这个问题的一个很好的答案是: http://www.evanmiller.org/how-not-to-sort-by-average-rating.html

答案 1 :(得分:3)

按推荐排序时,您可以使用Bayesian average

答案 2 :(得分:2)

我很想得到一个截止点(比如,五十票,虽然这显然取决于交通),在此之前你认为这个项目没有被排除在外。这将大大降低垃圾邮件/白痴排名的动机(特别是如果每​​次投票都与用户帐户相关联),并且还可以为您提供简单,快速实施且相当可靠的系统。

答案 3 :(得分:1)

simboid_function(value) = 1/(1+e^(-value));

rating = simboid_function(number_of_voters) + simboid_function(average_rating);