我们有一些数据集:
1月至6月每天100种产品的销售数量,
我们的目标是预测 7 月份每天的销售数量。
那么如何将数据集拆分为训练集、验证集
最佳答案
时间序列是不应随机分割的典型情况(一般来说,当存在显着的示例-示例相关性时,不应随机分割)。
通常销售额不是严格动态的时间序列(如股票价格),而是使用 train_test_split
可能会有问题。
您无需使用 sklearn 即可获得所需的交叉验证分割(例如 sklearn: User defined cross validation for time series data 、 Pythonic Cross Validation on Time Series ...)。
70-80% 的培训是标准的。假设样本均匀分布,您可以使用一月到四月/五月的数据作为训练集,其余记录进行验证。
目前,据我所知,sklearn 不支持对时间相关问题进行严格的交叉验证。所有开箱即用的交叉验证例程将构建训练折叠,其中包括与测试折叠相关的 future 信息(例如 [WIP] RollingWindow cross-validation #3638 )。
此外,您应该考虑您的数据是否具有季节性或是否有其他明显的分组划分(例如地理区域)。
关于machine-learning - 如何将数据集拆分为训练集和验证集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37281240/