本文最后更新于 6 个月前,文中所描述的信息可能已发生改变。加载中... 浏览
做机器学习时,不能用同一份数据既训练模型又评价模型。 否则模型可能只是记住了答案,并不代表它真的能处理新数据。
1. 为什么要拆数据集
模型训练的目标不是在训练数据上表现好,而是在未来没见过的数据上表现好。
如果用同一份数据训练和测试,评估结果会过于乐观。
所以需要把数据拆开:
- 训练集。
- 验证集。
- 测试集。
它们各自承担不同角色。
2. 训练集
训练集用来训练模型参数。
模型会反复看训练集,通过减少误差来调整自己。
简单说:
txt
训练集用于学习训练集越能代表真实场景,模型学到的规律越可能有用。
3. 验证集
验证集用来调整模型。
比如选择:
- 模型类型。
- 超参数。
- 特征组合。
- 正则化强度。
验证集不直接参与训练参数,但会影响我们选择哪个模型。
简单说:
txt
验证集用于调参和选择模型4. 测试集
测试集用来做最终评估。
它应该尽量只在最后使用,模拟模型面对未知数据时的表现。
简单说:
txt
测试集用于最终考试如果反复根据测试集结果调整模型,测试集也会被“用脏”,评估结果就不再客观。
5. 小结
可以这样记:
- 训练集:平时练习。
- 验证集:模拟考试,用来调整方法。
- 测试集:最终考试,用来评估真实水平。
数据集划分的核心目的,是检查模型有没有真正学到可泛化的规律。
留言板