【问题标题】:Understanding numpy percentile computation了解 numpy 百分位数计算
【发布时间】:2019-06-08 18:00:53
【问题描述】:

我通过许多示例了解考试成绩中的百分位(例如,您的 SAT 分数落在第 99 个百分位),但我不确定我在以下上下文中理解了百分位以及发生了什么。想象一个模型输出概率(有时我们有很多新数据和输出概率,有时我们没有)。想象一下,我想计算输出概率的第 99 个百分位。以下是今天的概率:

a = np.array([0,0.2,0.4,0.7,1])
p = np.percentile(a,99)
print(p)

0.988

我不明白在这种只有 5 个输出概率的情况下如何计算第 99 个百分位数。输出是如何计算的?谢谢!

【问题讨论】:

    标签: python numpy statistics ranking percentile


    【解决方案1】:

    应用线性插值。您可以自己检查一致性:

    a = np.array([0,0.2,0.4,0.7,1])
    
    np.sort(a)  # array([ 0. ,  0.2,  0.4,  0.7,  1. ])
    
    np.percentile(a, 75)   # 0.70
    np.percentile(a, 100)  # 1.0
    np.percentile(a, 99)   # 0.988
    
    0.70 + (1.0 - 0.70) * (99 - 75) / (100 - 75)  # 0.988
    

    文档还有specifies 'linear' as the default:

    numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)

    'linear'i + (j - i) * fraction,其中fraction 是由ij 包围的索引的小数部分。

    【讨论】:

    • 谢谢!这很有意义。我一直在大型数据集的背景下做百分位数,但这是非常清晰和合理的。
    猜你喜欢
    • 2017-01-11
    • 2011-01-23
    • 2011-12-29
    • 2013-06-20
    • 1970-01-01
    • 2016-07-28
    • 2017-08-29
    • 2012-10-28
    • 2021-02-26
    相关资源
    最近更新 更多