AI与编程
AI项目为什么要分训练集和测试集
不少学生用训练过的数据测试模型,得到很高的准确率,但换一批新数据就不行了。本文用通俗的方式解释训练集和测试集的作用,说明怎样划分、怎样避免数据泄漏,以及测试结果怎样报告。
文章目录收起
某学生训练了一个识别垃圾种类的模型,用训练用过的照片测试,准确率接近100%。可是到了展示现场,拿起一个新瓶子,模型却认错了。问题出在哪里?出在测试的方法上:用模型“学过”的数据测试,无法说明它能不能识别新的东西。
用考试来理解
可以把训练模型想象成学生复习:
- 训练集:平时练习的题目。
- 测试集:考试的新题目。
如果考试题和练习题一模一样,考满分也说明不了学生真正掌握了知识,可能只是记住了答案。模型也一样,在训练数据上表现好,可能只是“记住”了这些照片,而不是学会了识别的方法。
怎样划分
常用的比例是把数据分成两部分:
| 用途 | 比例 | 说明 |
|---|---|---|
| 训练集 | 约80% | 用来训练模型 |
| 测试集 | 约20% | 只用来测试,不参与训练 |
每一类都按同样比例划分,让测试集里各类都有样本。
划分要随机进行,不要把最后拍的20%直接作为测试集,因为最后拍的照片可能环境比较特殊。
小心数据泄漏
数据泄漏是指测试集的信息“漏”进了训练过程,导致测试结果虚高。学生项目中常见的情况:
- 同一个物体连拍了十张几乎一样的照片,一部分分到训练集、一部分分到测试集,测试时相当于考了原题。
- 先用全部数据反复调整模型,再拿其中一部分作测试。
避免方法:同一个物体的多张照片,放在同一个集合里;测试集在整个调试过程中都不要动,只在最后测一次。
更严格的测试
为了更真实地检验模型,可以准备一组“全新”的测试数据:换一天、换一个地点、换不同的物体专门拍摄。用这组数据测试的结果,更能代表模型在实际使用中的表现。
| 测试方式 | 准确率 |
|---|---|
| 训练集(自测) | 98% |
| 随机划分的测试集 | 88% |
| 另一天新拍的测试集 | 81% |
三种结果放在一起,能清楚地说明模型的真实水平,也能引出讨论:为什么新拍的照片准确率更低?
怎样报告测试结果
报告中要写明:
- 总数据量,训练集和测试集各多少张。
- 测试集是怎样得到的。
- 测试准确率,按类别分别给出。
- 识别错误的典型例子和可能的原因。
只报告一个很高的准确率,评委往往会追问测试方法。把测试过程讲清楚,即使准确率没那么高,也是一个扎实的项目。
资料与编写说明
原创方法文章,诺篮Stem编辑部根据项目指导经验整理
资料核验:2026-10-01从阅读,走到自己的项目
咨询项目方向孩子有想法,却不知从哪里开始?
带上兴趣、年级或已有作品,先聊清楚当前最需要解决的问题。