在我网站上用户生成的帖子下,我有一个类似亚马逊的评级系统:
Was this review helpful to you: Yes | No
如果有投票,我会在该行上方显示结果,如下所示:
5 of 8 people found this reply helpful.
我想根据这些排名对帖子进行排序。如果您的排名从最有帮助到最无帮助,您会如何排序以下帖子?
a) 1/1 = 100% helpful
b) 2/2 = 100% helpful
c) 999/1000 = 99.9% helpful
b) 3/4 = 75% helpful
e) 299/400 = 74.8% helpful
显然,仅根据有帮助的百分比进行排序是不对的,应该以某种方式考虑总票数。有标准的方法吗?
更新:
使用 Charles 的公式计算 Agresti-Coull 下限并对其进行排序,以上示例的排序方式如下:
1) 999/1000 (99.9%) = 95% likely to fall in 'helpfulness' range of 99.2% to 100%
2) 299/400 (74.8%) = 95% likely to fall in 'helpfulness' range of 69.6% to 79.3%
3) 3/4 (75%) = 95% likely to fall in 'helpfulness' range of 24.7% to 97.5%
4) 2/2 (100%) = 95% likely to fall in 'helpfulness' range of 23.7% to 100%
5) 1/1 (100%) = 95% likely to fall in 'helpfulness' range of 13.3% to 100%
直觉上,这感觉是对的。
更新 2:
从应用程序的角度来看,我不想每次拉出帖子列表时都运行这些计算。我在想我要么更新并存储 Agresti-Coull 下限,要么按照常规的、cron 驱动的时间表(仅更新自上次运行以来收到投票的帖子),要么在收到新投票时更新它.