机器学习基础

训练集、验证集、测试集

10 分钟

为什么要分三份

  • 训练集:平时作业——模型从里面学规律。
  • 验证集:模拟考——用来挑模型、调旋钮(学习率、模型大小),调完一批用它看效果,不行再调。
  • 测试集:高考——只在最后用一次,估计模型的真实水平。

为什么不能混用

拿「高考卷」反复调参,等于提前漏题:测试成绩会虚高,对真实水平的估计就失真了。铁律:测试集只能碰一次,碰完它就「脏」了,不能再当公正裁判。

怎么分

常见比例如 60% 训练、20% 验证、20% 测试。数据少时用交叉验证:把数据切成 5 份,轮流拿 1 份当验证集,5 次结果取平均,结论更稳。

一个容易踩的坑

切分前要先打乱数据。如果数据按时间排好序,直接前 80% 训练、后 20% 测试,可能训练集全是冬天、测试集全是夏天——模型等于没考同一个科目。涉及未来的预测(股价、销量)更要小心:不能用「未来」的数据去训练预测「过去」。

常见误区

「测试集准确率 99%」先别激动:查一下是不是同一批人既出现在训练集又出现在测试集(数据泄漏)——那是背答案,不是真本事。

练一练:把「平时作业、模拟考、高考」这套分工讲给家长听,说说为什么高考题不能提前刷十遍。

小纸条

解释三份数据各自的作用,以及测试集为什么只能用一次。

登录 后可看答案