Menu
CoddyTech

按组绘制箱线图

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

两组之间的差异是实际存在的,还是偶然造成的?本章最后用这张图来回答:

随机打乱后产生的 1000 个差值形成的直方图,集中在 0 附近,左边缘远处的红线表示实际差异

先从观察开始。一个陶艺工作室记录了两座窑的运行时间。给 ax.boxplot 传入一组数据列表和它们的名称:

gas = np.array([6.5, 7, 7.5, 8, 7, 6.5, 8.5, 7.5])
electric = np.array([9, 10.5, 11, 9.5, 12, 10, 10.5, 15])
fig, ax = plt.subplots()
ax.boxplot([gas, electric], tick_labels=["Gas", "Electric"])
ax.set_ylabel("Hours")
plt.show()

同一坐标轴上的两个箱线图:Gas 较低,中位数约为 7.25 小时;Electric 较高,中位数约为 10.5 小时,并有一个位于 15 的离群点。两个箱体没有重叠

这些框甚至没有重叠:气体燃烧得更快。对于模型来说,框几乎不重叠的特征有助于区分不同组。

challenge icon

挑战

中等

一家滑雪度假村记录了三条缆车线路的 36 次乘坐时间。lifts.csv 包含 lift(Red、Green 或 Blue)和 minutes;起始代码会加载文件并设置图表。

  1. 遍历 names,并将每条缆车线路的分钟数收集到一个列表中。
  2. 为每条缆车线路绘制一个箱线图,并使用 tick_labels= 命名。
  3. 显示图表。

它不会打印任何内容;Coddy 会描述每个箱线图。另外两条缆车线路如下所示:

标题为 Lift Times 的图表,包含两个名为 Orange 和 Purple 的箱线图:Orange 的数值较低,约为 18 分钟;Purple 的数值较高,约为 27.5 分钟,并有一个位于 44 的离群点

亲手试试

import pandas as pd
import matplotlib.pyplot as plt

lifts = pd.read_csv("lifts.csv")
names = ["Red", "Green", "Blue"]
# 不要修改下面的代码行
fig, ax = plt.subplots()
ax.set_title("Lift Times")
ax.set_xlabel("Lift")
ax.set_ylabel("Minutes")

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

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

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

自己练习: Python 在线编译器