Menu
CoddyTech

同时查看所有特征

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

30 个特征需要 30 个直方图。把它们排成一个小图表网格会更容易浏览,例如下面这 4 个鸢尾花特征:

4 个小直方图按 2×2 网格排列,每个图对应一个鸢尾花特征:两个萼片直方图都是单峰,两个花瓣直方图都分成左右两部分,左边是一个小块,右边是一个宽峰

循环会填充网格,为每个特征绘制图表 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 会按行依次排列这些图表:

一个由 2 行 3 列组成的网格,单元格按行排列,先是第 0 行,再是第 1 行,编号为 axs.flat 0 到 5,每个单元格下方都标有对应的行和列

fig.tight_layout() 会让标题彼此分开。现在来看:两个花瓣直方图都分成了两部分。这样的间隔通常说明某个类与其他类分开了,所以保留这个特征。

challenge icon

挑战

中等

查看完整的组织数据。输入会选择一个组,mean、error 或 worst,起始代码会将该组的前 6 个特征名称放入 names。

  1. 创建一个 2 行 3 列的网格。
  2. 在图表 i 中,用 20 个箱绘制特征 i 的直方图,并将其名称设为标题。
  3. 整理布局,然后显示图表。

例如这个包含 6 种葡萄酒特征的网格:

6 个小型直方图,排列为 2 行 3 列,标题分别为 alcohol、malic_acid、ash、alcalinity_of_ash、magnesium 和 total_phenols,每个直方图有 20 个柱

你的程序不会输出任何内容: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]

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

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

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

自己练习: Python 在线编译器