回顾:调整决策树
本课属于 Coddy Machine Learning 学习旅程的“监督学习”单元。第 36 课,共 58 课。
挑战
中等烘焙机的传感器会读取每批咖啡豆的 6 个值;1 表示可以装袋。请如实选择树的深度。
- 分出 20% 用于测试,然后从剩余数据中分出 25% 用于验证(
random_state=0)。 - 对于深度 1 到 10,在训练行上拟合一棵树(
random_state=0);绘制它在训练集和验证集上的准确率,使用marker="o",并分别标记为training和validation。 - 打印最佳深度,然后打印它在测试集上的准确率。
- 用虚线标出该深度,并用红色星形标记测试分数;添加图例。
另一位烘焙师打印出:
Best depth: 5 (validation accuracy 0.887)
Test accuracy: 0.750并绘制了下图。随后,Coddy 会描述你的图表。
亲手试试
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
# make_classification 会生成贴近真实情况的数据行供你练习:这里有 400 批咖啡,
# 每批有 6 个烘焙机传感器读数,准备好装袋时标签为 1。
X, y = make_classification(n_samples=400, n_features=6, n_informative=3, n_redundant=1,
flip_y=0.1, random_state=79)
fig, ax = plt.subplots()
ax.set_title("Coffee Batches: Choosing a Depth")
ax.set_xlabel("Tree depth")
ax.set_ylabel("Accuracy")
# 在下方编写你的代码
监督学习中的所有课
自己练习: Python 在线编译器