为什么不能拿做过的题当期末试卷?本文用备考类比讲清训练集、验证集、测试集的三个角色:训练集用来学参数,验证集用来选模型和调超参数,测试集只在最后用一次。同时说明常见划分比例与最容易踩的数据泄漏陷阱。
核心要点
- 训练集学参数,验证集选模型,测试集估性能
- 验证集会被反复使用,测试集则应当只用一次
- 划分要防止数据泄漏,同源样本别跨集出现
备考的三类材料
准备考试有三类材料:平时练习题、模拟卷和真正的期末卷。练习题用来学知识,模拟卷用来检验哪种复习方法更有效、要不要调整计划,期末卷只在最后考一次,用来估计你真实学得怎么样。数据集的三种划分,对应的正是这三个角色。
训练集是模型真正看答案改自己的那部分数据,模型通过它调整内部参数。验证集不参与参数更新,但会被反复使用:比较不同模型结构、不同超参数,挑出表现最好的一个。测试集则在一切定稿之后才打开,给出一个相对公正的成绩。
为什么要分成三份
因为如果你用训练数据给自己打分,成绩一定虚高,题目都做过了。而如果只有训练集和测试集,你为了提升测试成绩反复调整模型,就等于在偷偷背答案,测试集也就失去了参考价值。
常见划分比例是六比二比二,数据量极大时验证集和测试集各占百分之一也够用。划分还要注意随机与分层:分类任务里应保持各集中各类别比例接近,否则某一类在某个集合里太少,评估结果会剧烈波动。
数据泄漏与封存纪律
一个高频错误叫数据泄漏。比如同一位病人的多张片子被随机分到训练集和测试集,模型记住了这位病人的特征,测试成绩自然漂亮;时间序列数据若打乱后划分,等于让模型用未来预测过去。两种情况都会让上线效果远低于预期。
还有一条纪律值得记住:测试集用完一次就该封存。如果根据测试成绩继续改模型,就应该再准备一份全新的数据来验收。这听起来苛刻,却是保证评估可信的唯一办法。
常见问题
数据很少的时候也要分三份吗?
份量再少也建议留出一份不参与训练的数据,否则你无法判断模型是真学会了还是背住了。样本极少时,通常用交叉验证在训练集内部完成模型选择,再留出一小份独立数据做最终验收,这比硬性按固定比例切分更稳妥。
本文为 AI 科普内容,仅用于知识普及,不构成任何技术选型、投资或职业决策建议。