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

此外,您應該考慮您的數據是季節性的還是另有明顯的組別劃分(例如地理區域)。

相關問題