训练集、验证集与测试集

本文最后更新于 6 个月前,文中所描述的信息可能已发生改变。
加载中... 浏览

做机器学习时,不能用同一份数据既训练模型又评价模型。 否则模型可能只是记住了答案,并不代表它真的能处理新数据。

1. 为什么要拆数据集

模型训练的目标不是在训练数据上表现好,而是在未来没见过的数据上表现好。

如果用同一份数据训练和测试,评估结果会过于乐观。

所以需要把数据拆开:

  • 训练集。
  • 验证集。
  • 测试集。

它们各自承担不同角色。

2. 训练集

训练集用来训练模型参数。

模型会反复看训练集,通过减少误差来调整自己。

简单说:

txt
训练集用于学习

训练集越能代表真实场景,模型学到的规律越可能有用。

3. 验证集

验证集用来调整模型。

比如选择:

  • 模型类型。
  • 超参数。
  • 特征组合。
  • 正则化强度。

验证集不直接参与训练参数,但会影响我们选择哪个模型。

简单说:

txt
验证集用于调参和选择模型

4. 测试集

测试集用来做最终评估。

它应该尽量只在最后使用,模拟模型面对未知数据时的表现。

简单说:

txt
测试集用于最终考试

如果反复根据测试集结果调整模型,测试集也会被“用脏”,评估结果就不再客观。

5. 小结

可以这样记:

  • 训练集:平时练习。
  • 验证集:模拟考试,用来调整方法。
  • 测试集:最终考试,用来评估真实水平。

数据集划分的核心目的,是检查模型有没有真正学到可泛化的规律。

留言板

加载评论中...
JS 进阶:Promise 异步编程
GitHub 基础教程
Valaxy v0.28.0-beta.1 驱动|主题-Yunv0.28.0-beta.1