Machine learning 验证具有非典型结尾的时间序列数据的准确性

Machine learning 验证具有非典型结尾的时间序列数据的准确性,machine-learning,time-series,Machine Learning,Time Series,我正在做一个项目,根据多家商店过去的历史数据预测产品的需求。我有5年多时间内多家商店的数据。我把5年的时间序列分割成重叠的子序列,用过去18个月来预测未来3个月,我能够做出预测。然而,我在选择交叉验证方法时遇到了一个问题 我想进行一次持久性测试拆分,并使用某种交叉验证来训练我的模型和调优参数。然而,数据公布的最后一年是经济衰退,几乎所有需求都受到影响。当我使用最后20%(时间方面)的数据作为保留集时,与OOF交叉验证分数相比,我的测试分数非常低,即使我使用的是timeseriessplit CV

我正在做一个项目,根据多家商店过去的历史数据预测产品的需求。我有5年多时间内多家商店的数据。我把5年的时间序列分割成重叠的子序列,用过去18个月来预测未来3个月,我能够做出预测。然而,我在选择交叉验证方法时遇到了一个问题

我想进行一次持久性测试拆分,并使用某种交叉验证来训练我的模型和调优参数。然而,数据公布的最后一年是经济衰退,几乎所有需求都受到影响。当我使用最后20%(时间方面)的数据作为保留集时,与OOF交叉验证分数相比,我的测试分数非常低,即使我使用的是timeseriessplit CV。这很可能是因为这次衰退是一种新的行为,而该模型无法预测这些强劲的下滑,因为它以前从未见过

我想到的解决方案是使用随机的20%的数据作为保留,使用混合的Kfold作为交叉验证。由于除了序列的起始月份(1到12)之外,我没有在模型中输入任何关于序列开始时间的信息(以帮助模型解释季节性),因此我的理论是,基于此,模型不应过度拟合这些数据。如果所有类型的经济都存在于数据中,那么模型的结果也应该外推到新的数据中


我想再听听你的意见,你认为我的假设正确吗?有没有其他方法来解决这个问题?

您的总体假设是正确的,您可能会随机抽出大量时间来形成您的培训和测试集。然而,当这样做的时候,你需要小心。我不会预测前18个月后3个月的原始值,而是预测未来3个月的销售额相对于过去18个月的平均值的相对增加/减少

(见此处)

否则,未来3个月与之前18个月数据之间的相关性可能会让你对模型的准确性产生误导性印象