我需要计算产品的星级 我知道如何计算加权平均值,但不够好
示例(5*252 + 4*124 + 3*40 + 2*29 + 1*33) / (252+124+40+29+33) = 4.11
我希望避免产品获得1000颗五星评级和一颗4颗星的情况,而另一颗产品只获得一颗5颗星并且它位于顶部
我知道有一种方法,但我找不到它
谢谢
答案 0 :(得分:0)
尝试使用新列(评级*投票)对产品记录进行排序。
它可以帮助您找到评分最高的产品。
答案 1 :(得分:0)
你可以乘以一个权重函数,这会给投票数较少且收敛的产品带来惩罚。像这样的东西应该做的工作。
截断为1的抛物线应该完成这项工作
EX:
convergence_step=1000
if voters<convergence_step:
meanscore=score*{[(voters)/(float)(convergence_step)]^2}
else
meanscore=score
答案 2 :(得分:0)
使用排序,其中可以包括评级数,例如投票数除以计算的平均评级。