给定时间序列数据训练回归模型的最佳方法

best way to train a regression model given time series data

根据第 1 周和第 2 周的数据,我正在尝试训练一个模型来预测第 3 周的数据。

目标标签称为目标

我很困惑应该使用哪些正确的特征来训练模型,因为这个问题是通过查看用户历史行为来预测他们未来的行为

训练数据

id,date,week_day,target
1,2019-01-01,1,10
1,2019-01-02,2,6
1,2019-01-03,3,7
2,2019-01-01,1,8
2,2019-01-02,1,5
2,2019-01-03,1,4

测试数据(见未来日期)

id,date,week_day,target
1,2019-01-10,1,15
1,2019-01-11,2,13
1,2019-01-12,3,8
2,2019-01-10,1,7
2,2019-01-11,1,7
2,2019-01-12,1,4

1)我想知道将id作为特征保留在训练数据中是否正确?我知道大多数 ML 问题都不会保留 id 字段,但是这个问题与测试数据集中使用的 same id 字段有点不同。

2) 我打算删除日期字段

看来你的问题可以看作时间序列预测。您的数据具有季节性。您可以尝试 sarima

等算法,而不是执行回归

你的数据的特征太少了,你可以按照 Pierre 的建议尝试多个模型,比如 Sarima,但是只有那些你可能会遇到困难的特征,我建议你尝试绘制一个相关矩阵,看看是否有输入和输出之间的任何相互关系,如果没有模型可以帮助你,如果特征之间存在相互关系,那么只有模型才能学习这种相互关系并进行概括。

如果您不知道如何绘制相关矩阵 https://seaborn.pydata.org/examples/many_pairwise_correlations.html

,此 link 可能会有所帮助

这个 link 如果您不熟悉相关矩阵,可以帮助您理解它们 https://machinelearningmastery.com/how-to-use-correlation-to-understand-the-relationship-between-variables/

如果您无法理解 link 中的某些内容,请随时发表评论。

1)Im wondering whether it is correct to keep id as a feature in the training data? i know most ML problems do not keep the id field, but this problem is a little different that the same id field is being used in the test dataset.

正如我所见,同一个 id(在训练集和测试集中)您有两种类型的日期。所以,如果这个 id 代表与目标相关的东西 - 保留它。否则,放弃它。

2) i plan to drop the date field

并且您将失去年、月、周数、天数、节假日标记作为可能的特征。

除了 SARIMA,我还可以建议在这里尝试拟合一些回归模型。有时他们从事类似时间序列的任务。