看了如何不至按平均评分我想我应该给它一个尝试。
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=0
和neg>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
这是更接近得分排序我想要的和数值劈我想这是可行的,但我不能在数学上证明它
有没有更好的办法,一个“正确”的方式?