未评级与威尔逊得分负面评级的实体 - 如何处理?(unrated versus negative-r

2019-09-23 08:20发布

看了如何不至按平均评分我想我应该给它一个尝试。

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)
    )
);

运行一些测试中,我发现,使用对象pos=0neg>0具有非常小的,但非负的分数,而与对象pos=neg=0的得分为零,排名较低。

我是一个未评级对象应上述其中一个没有正面评级,但一些负面上市的意见。

我的理由是“个人收视率都真正从一些基线偏差的表现,所以我会移动基线,我给每一个对象‘中性’初始分值,”所以我想出了这个:

CREATE FUNCTION `mydb`.`AdjustedRating` (pos FLOAT, neg FLOAT)
RETURNS FLOAT DETERMINISTIC
RETURN
(
    SELECT `mydb`.`LowerBoundWilson95` (pos+4, neg+4)
);

以下是一些示例输出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

这是更接近得分排序我想要的和数值劈我想这是可行的,但我不能在数学上证明它

有没有更好的办法,一个“正确”的方式?

Answer 1:

这个问题的产生是因为这种近似(下界信心)的真正含义识别列表的收视率最高的项目。 如果你有兴趣在排名最低的,你可以采取,而不是约束上的信心。

另外,我们使用贝叶斯统计而这正是你所描述的第二种方法的形式化。 埃文·米勒竟然出现了随访后这个,他说:

该解决方案我先前提出的 - 使用下界围绕均值置信区间的 - 就是计算机程序员调用黑客攻击。 它的工作原理不是因为它是一个普遍的最佳解决方案,但由于它大致对应于我们的直观的,我们想看到什么在最佳级列表的顶部感:用是坏的概率最小的项目,给出的数据。

贝叶斯统计让我们形式化直觉...

使用贝叶斯排序方法,具有零个数据的任何一点将回落到之前平均(你指的是初始分数),然后移动远离它,因为它收集数据。 这也是在IMDB用于计算其顶部电影名单的做法。 https://math.stackexchange.com/questions/169032/understanding-the-imdb-weighted-rating-function-for-usage-on-my-own-website

你建议贷记每个对象4个upvotes和4个downvotes的具体方法是等于将0.5的平均重量为8票。 由于不存在任何其他的数据,这是一个良好的开端。 拉普拉斯有句名言:在日出问题的事件应该与1次成功和失败的1记。 在项目的排名问题,我们有很多更多的知识,所以是有意义的设置之前平均等于平均排名。 在此之前平均(或速度有多快,你动过它作为数据的功能,也称为前方差)的重量可以是具有挑战性的设置。

对于250强电影IMDB的排名,他们使用的7.1,平均排名的电影具有重量的25000票,这相当于对待所有电影,如果他们开始与25000“免费”票评级的7.1



文章来源: unrated versus negative-rated entities with Wilson score — how to handle?