同时查看所有特征
本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 57 课,共 64 课。
30 个特征需要 30 个直方图。把它们排成一个小图表网格会更容易浏览,例如下面这 4 个鸢尾花特征:
循环会填充网格,为每个特征绘制图表 i:
names = iris.feature_names
fig, axs = plt.subplots(2, 2)
for i in range(4):
ax = axs.flat[i]
ax.hist(iris.frame[names[i]], bins=15)
ax.set_title(names[i])
fig.tight_layout()
plt.show()plt.subplots(2, 2) 会创建一个图表网格,axs.flat 会按行依次排列这些图表:
fig.tight_layout() 会让标题彼此分开。现在来看:两个花瓣直方图都分成了两部分。这样的间隔通常说明某个类与其他类分开了,所以保留这个特征。
挑战
中等查看完整的组织数据。输入会选择一个组,mean、error 或 worst,起始代码会将该组的前 6 个特征名称放入 names。
- 创建一个 2 行 3 列的网格。
- 在图表
i中,用 20 个箱绘制特征i的直方图,并将其名称设为标题。 - 整理布局,然后显示图表。
例如这个包含 6 种葡萄酒特征的网格:
你的程序不会输出任何内容:Coddy 会为每张图表添加说明。
亲手试试
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
group = input()
cancer = load_breast_cancer(as_frame=True)
df = cancer.frame
# 该组的前 6 个特征名称:mean、error 或 worst
start = {"mean": 0, "error": 10, "worst": 20}[group]
names = cancer.feature_names[start:start + 6]
# 在下方编写你的代码
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
机器学习统计学中的所有课
自己练习: Python 在线编译器