所以我刚建立了一个星级评分系统,并试图找出一个列出“评分最高”项目的算法。为简单起见,以下是列:
item_name
average_rating (a decimal from 1 to 5)
num_votes
我正在试图确定投票数和评级之间的“甜蜜点”。例如......
换句话说, num_votes 在“顶级”中扮演一个因素。
任何人都知道一种算法非常擅长确定这个“甜蜜点”吗?
提前致谢。
答案 0 :(得分:11)
这是另一种统计上合理的好方法:http://www.thebroth.com/blog/118/bayesian-rating
答案 1 :(得分:3)
问题是,4.6 / 20的评级要高于5.0 / 2 ......
不考虑没有至少x票的物品的想法。
另一个想法是填补“中等”选票。决定10票应该是最低限度。 5.0 / 2必须填写8个虚拟投票2.5
5.0 / 2表示2票与5.0,加上8表示2.5你将获得30/10 - > 3.0;)现在,你必须决定一件物品至少有多少票。对于已经获得最低票数的人,应进行直接比较。
4.5/20 > 4.4/100
5.0/2 < 3.1/20 (as 5.0/2 is, as we calculated, 3.0/10)
答案 2 :(得分:2)
你怎么给每10票重1,所以20票给2项重量。 然后,如果该项目的权重为0,则它将从平均值
中减去0.54.6/20 = 20/10: 2 weight
5.0/2 = 2/10: 0 weight
(4.6 * 0.02) + 4.6 = 4.692
(5.0 * 0.00) + 5.0 = 5 - 0.5 = 4.5
2.5/100 = 100/10: 10 weight
4.5/2 = 2/10: 0 weight
(2.5 * 0.1) + 2.5 = 2.75
(4.5 * 0.0) + 4.5 = 4.5 - 0.5 = 4