Menu
CoddyTech

特征和标签

本课属于 Coddy Machine Learning 学习旅程的“数据与图表”单元。第 53 课,共 60 课。

模型通过输入和答案进行学习,所以你要给它两样东西:X,即特征;以及 y,即标签,每个样本对应一个:

六行鸢尾花数据分成两部分:X 是一个网格,每行包含四个浅蓝色的测量值;旁边是 y,每行有一个深蓝色标签(0, 0, 1, 1, 2, 2)

使用 as_frame=True 加载的数据集已同时准备好:

iris = load_iris(as_frame=True)
X = iris.data
y = iris.target
print(X.shape, y.shape)

输出结果为:

(150, 4) (150,)

X 的第 i 行表示一朵花,y[i] 表示它的品种。标签不能放在 X 中:能读取答案的模型什么也学不到。

然后用 y.value_counts() 统计各个类别的数量:iris 中每个类别都有 50 个样本,这是一个平衡的数据集。

challenge icon

挑战

中等

scikit-learn 中的手写数字图像是 8×8 像素的图片,每张图片都存储为 64 个像素数值(即特征),并标注了图片所显示的数字:

load_digits 中的 10 个手写数字,从 0 到 9,分成两行,每行 5 个,每个都是深色墨迹绘制在白底上的块状 8×8 图片

队友拆分的数据打印出 X: (1797, 65):他们的 X 仍然包含答案。

  1. 修正 X,使其只包含 64 个像素特征。
  2. 在准备好的语句下方,打印程序读取的数字 d 出现的样本数量。

对于输入 3:

X: (1797, 64)
y: (1797,)
Samples of digit 3: 183

亲手试试

from sklearn.datasets import load_digits

digits = load_digits(as_frame=True)
d = int(input())

# 特征和标签
X = digits.frame
y = digits.target

# 不要修改下面的代码行
print(f"X: {X.shape}")
print(f"y: {y.shape}")

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

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

数据与图表中的所有课

自己练习: Python 在线编译器