我需要一个新评级系统的想法。普通的问题(只是平均票数)是它不计算有多少票......
例如考虑这两种情况:
3 人投票 5/5
500 人投票 4/5
普通的投票系统只是取平均值,导致第一个更好..但是,我希望第二个获得更高的评分,因为很多人都投票给了第二个......
有什么帮助吗?
我需要一个新评级系统的想法。普通的问题(只是平均票数)是它不计算有多少票......
例如考虑这两种情况:
3 人投票 5/5
500 人投票 4/5
普通的投票系统只是取平均值,导致第一个更好..但是,我希望第二个获得更高的评分,因为很多人都投票给了第二个......
有什么帮助吗?
你在谈论一个收缩估计器。Imdb 可能是这方面最著名的例子,他们如何计算哪些电影将进入前 250 名。它依赖于方程,
加权评级 (WR) = (v ÷ (v+m)) × R + (m ÷ (v+m)) × C ,其中:
* R = average for the movie (mean) = (Rating)
* v = number of votes for the movie = (votes)
* m = minimum votes required to be listed in the Top 250 (currently 3000)
* C = the mean vote across the whole report (currently 6.9)
他们称之为“真正的贝叶斯评级”,这是正确的,因为我们对参数“平均评级”的先验与所有其他电影相同。然后根据“可能性”更新这个先验值,这是该电影的平均评分,如果它有更多的选票,它就更有力量。但我不确定这在技术上是否符合贝叶斯的条件,因为先验和后验都不是分布……有人能澄清一下吗?
您可以使用像reddit 的“最佳”算法这样的系统来对评论进行排序:
该算法将投票计数视为每个人假设的全票的统计抽样,就像在民意调查中一样。它使用它来计算评论的 95% 置信度分数。也就是说,它为评论提供了一个临时排名,它有 95% 的把握会达到。票数越多,95% 的置信度得分越接近实际得分
因此,在 3 个人以 5/5 投票的情况下,您可能 95% 确定“实际”评级至少为 1,而在 500 人投票的情况下,您可能 95% 确定“实际”评级为至少 4/5。
你可能会遇到Gibbard Satterthwaite Theorem 或Arrow's Impossibility Theorem或投票理论的任何结果所暗示的问题......
有一个简单的(也可以实现的)启发式方法,首先用少量的虚拟选票和平均投票来播种选票池,然后用传入的选票替换它。
因此,举例来说,新对象出现了,你给它几票给它 2.5/5 的评分(这是你在零知识点上能说出的最好的结果)。然后第一个投票来了,假设是 5/5,但是初始池的其余部分稍微缓和了它,并且对象平均值略高于 2.5。比下一个投票来,平均值逐渐从最初的猜测移动到有时间稳定的实际平均值。最后这个算法收敛到正常的投票均值。