如何将数据集拆分为训练集和验证集

时间:2016-05-17 16:02:17

标签: machine-learning scikit-learn data-mining deep-learning data-analysis

我们有一些数据集:

从1月到6月,每天销售100件产品,

我们的目标是预测7月份的每日销售量。

所以如何将数据集拆分为训练集,验证集

1 个答案:

答案 0 :(得分:3)

时间序列是不应随机拆分的典型情况(一般情况下,如果存在重要的示例 - 示例关联,则不应随机拆分。)

通常销售不是严格动态的时间序列(如股票价格),但使用train_test_split可能会有问题。

您可以在不使用sklearn的情况下获得所需的交叉验证拆分(例如sklearn: User defined cross validation for time series dataPythonic Cross Validation on Time Series ...)。

70-80%的培训是标准的。假设示例的分布均匀,您可以使用1月到4月/ 5月的数据来获取训练集,并使用剩余的记录进行验证。

目前,据我所知,sklearn不支持对时间相关问题进行严格的交叉验证。所有开箱即用的交叉验证程序将构建训练折叠,其中包括与测试折叠相关的未来信息(例如[WIP] RollingWindow cross-validation #3638)。

此外,您应该考虑您的数据是季节性的还是在群组中有明显的划分(例如地理区域)。