将时间序列数据拆分为训练/测试/验证集的最佳方法是什么,验证集将用于超参数调整?
我们有 3 年的每日销售数据,我们的计划是使用 2015-2016 作为训练数据,然后从 2017 年的数据中随机抽取 10 周作为验证集,从 2017 年的数据中再抽取 10 周作为验证集测试集。然后,我们将在测试和验证集中的每一天向前走。
将时间序列数据拆分为训练/测试/验证集的最佳方法是什么,验证集将用于超参数调整?
我们有 3 年的每日销售数据,我们的计划是使用 2015-2016 作为训练数据,然后从 2017 年的数据中随机抽取 10 周作为验证集,从 2017 年的数据中再抽取 10 周作为验证集测试集。然后,我们将在测试和验证集中的每一天向前走。
您应该使用基于时间的拆分来避免前瞻偏差。按时间顺序训练/验证/测试。
测试集应该是数据的最新部分。您需要在生产环境中模拟一种情况,在训练模型之后,您需要评估模型创建之后的数据。因此,您用于验证和训练的随机抽样并不是一个好主意。
您可以创建更多这样的集合,而不是只创建一组训练/验证集。
例如,第一个训练集可以是 6 个月的数据(2015 年第一学期),然后验证集是接下来的三个月(2015 年 7 月至 8 月)。第二个训练集将是第一个训练集和验证集的组合。验证集是接下来的三个月(2015 年 9 月至 10 月)。等等。
这是 K-Fold 交叉验证的一种变体,其中训练集是先前训练集和验证集的组合。