我们有一些数据集:
从1月到6月,每天销售100件产品,
我们的目标是预测7月份的每日销售量。
所以如何将数据集拆分为训练集,验证集
答案 0 :(得分:3)
时间序列是不应随机拆分的典型情况(一般情况下,如果存在重要的示例 - 示例关联,则不应随机拆分。)
通常销售不是严格动态的时间序列(如股票价格),但使用train_test_split
可能会有问题。
您可以在不使用sklearn的情况下获得所需的交叉验证拆分(例如sklearn: User defined cross validation for time series data,Pythonic Cross Validation on Time Series ...)。
70-80%的培训是标准的。假设示例的分布均匀,您可以使用1月到4月/ 5月的数据来获取训练集,并使用剩余的记录进行验证。
目前,据我所知,sklearn不支持对时间相关问题进行严格的交叉验证。所有开箱即用的交叉验证程序将构建训练折叠,其中包括与测试折叠相关的未来信息(例如[WIP] RollingWindow cross-validation #3638)。
此外,您应该考虑您的数据是季节性的还是在群组中有明显的划分(例如地理区域)。