Menu
CoddyTech

箱线图

本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 24 课,共 64 课。

每个数据集里都藏着一些异常值:一个拼写错误、一个故障,或创纪录的一天。本章会找出并处理它们,先从能显示这些值的图表开始,也就是箱线图:

11 个播客单集时长以点表示,旁边是它们的箱线图:箱体从 Q1 的 39 延伸到 Q3 的 47.5,由位于 43 的中位数线分隔;下须延伸到 32,上须延伸到 52,另有一个标记为离群值的孤立点 75

ax.boxplot 会绘制它:

episodes = np.array([41, 36, 49, 43, 32, 46, 75, 40, 52, 38, 44])
fig, ax = plt.subplots()
ax.boxplot(episodes)
plt.show()

箱体包含从 Q1 到 Q3 的中间一半数据,并由中位数分成两部分。须线延伸至距离不太远的最远数据值。

远离其他点的点是异常值,也就是与其他值相差很大的值:在模型从这些值中学习之前,先检查一下。

challenge icon

挑战

中等

一个家庭记录了两周的阅读情况,数据保存在 reading.csv 中,每个人一列,记录阅读分钟数。程序会读取一个姓名,起始代码会设置好图表。

  1. 绘制该读者所在列的箱线图。
  2. 打印其中位数和箱体边缘 Q1、Q3,并将它们四舍五入到小数点后 2 位,如下所示。

对于另一位读者 Sam,程序会打印:

Typical day: 97.5 minutes
Middle half: 90.5 to 108.75 minutes

并绘制下图(Coddy 随后会描述你绘制的图表):

箱线图标题为“阅读:Sam”,纵轴标注分钟数:箱体范围约为 90 到 109,中位数线接近 98,须线范围为 87 到 128,离群点位于 61 和 205

亲手试试

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

reading = pd.read_csv("reading.csv")
name = input()
# 不要修改下面的代码行
fig, ax = plt.subplots()
ax.set_title(f"Reading: {name}")
ax.set_ylabel("Minutes")

# 在下面编写你的代码
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

机器学习统计学中的所有课

自己练习: Python 在线编译器