- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于用户投票的排名算法(五):威尔逊区间
作者: 阮一峰
迄今为止,这个系列都在讨论,如何给出某个时段的排名,比如过去24小时最热门的文章。
但是,很多场合需要的是所有时段的排名,比如最受用户好评的产品。
这时,时间因素就不需要考虑了。这个系列的最后两篇,就研究不考虑时间因素的情况下,如何给出排名。
一种常见的错误算法是:
得分 = 赞成票 - 反对票
假定有两个项目,项目A是60张赞成票,40张反对票,项目B是550张赞成票,450张反对票。请问,谁应该排在前面?按照上面的公式,B会排在前面,因为它的得分(550 - 450 = 100)高于A(60 - 40 = 20)。但是实际上,B的好评率只有55%(550 / 1000),而A为60%(60 / 100),所以正确的结果应该是A排在前面。
【Urban Dictionary就是这种错误算法的实例。】
另一种常见的错误算法是
得分 = 赞成票 / 总票数
如果总票数很大,这种算法其实是对的。问题出在如果总票数很少,这时就会出错。假定A有2张赞成票、0张反对票,B有100张赞成票、1张反对票。这种算法会使得A排在B前面。这显然错误。
【Amazon就是这种错误算法的实例。】
那么,正确的算法是什么呢?
我们先做如下设定:
(1)每个用户的投票都是独立事件。
(2)用户只有两个选择,要么投赞成票,要么投反对票。
(3)如果投票总人数为n,其中赞成票为k,那么赞成票的比例p就等于k/n。
如果你熟悉统计学,可能已经看出来了,这是一种统计分布,叫做二项分布(binomial distribution)。这很重要,下面马上要用到。
我们的思路是,p越大,就代表这个项目的好评比例越高,越应该排在前面。但是,p的可信性,取决于有多少人投票,如果样本太小,p就不可信。好在我们已经知道,p是二项分布中某个事件的发生概率,因此我们可以计算出p的置信区间。所谓置信区间,就是说,以某个概率而言,p会落在的那个区间。比如,某个产品的好评率是80%,但是这个值不一定可信。根据统计学,我们只能说,有95%的把握可以断定,好评率在75%到85%之间,即置信区间是[75%, 85%]。
这样一来,排名算法就比较清晰了
第一步,计算每个项目的好评率(即赞成票的比例)。
第二步,计算每个好评率的置信区间(以95%的概率)。
第三步,根据置信区间的下限值,进行排名。这个值越大,排名就越高。
这样做的原理是,置信区间的宽窄与样本的数量有关。比如,A有8张赞成票,2张反对票;B有80张赞成票,20张反对票。这两个项目的赞成票比例都是80%,但是B的置信区间(假定[75%, 85%])会比A的置信区间(假定[70%, 90%])窄得多,因此B的置信区间的下限值(75%)会比A(70%)大,所以B应该排在A前面。
置信区间的实质,就是进行可信度的修正,弥补样本量过小的影响。如果样本多,就说明比较可信,不需要很大的修正,所以置信区间会比较窄,下限值会比较大;如果样本少,就说明不一定可信,必须进行较大的修正,所以置信区间会比较宽,下限值会比较小。
二项分布的置信区间有多种计算公式,最常见的是正态区间(Normal approximation interval),教科书里几乎都是这种方法。但是,它只适用于样本较多的情况(np 5 且 n(1 ? p) 5),对于小样本,它的准确性很差。
1927年,美国数学家 Edwin Bidwell Wilson提出了一个修正公式,被称为威尔逊区间,地解决了小样本的准确性问题。
在上面的公式中,表示样本的赞成票比例,n表示样本的大小,表示对应某个置信水平的z统计量,这是一个常数,可以通过查表或统计软件包得到。一般情况下,在95%的置信水平下,z统计量的值为1.96。
威尔逊置信区间的均值为
它的下限值为
可以看到,当n的值足够大时,这个下限值会趋向。如果n非常小(投票人很少),这个下限值会大大小于。实际上,起到了降低赞成票比例的作用,使得该项目的得分变小、排名下降。
【Reddit的评论排名,目前就使用这个算法。】
参考文献
* How Not To Sort By Average Rating
原文发表于2012年3月20日
(完)
您可能关注的文档
最近下载
- 2024生成式AI赋能教育未来.docx VIP
- 2025年《药品经营质量管理规范》(gsp)版药店零售版幻灯片PPT.pptx
- 科技赋能教育AI技术在学科教学中的运用及对未来教育趋势的影响.docx VIP
- 2025-2030年中国二氢吡啶行业投资价值研究报告.docx
- 未来教育趋势AI赋能教育新篇章.docx VIP
- 教师专业基本能力测试题答案(供参考).pdf VIP
- 最全学科带头人教学能手选拔理论试题及答案(教师基本素养试题).doc VIP
- 离婚协议书样本(可打印).docx VIP
- 智启未来,育见新篇——AI赋能教育教学的探索 课件.pptx VIP
- 小猪佩奇第一季1-51集的重点词组讲解PeppaPig(学习笔记).pdf VIP
文档评论(0)