单元二
第8课 先学后考再打分——训练集、测试集与正确率

一、任务目标
理解训练集用来学习、测试集用来检查,正确率是测对的比例;能把样本分开,并算出测试正确率。
二、我们要学什么
- 学习要点:先学后考再打分|训练集、测试集与正确率
- 本课过关:能完成:说出不能用同一批数据既学又考;载入体验程序,指出先在训练集上建立规则,再在测试集上计分;测试标签改错后,正确率跟着变。
- 示例对齐:体验题对应本课「编程体验」;完整代码对应编程题1;补全与独立编写对应编程题2–3。均在 Mixly 图形化积木中完成。
三、本节要点
本课要认识训练、测试与正确率。重难点是测试样本不得出现在训练中,否则「全对」可能只是背题。要点对齐「先学后考再打分|训练集、测试集与正确率」。
1读场景明确真实任务
2对要点先学后考再打分|训练集、测试集与正确率
3载入运行图形化积木
四、解题思路
任务:分开训练与测试,并计算正确率。请分清:训练用哪一批,考试用哪一批。
本课主要用到:Mixly 图形化积木与屏幕输出。
- 1明确任务「先学后考」:输出应是测试集上的正确率。
- 2用训练集建立规则,再用测试集逐条对照标签。
- 3改一处测试标签后重算,观察正确率是否跟随。
流程示意(可对照左侧文字)
五、图形块功能讲解
本课用到的 Mixly 图形块均已在前面的课讲过。请直接对照编程练习搭积木;若有遗忘,回到该积木首次出现的课页复习。
六、知识点讲解
训练集用来学习,测试集用来检查是否真会。正确率等于测对条数除以测试总条数。本课先学后考再打分——测试样本不应出现在训练中;同一批上「全对」不能说明会推广。
先弄清:学和考必须分开;再进编程练习对照正确率。
七、编程练习
用下拉列表切换题目;下方 Mixly 默认显示图形化积木。请在 Mixly 工具栏点「运行」;「检查」读取 Mixly 代码自动判题。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。
参考代码(对照抄写到下方 Mixly)
def accuracy(preds, truths):
ok = 0
for i in range(len(preds)):
p = preds[i]
t = truths[i]
if p == t:
ok = ok + 1
return ok / len(truths)
print(accuracy(["水果", "蔬菜", "水果"], ["水果", "蔬菜", "蔬菜"]))
正在载入编程环境
正在载入 Mixly 图形化编程环境…
八、课堂练习
先完成两道正误判断,再做其余题目;选出后点「检查」。
判断:正确率等于测试时答对的条数除以测试总条数。
判断:把测试集和训练集做成完全同一批,正确率就最能说明模型已经学会。
「先学后考」指的是?
正确率等于 1,就能保证?
本课强调的原则是?
九、本节小结
本课主题是训练与测试:先在训练集上学,再在测试集上算正确率。不可用同一批数据既学又考。