Menu
CoddyTech

回顾:调整决策树

本课属于 Coddy Machine Learning 学习旅程的“监督学习”单元。第 36 课,共 58 课。

challenge icon

挑战

中等

烘焙机的传感器会读取每批咖啡豆的 6 个值;1 表示可以装袋。请如实选择树的深度。

  1. 分出 20% 用于测试,然后从剩余数据中分出 25% 用于验证(random_state=0)。
  2. 对于深度 1 到 10,在训练行上拟合一棵树(random_state=0);绘制它在训练集和验证集上的准确率,使用 marker="o",并分别标记为 training 和 validation。
  3. 打印最佳深度,然后打印它在测试集上的准确率。
  4. 用虚线标出该深度,并用红色星形标记测试分数;添加图例。

另一位烘焙师打印出:

Best depth: 5 (validation accuracy 0.887)
Test accuracy: 0.750

并绘制了下图。随后,Coddy 会描述你的图表。

咖啡豆批次:选择深度。训练曲线从 0.69 上升到接近 1.0;验证曲线在深度为 5 时达到峰值 0.89,之后下降到 0.78。深度为 5 处有一条虚线,线上 0.75 处有一个红色星形标记,表示测试分数

亲手试试

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 在线编译器