【漫话机器学习系列】264.内距(又称四分位差)Interquartile Range

深入理解内距(Interquartile Range,IQR)——数据分析中的异常值利器

在日常的数据分析中,我们经常需要识别和处理异常值(Outliers),而内距(Interquartile Range,简称 IQR)是一个非常实用的工具。本文将通过一张直观的图示,深入讲解 IQR 的概念、计算方法及其在异常值识别中的重要作用。


一、什么是内距(IQR)?

内距(Interquartile Range) 又称 四分位差,是描述数据分布集中趋势和离散程度的一种重要统计量。

它定义为:

\text{IQR} = Q3 - Q1

其中:

  • Q1:第一四分位数(25%分位数)

  • Q3:第三四分位数(75%分位数)

IQR 表示的是中间 50% 数据的跨度,即从 25% 到 75% 之间数据的范围,能有效排除极端值的影响。


二、图示解读:IQR 与箱型图的关系

下面是 Chris Albon 的一张经典图解,非常直观地展示了 IQR 在箱型图(Boxplot)中的作用。

图中关键说明:

  1. 中间的盒子部分 表示从 Q1 到 Q3,即 IQR 范围。

  2. 盒子中间的竖线 表示中位数(Q2),也称第 2 四分位数。

  3. 左侧边缘线 是 Q1 - 1.5 × IQR,称为“下边缘值”。

  4. 右侧边缘线 是 Q3 + 1.5 × IQR,称为“上边缘值”。

  5. 边缘线以外的值 即为可能的异常值(Outliers)。


三、IQR 异常值判断准则

使用 IQR 判断异常值的方法,是统计分析中最常见也最稳健的方法之一:

  • 异常值判定区间

    • 低于 Q1−1.5×IQR

    • 高于 Q3+1.5×IQR

更严格时,可以使用:

  • 极端异常值判定:

    • 低于 Q1−3×IQR

    • 高于 Q3+3×IQR

这种方法相比于标准差法(均值 ± n × 标准差)更不容易受极端数据的影响,尤其适合非正态分布的数据集。


四、IQR 实战应用场景

  1. 数据清洗
    利用 IQR 自动识别并剔除异常值,提高数据质量。

  2. 可视化分析(箱型图)
    快速判断数据是否偏态、是否存在离群点。

  3. 机器学习特征工程
    对离群值进行截断处理或归一化前的预处理,提升模型鲁棒性。


五、代码实操(以 Python 为例)

import numpy as np

# 示例数据
data = np.array([10, 12, 13, 14, 15, 16, 100])

# 计算 IQR
Q1 = np.percentile(data, 25)
Q3 = np.percentile(data, 75)
IQR = Q3 - Q1

# 异常值上下界
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

# 找出异常值
outliers = data[(data < lower_bound) | (data > upper_bound)]

print("IQR:", IQR)
print("异常值:", outliers)

输出结果会识别出 100 这个远离其余数据点的异常值。


六、总结

  • IQR 是一种稳健的离散度量,适合用于非正态分布的数据。

  • 在数据分析、可视化和特征工程中都有广泛应用。

  • 搭配箱型图使用,能非常直观地识别异常点。


如果你觉得这篇文章有帮助,欢迎点赞、收藏、关注我,一起深入学习更多数据科学与机器学习的实用知识!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值