异常值&离群点检测算法---箱线图四分位检测

一、四分位距检测法介绍

在数据处理的过程中,异常值的检测和处理是一个较小的分支,检测的方法也有很多种,本文只介绍其中一种:四分位距法,虽然常见但功能强大。

这种方法是利用箱线图的四分位距(IQR)对异常值进行检测,也叫Tukey`s  test。其提供了识别异常值的一个标准:异常值通常被定义为小于QL-1.5IQRQU+1.5IQR

  • QL:下四分位数,表示全部观察值中有四分之一的数据取值比它小;
  • QU:上四分位数,表示全部观察值中有四分之一的数据取值比它大;
  • IQR:四分位间距,是上四分位数QU与下四分位数QL之差,期间包含了全部观察值的一半。

其中

最小估计值便为:QL - k * IQR

最大估计值便为:QU + k * IQR

k=1.5(中度异常)

k=3(重度异常)

正常数据的阈值即为k倍的四分位距外的数据判定为异常数据。

总结:箱线图依据实际数据绘制,没有对数据作任何限制性要求(比如数据要服从某某分布),它只是真实直观的表现数据分布的本来面貌;另一方面,箱线图判断异常值的标准以四分位数和四分位距为基础,四分位数具有一定的鲁棒性:多大25%的数据可以变得任意远而不会很大的扰动四分位数,所以异常值不能对这个标准施加影响。由此可见,箱线图识别异常值的结果比较客观,在识别异常值方面具有一定的优越性。

二、python实现

1、画图查看

我们先构造一个随机数列

import numpy as np
# 生成随机数列列表
data = list(np.random.randint(30,60,50))

# 往随机数列列表中插入两个较大值,作为异常值
data.append(123)
data.append(89)

import matplotlib.pyplot as plt

# 先观察折线图
plt.plot(data)

折线图如下,最后添加的两个异常值较为明显

(图为后补) 

箱线图如下,

plt.boxplot(data)

2、利用numpy库np.percentile计算四分位数

import numpy as np

np.percentile(data,[25,50,75])

>>> array([41., 49., 55.])   #对应的分别为下四分位数、中位数、上四分位数

  • 4
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
离群点(Outliers)是数据集中与其他数据点显著不同的观测值。离群点检测(Outlier Detection)是指寻找这些离群点的过程。在Python中,有多种方法可以进行离群点检测。 一种常用的方法是基于统计学的离群点检测方法,例如Z-Score方法或箱线图方法。Z-Score方法利用数据的标准偏差来判断数据点是否为离群点,一般将Z-Score大于某个阈值(例如3)的数据点认为是离群点。箱线图方法则利用数据的四分数范围来判断离群点,一般通过设定上下界来确定离群点。 另一种方法是基于聚类的离群点检测方法,例如DBSCAN(Density-Based Spatial Clustering of Applications with Noise)算法。DBSCAN算法通过将数据点划分为核心点、边界点和噪音点,并通过密度连通性来确定离群点。 还有一种流行的方法是基于机器学习的离群点检测方法,例如孤立森林(Isolation Forest)算法。孤立森林算法通过构建一棵随机的分割树来判断数据点是否为离群点,通过计算数据点的路径长度来确定离群点。 在Python中,可以使用一些库来实现这些离群点检测方法,如scikit-learn、statsmodels等。这些库提供了简便的API和丰富的功能,可以帮助我们进行离群点检测并进行进一步的分析和处理。 总而言之,在Python中进行离群点检测是一个相对简单且灵活的过程,可以根据具体需求选择适合的方法和库来进行处理。离群点检测对于数据分析和异常检测等领域具有重要的应用价值,并且在实际问题中有着广泛的应用。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旋转小马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值