箱图在数据预处理中的应用

1. 箱图简介

箱型图是一种用作显示一组数据分布情况的统计图,因型状如箱子而得名。

1977年由美国著名统计学家约翰·图基(John Tukey)发明。它能显示出一组数据的最大值、最小值、中位数及上下四分位数。

箱型图示例

其中,中位数(50%)上四分位数(75%) 下四分位数(25%)都很好理解。
上边缘
下边缘
的概念是不确定的,一般有以下几种情况(不限于以下几种情况):

  1. 所有数据中的最大值和最小值
  2. 在[Q1-1.5IQR, Q3+1.5IQR]范围里的极小值和极大值 (通常被称为Tukey Boxplot)
  3. 在平均数的基础上上下浮动一个标准差
  4. 第9百分位数,第91百分位数
  5. 第2百分位数,第98百分位数
  6. 等等。。。

至于异常值,也就是比上边缘大,比下边缘小的值,如果上下边缘是左右数据中的最大值和最小值,那么就不会有异常值。

2. 数据预处理中的箱图

箱图最大的优势是以一种简单的方式显示了数据的分布情况。

而我们在数据预处理之前,整体上了解数据各个特征的分布情况是非常有必要的,通过箱图,了解数据的质量。

比如:

  1. 偏离中间值的情况,看中位数的位置
  2. Q1和Q3之间数据的量,看箱体的长短
  3. 异常值多不多,偏离大不大,通过调整上下边缘来查看

了解数据各个特征(也就是每列)的质量和分布情况,有助于后续决策如何清洗数据,如何选择合适的算法来分析不同的特征。

3. 示例

最后,通过一个简单的实例来演示如何通过箱图来检验数据的情况的。

数据来源:国家统计局历年粮食产量的统计数据。

数据比较多,这里为了演示,只取了3列来作图。

中稻和一季晚稻单位面积产量(公斤/公顷)

亚麻单位面积产量(公斤/公顷)

其他谷物单位面积产量(公斤/公顷)

... ...

黄红麻单位面积产量(公斤/公顷)

前3列数据如下:

python 复制代码
print(data)

根据3个特征箱图如下:

python 复制代码
box1, box2, box3 = data["中稻和一季晚稻单位面积产量(公斤/公顷)"], data["亚麻单位面积产量(公斤/公顷)"], data["其他谷物单位面积产量(公斤/公顷)"]

plt.title("sample for 箱图")
labels = ["中稻和一季晚稻", "亚麻", "其他谷物"]

plt.boxplot([box1, box2, box3], labels=labels)
plt.show()

从图中可以看出,其他谷物的数据分布比较平均,而中稻和一季晚稻的数据偏重于上半部,亚麻的数据没有明显的偏重。

此外,只有一个异常值(中稻和一季晚稻的零值数据)。

箱图的默认上下边缘数据是 Q3 + whis*(Q3-Q1) 和 Q1 - whis*(Q3-Q1),其中 whis = 1.5

我们可以通过调整 whis 的大小来调整上下边缘的值,比如:

python 复制代码
plt.boxplot([box1, box2, box3], labels=labels, whis=0.5)

这里 whis 设置为0.5,缩小了上下边缘的间距,异常值就增多了。

4. 总结

通过箱图,可以直观看出整个数据中各个特征的分布情况。

在数据预处理之前,用来了解收集数据的概况时大有帮助。

关于matplotlib绘图相关内容,可参考专栏: matplotlib

相关推荐
reasonsummer3 分钟前
【教学类-70-06】20260104“折纸-花纹镜”(花纹图案+上下打孔+无学号框)小2班第一次尝试
python·通义万相
YJlio20 分钟前
PsPing 学习笔记(14.8):常见错误与排障实战(超时、拒绝连接、权限问题)
开发语言·笔记·python·学习·django·pdf·pygame
wjykp27 分钟前
part6 PyTorch
人工智能·pytorch·python
拾柒SHY1 小时前
Python爬虫入门自学笔记
笔记·爬虫·python
Franciz小测测1 小时前
如何实现 Web 触发后的“离线”升级?Systemd 异步机制与 A/B 状态机切换详解
python·部署·自动升级·离线升级
小北方城市网1 小时前
第 9 课:Python 全栈项目性能优化实战|从「能用」到「好用」(企业级优化方案|零基础落地)
开发语言·数据库·人工智能·python·性能优化·数据库架构
E_ICEBLUE1 小时前
PPT 智能提取与分析实战:把演示文档变成结构化数据
数据库·python·powerpoint
JSU_曾是此间年少1 小时前
pytorch自动微分机制探寻
人工智能·pytorch·python
敢敢のwings2 小时前
VGGT-Long:极简主义驱动的公里级单目三维重建系统深度解析(Pytorch安装手册版)
人工智能·pytorch·python
aiguangyuan2 小时前
CART算法简介
人工智能·python·机器学习