如何根据评级比较两种产品?
How to compare two products based on their ratings?
我想知道如何根据产品评分计算排名分数。例如,以苹果应用商店为例。有两种产品 A 和 B。两者的平均评分相同,但有 100 位评论者评分为 A,而 1000 位评论者评分为 B。直觉上,B 的评分似乎应该高于 A(平均标准误差较低)。是否有既定的公式来比较两个项目并根据他们的评分确定哪个更好?
查看这些 link:
- http://www.evanmiller.org/how-not-to-sort-by-average-rating.html
- http://www.evanmiller.org/bayesian-average-ratings.html
- http://www.evanmiller.org/ranking-items-with-star-ratings.html
仔细观察最后一个 link,他只是在计算 mean - standard error of the mean
并将其用于排名。
我写了一些 python 代码,这样您就可以 运行 轻松地使用它。
def score(nn):
""" nn = [0, n1, n2, n3, n4, n5] """
if len(nn)==5:
nn = [0, *nn] # add 0
N = sum(nn)
K = 5
kk = [1,2,3,4,5]
z = 1.65 # alpha = 0.1 mean 95% confidence
avg = sum(k*(nn[k]+1)/(N+K) for k in kk)
diff = sum(k**2 * (nn[k]+1)/(N+K) for k in kk) \
- sum(k * (nn[k]+1)/(N+K) for k in kk) ** 2
dev = z * sqrt(diff / (N+K+1))
return avg - dev
你可以调用它
score([5, 5, 14, 48, 223]) # 4.517059350728805
我想知道如何根据产品评分计算排名分数。例如,以苹果应用商店为例。有两种产品 A 和 B。两者的平均评分相同,但有 100 位评论者评分为 A,而 1000 位评论者评分为 B。直觉上,B 的评分似乎应该高于 A(平均标准误差较低)。是否有既定的公式来比较两个项目并根据他们的评分确定哪个更好?
查看这些 link:
- http://www.evanmiller.org/how-not-to-sort-by-average-rating.html
- http://www.evanmiller.org/bayesian-average-ratings.html
- http://www.evanmiller.org/ranking-items-with-star-ratings.html
仔细观察最后一个 link,他只是在计算 mean - standard error of the mean
并将其用于排名。
我写了一些 python 代码,这样您就可以 运行 轻松地使用它。
def score(nn):
""" nn = [0, n1, n2, n3, n4, n5] """
if len(nn)==5:
nn = [0, *nn] # add 0
N = sum(nn)
K = 5
kk = [1,2,3,4,5]
z = 1.65 # alpha = 0.1 mean 95% confidence
avg = sum(k*(nn[k]+1)/(N+K) for k in kk)
diff = sum(k**2 * (nn[k]+1)/(N+K) for k in kk) \
- sum(k * (nn[k]+1)/(N+K) for k in kk) ** 2
dev = z * sqrt(diff / (N+K+1))
return avg - dev
你可以调用它
score([5, 5, 14, 48, 223]) # 4.517059350728805