gpt4 book ai didi

python - 识别突出的值(value)观

转载 作者:行者123 更新时间:2023-11-30 22:38:53 32 4
gpt4 key购买 nike

给定一个字典:

data = {'18': [3.89, 1.28], '20': [1.39, 3.15], '15': [1.42, 3.10]}

我想挑选出与其他内容明显不同的项目,如 18 中所示。理想情况下,我会指定 ALLOWED_DISCREPANCY,将其设置为 0.5 以进行演示,这是一个对突出和不突出的内容进行分类的阈值(与其余值相比)。

18 及其 3.89 在这里显然是偏离的,因为大多数值都在 1.4 左右(比较每个列表中的任一值就足以得出结论)和差异 (abs(3.89 - 1.4)) 大于 0.5(允许的最大值)。

最佳答案

如果您想要一种更加统计的方法来查找异常值,您可以执行以下操作:

data = {'18': [3.89, 1.28], '20': [1.39, 3.15], '15': [1.42, 3.10]}

avg = np.mean([x for sublist in data.values() for x in sublist])
stddev = np.std([x for sublist in data.values() for x in sublist])

对于一个标准差:

n_stddevs = 1

{k: [x for x in v if x >= avg-stddev*n_stddevs and x <= avg+stddev*n_stddevs] for k, v in data.items()}

# {'15': [1.42, 3.1], '18': [], '20': [1.39, 3.15]}

对于 2:

n_stddevs = 2

{k: [x for x in v if x >= avg-stddev*n_stddevs and x <= avg+stddev*n_stddevs] for k, v in data.items()}

#{'15': [1.42, 3.1], '18': [3.89, 1.28], '20': [1.39, 3.15]}

对于 0.5:

n_stddevs = 0.5

{k: [x for x in v if x >= avg-stddev*n_stddevs and x <= avg+stddev*n_stddevs] for k, v in data.items()}

# {'15': [], '18': [], '20': []}

关于python - 识别突出的值(value)观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43390925/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com