当前位置: 首页 > article >正文

【漫话机器学习系列】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 是一种稳健的离散度量,适合用于非正态分布的数据。

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

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


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

http://www.lryc.cn/news/2383260.html

相关文章:

  • 海外盲盒系统开发:重构全球消费体验的科技引擎
  • 高噪声下扩展边缘检测算子对检测边缘的影响
  • vuejs处理后端返回数字类型精度丢失问题
  • mysql数据库-中间件MyCat
  • 手搓四人麻将程序
  • PotPlayer 安装 madVR、LAV Filters 以提升解码能力和视频音频效果
  • 阿里云域名 绑定 华为云服务器ip
  • windows7安装node18
  • Maven配置安装
  • 小刚说C语言刷题—1153 - 查找“支撑数”
  • Kind方式部署k8s单节点集群并创建nginx服务对外访问
  • K个一组链表翻转
  • Python60日基础学习打卡D32
  • 面向恶劣条件的道路交通目标检测----大创自用(当然你也可以在里面学到很多东西)
  • 基于Java(SSM)+MySQL实现(Web)具有智能推荐功能的图书销售系统
  • 浙大团队研发Earth Explorer系统,探索深时演化/地学剖面/科研场景,赋能深时地球科学研究
  • docker 启动一个python环境的项目
  • 31-35【动手学深度学习】深度学习硬件
  • Linux问题排查-内存使用率高如何分析原因
  • SpringMVC2
  • 【每日一题丨2025年5.12~5.18】排序相关题
  • ElasticSearch性能优化
  • Typora + PicGo + GitHub 配置图床——图片自动上传 详细教程
  • QT+Visual Studio 配置开发环境教程
  • 缺乏经验的 PCB 过孔建模方法
  • layui 介绍
  • 【漫话机器学习系列】265.普拉托变换的相关问题(Issues With Platt Scaling)
  • 【Linux高级全栈开发】2.2.1 Linux服务器百万并发实现2.2.2 Posix API与网络协议栈
  • LlamaIndex
  • springboot使用xdoc-report包导出word