我正在使用 XGBoost 来解决时间序列回归问题。
在开发过程中,我在最后 %10% 的数据上选择了我的验证集。使用时间序列拆分交叉验证和网格搜索,我得到了我最好的模型和相应的 xgb 超参数。
我的问题是,如何在我的生产环境中选择验证集(提前停止)?
1) 我选择了最后 %10% 的数据作为验证集,但该集也包含在训练数据中。因此过拟合。对噪声数据非常敏感。
2)我的预测数据(假设是 Y)随时间而变化,当我在去年选择随机行(%10 数量)并且不将它们包含在训练集中时,它给我的生产结果比第一个选项更差。
3)当我选择上周的数据作为验证数据时,不包含在训练集中,它在 2. 选项上给出了更好的结果。但我没有将上周的数据纳入培训程序。
4) 或者我需要在我的生产环境中设置验证集吗?我应该从开发阶段完成的实验中设置迭代次数吗?(例如,我在第 10k 次迭代中获得了最佳结果,所以我应该将我的生产设置迭代次数限制为 10k,而不使用验证集?)
--
那么,如何为我的生产环境选择验证集?最佳实践,或者有任何提示/技巧吗?