寻找异常值

在前面的实验中我们学习过四分位数。四分位数,是指将一组数据值按大小排序后分成四等分,每一部分包含 1/4 的数据,这种划分的分割点就是四分位数。其中第1部分和第2部分的分割点称为第1分位数 Q 1 , 也被称为第25百分位数(上四分位),第3部分和第4部分的分割点称为第3四分位数Q 3,也被称为第75百分位数(下四分位)。而第二部分和第三部分的分割点是第2四分数,也就是中位数。其中四分位距 IQR是指第三四分位数和第一分四分位数的差,也就是 IQR = Q3 - Q1。

所有小于 Q1 - 1.5IQR或大于 Q3 + 1.5IQR 的数据项被称为异常值。

编写一个查找上文中定义的异常值的函数,函数接受一个列表参数,代表数据序列。函数将查找列表中的所有异常值,并将所有异常值作为列表返回。
代码如下:

import numpy as np


def find_outlier(data):
    outlier = []
    Q1 = np.percentile(data, 25)
    Q3 = np.percentile(data, 75)
    IQR = Q3 - Q1
    for item in data:
        if item < Q1 - 1.5 * IQR or item > Q3 + 1.5 * IQR:
            outlier.append(item)

    return outlier


if __name__ == '__main__':
    l = [-100, -30, -20, -10, 0, 10, 15, 35, 50, 160]
    result = find_outlier(l)
    print(result)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容