单元四

第15课 小流水线:拆分→训练→评估

任务场景:按规范顺序走完拆分、缩放、训练、评估
任务场景:按规范顺序走完拆分、缩放、训练、评估
原理图:拆分 → 缩放 → fit → 测试集评估
原理图:拆分 → 缩放 → fit → 测试集评估

一、任务目标

按固定顺序完成「拆分→(标准化)→训练→评估」。

二、核心概念讲清楚

小流水线:按顺序执行预处理与模型。后面会用官方 Pipeline 更规范。

  • 顺序固定:先缩放再模型
  • 训练时整条链一起 fit
  • 预测时自动先做同样预处理
1定义步骤缩放器 + 分类器
2串联保证顺序
3fit 训练一次完成
4predict 评估同一套变换

三、跟着想一遍(小例子)

先 StandardScaler,再 KNN:预测新人时也会先按训练集规则缩放。

易错:训练时缩放了,预测时忘记缩放。

正确:用流水线保证训练/预测一致。

想一想:流水线最怕哪一步漏掉?

四、解题思路

任务:按固定顺序完成「拆分→(标准化)→训练→评估」。 先想清楚:输入是什么、处理后得到什么、屏幕上应出现什么。

本课主要用到:屏幕输出。

  1. 1明确任务「按固定顺序完成「拆分→(标准化)→训练→评估」。」:运行后你希望看到什么结果(文字、图形或计算结果)。
  2. 2用 print 把结果说出来,确认屏幕上出现预期内容。
  3. 3对照参考代码跑通后,只改一个参数,观察结果如何变化。

流程示意(可对照左侧文字)

明确任务「按固定顺序完成……用print把结果说出来,…对照参考代码跑通后,只改一…

五、语句功能讲解

本课用到的 Mixly 图形块均已在前面的课讲过。请直接对照编程练习搭积木;若有遗忘,回到该积木首次出现的课页复习。

六、知识点讲解

小流水线:拆分→训练→评估:对照任务看清输入、判断与可观察输出;改一处输入,确认输出跟着变。
  • 能用自己的话复述:输入是什么、按什么规则变、输出应怎样。
  • 练习时改一处、看一处,确认现象和概念对得上。

先弄清本课输入与输出,再进编程练习对照现象。

七、编程练习

先理解上面的例子,再在下方 Mixly 运行与检查(含 scikit-learn)。

四步齐全。

参考代码(对照抄写到下方 Mixly)
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.25, random_state=0
)
scaler = StandardScaler()
X_train_s = scaler.fit_transform(X_train)
X_test_s = scaler.transform(X_test)

clf = KNeighborsClassifier(n_neighbors=3)
clf.fit(X_train_s, y_train)
acc = accuracy_score(y_test, clf.predict(X_test_s))
print("流水线正确率:", round(acc, 3))

八、课堂练习

先完成两道正误判断,再做其余题目;选出后点「检查」。

  1. 判断:只抄参考代码,不看运行输出,也不改参数验证。

  2. 判断:先跑通,再对照「流水线步骤」改一处输入/参数,确认输出按预期变化;答错小测时读讲解。

  3. StandardScaler 应在何时 fit?

  4. 评估应主要看?

九、本节小结

规范顺序能减少「分数虚高」。