1

我们有一些数据集:100个产品如何集拆分到训练集和验证集

每天销售数从一月到六月,

我们的目的是预测每天销售数量在七月。

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

+0

查看此答案的详细摘要:http://stackoverflow.com/questions/13610074/is-there-a-rule-of-thumb-for-how-to-divide-a-dataset-into-training -and-validatio – Harjatin

+1

'scikit-learn'有一个用于分割数据的有用帮助函数:http://scikit-learn.org/stable/modules/generated/sklearn.cross_validation.train_test_split.html – numentar

+0

可能的重复[where to保存激活密钥](http://stackoverflow.com/questions/1360749/where-to-save-activation-key) – Prune

回答

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)。

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

相关问题