machine-learning - 次优的早期停止可以防止机器学习中的过度拟合?
问题描述
我一直在使用 xgboost 的提前停止功能来处理各种问题,主要是分类。但是在处理不同领域的几个数据集时,我有以下观察结果
在最小评估误差点,但在训练和测试(用于评估以停止训练轮次)误差之间的差异相对较高的情况下,模型似乎表现得好像存在过度拟合。
在这种情况下,当我考虑在训练和测试(训练期间的评估数据)误差相当相似的点停止训练轮次(尽管评估误差不是最低限度)时,模型表现得更好,并且根据误差项估计。
因此问题是:训练轮数是否应该比最佳点更早停止(训练和测试(eval)之间存在非常高的发散误差,尽管验证误差较低)?
请假设已尽一切努力正确拆分数据集以进行训练、测试、验证等。
谢谢。
解决方案
如果您提前停止,您的参数将无法很好地拟合您的训练数据。另一方面,如果您过度拟合,您将无法通过验证集。您可以做的(完美的经验法则)是在验证错误最小的参数处停止。这是假设训练误差总是随着迭代次数的增加而下降,但验证集的误差会下降然后上升。对于项目,这应该足够好。而对于更高级的应用程序,您可能希望搜索交叉验证等验证技术。但想法是相似的。
推荐阅读
- azure - 无法在 Azure 中获取我的公共 IP 的资源 ID
- webpack - babel polyfill 与 webpack 中断
- odata - 如何对 Azure 逻辑应用“获取文件”操作中的路径进行 OData 查询筛选?
- javascript - 如何在 discord.js 中做出随机响应?
- python - 如何在 discord.py 中使用权限?
- arrays - 在 Swift 中,我如何将一个句子数组拆分为多个数组,并由指定的开头和结尾句子分隔?
- python - 除非在引号中找到,否则如何匹配标识符?
- r - 如何通过复制值来pivot_wider并填充缺失值
- azure - 将事件中心异地恢复 DR 别名引用为命名空间
- python - 转换多天分钟数据的 pct 变化