单元四

第16课 课程项目:自选任务与诚信提醒

任务场景:自选小项目,诚实报告训练与测试分数
任务场景:自选小项目,诚实报告训练与测试分数
原理图:训练很高、测试很低 → 警惕过拟合
原理图:训练很高、测试很低 → 警惕过拟合

一、任务目标

完成一个自选分类或回归小项目,并同时报告训练与测试表现。

二、核心概念讲清楚

诚信规范:不伪造分数、不隐藏测试集泄漏、引用别人代码要标注。

  • 写清数据来源
  • 写清自己完成的部分
  • 报告测试集真实指标
1列出清单数据/模型/指标
2复现关键实验固定随机种子
3写说明成功与不足
4互相检查同伴能否看懂

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

写「使用 sklearn 自带 iris,测试正确率 0.93,未做额外清洗」。

易错:只给最高分截图,不说明划分方式。

正确:别人按说明能得到相近结果。

想一想:为什么「可复现」也是诚信的一部分?

四、解题思路

任务:完成一个自选分类或回归小项目,并同时报告训练与测试表现。 先想清楚:输入是什么、处理后得到什么、屏幕上应出现什么。

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

  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.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
)
model = KNeighborsClassifier(n_neighbors=5)
model.fit(X_train, y_train)
train_acc = accuracy_score(y_train, model.predict(X_train))
test_acc = accuracy_score(y_test, model.predict(X_test))
print("训练正确率:", round(train_acc, 3))
print("测试正确率:", round(test_acc, 3))
print("若训练很高、测试低很多 → 可能过拟合")

八、课堂练习

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

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

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

  3. 训练很高、测试低很多,更可能是?

  4. 下列哪项符合诚信?

九、本节小结

本课侧重诚信提醒:会拆分、会报告训练/测试两边指标。下一单元深入评估读数、过拟合对比、Pipeline,并完成结课项目清单。