【推荐算法】威尔逊区间排序算法

什么是威尔逊区间?

此处省略一万多个字

假设你已经是个成熟的程序猿了。不需要给你说理论了。。直接上代码吧

php版本

echo  wilsonScore_2(300, 13/300, 2);
function  wilsonScore_2($n, $p, $z){
    $a_1 = ((1 / (2 * $n)) * ( pow($z,2)));
    $b_1 =  $z * sqrt(($p * (1 - $p) / $n) + ( pow($z,2) / (4 * (pow($n,2)))));
    $c_1 = 1 + ((1 / $n) * ( pow($z,2)));
    $numerator = $p + $a_1 - $b_1;
    $res = $numerator/$c_1;
    return $res;
}

python版本

def _cal_wilson_lower_level(n, p, z):
    """计算威尔逊区间下限
       # n: int, 浏览次数
       # p: float, 浏览下载比
       # z: float, z值"""

    numerator = p + ((1 / (2 * n)) * (z ** 2)) - \
                (z * (((p * (1 - p) / n) +
                       (z ** 2 / (4 * (n ** 2)))) ** (1 / 2)))
    denominator = 1 + ((1 / n) * (z ** 2))
    return numerator / denominator

_cal_wilson_lower_level(300, 13/300, 2)


posted @ 2020-12-02 09:43  依然范儿特西  阅读(884)  评论(0编辑  收藏  举报