Math 未评级与具有Wilson分数的负面评级实体——如何处理?

Math 未评级与具有Wilson分数的负面评级实体——如何处理?,math,statistics,rating-system,scoring,Math,Statistics,Rating System,Scoring,读完后我想我应该试一试 CREATE FUNCTION `mydb`.`LowerBoundWilson95` (pos FLOAT, neg FLOAT) RETURNS FLOAT DETERMINISTIC RETURN IF( pos + neg <= 0, 0, ( (pos + 1.9208) / (pos + neg) - 1.96 * SQRT( (pos * neg) / (p

读完后我想我应该试一试

CREATE FUNCTION `mydb`.`LowerBoundWilson95` (pos FLOAT, neg FLOAT)
RETURNS FLOAT DETERMINISTIC
RETURN
IF(
    pos + neg <= 0,
    0,
    (
        (pos + 1.9208) / (pos + neg)
        -
        1.96 * SQRT(
            (pos * neg) / (pos + neg) + 0.9604
        )
        / (pos + neg)
    )
    /
    (
        1 + 3.8416
        / (pos + neg)
    )
);
以下是
AdjustedRating

  \  pos  0       1       2
neg
 0   | 0.215 | 0.188 | 0.168
 1   | 0.266 | 0.235 | 0.212
 2   | 0.312 | 0.280 | 0.235
这更接近于我想要的分数,作为一个数字黑客,我想这是可行的,但我无法从数学上证明这一点


有没有更好的方法,一种“正确”的方法?

问题出现了,因为这种近似(置信下限)实际上是用来确定列表中评级最高的项目的。如果你对排名最低的人感兴趣,你可以选择置信上限

或者,我们使用贝叶斯统计,这正是您描述的第二种方法的形式化。埃文·米勒实际上对此有一个解释,他说:

我之前提出的解决方案——使用均值周围置信区间的下界——就是计算机程序员所说的hack。它之所以有效,并不是因为它是一个普遍最优的解决方案,而是因为它大体上符合我们的直觉,即我们希望在最佳评级列表的顶部看到的东西:给定数据,坏的可能性最小的项目

贝叶斯统计让我们将这种直觉形式化

使用贝叶斯排序方法,任何数据为零的点都会返回到先前的平均值(您称之为初始分数),然后在收集数据时远离它。这也是IMDB用来计算其顶级电影列表的方法。

您建议的将每个对象的4张赞成票和4张反对票计入的具体方法相当于将平均值0.5与权重8票相加。鉴于没有任何其他数据,这是一个合理的开始。拉普拉斯在《经济学人》一书中提出了一个著名的观点,即事件应分为1次成功和1次失败。在项目排名问题中,我们有更多的知识,因此将之前的平均值设置为平均排名是有意义的。该先验平均值的权重(或作为数据函数的移动速度,也称为先验方差)很难设置


对于IMDB排名前250的电影,他们使用平均电影排名7.1,权重为25000票,这相当于将所有电影视为以25000张“自由”票开始,评级为7.1的电影。这是否部分是浮动/舍入问题?我已经在Python和fro中实现了这个算法
pos=0
neg>0
我得到
0.0
,即未评级和降级的项目是相等的。还是不是你想要的,你的补偿似乎工作得很好谢谢这很有趣,但是如果你想要最高评分项目的下界和最低评分项目的上界,你如何有一个公式来对所有项目进行排名?如果利息子集的所有评级均为负值或不存在,该怎么办?我希望在所有情况下都能使用相同的公式。贝叶斯排名方法通过使用一个平均值来取代置信上限和置信下限,当数据很少时,该平均值会回落到全局平均值。例如,IMDB使用相同的公式制作他们的顶级电影以及有史以来最差电影的列表。如果没有可用的排名,项目只得到全局平均值,因此将被排列在所有项目的中间。
  \  pos  0       1       2
neg
 0   | 0.215 | 0.188 | 0.168
 1   | 0.266 | 0.235 | 0.212
 2   | 0.312 | 0.280 | 0.235