时间序列预测——滑动窗口法

数据挖掘 scikit-学习 时间序列 监督学习 预测
2022-02-26 06:47:36

我一直试图理解这种滑动窗口技术,但无济于事,而且我真的不确定我将如何实现它。

我的数据集:我有一年的电力负荷每小时值(超过 8700 个数据点)- 下图。我将把数据集分成一个训练集(1 月 1 日到 9 月 30 日)和一个测试集(10 月 1 日到 12 月 31 日)。

我将使用监督学习技术,例如回归树和随机森林(基本上是 scikit learn 中可用的任何东西),在训练集上训练它们,然后在测试集上进行预测。

我知道我需要使用历史已知值作为输入特征来输入模型。结果我创建了“Load_lagN”。

我是否正确地说因为我创建了 10 个滞后变量 (Xt-1 到 Xt-10),这相当于使用大小为 10 的滑动窗口?

那么我将如何简单地在训练集上训练模型并在不使用滑动模型的情况下对测试集进行预测?

对于滑动窗口模型,这是否假设只有过去的 n 值(在我的情况下为 10)是相关的?

如果我已将我的数据集拆分为训练和测试集,那么在实施这种滑动窗口技术的同时,回归树如何进行训练,然后在测试集中进行预测(我现在将坚持提前一步预测)?

http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.TimeSeriesSplit.html#sklearn.model_selection.TimeSeriesSplit 我遇到过这种方法 - TimeSeriesSplit - 这是我需要用于滑动窗口技术还是它只是一个交叉验证器吗?

我对滑动窗口方法的理解:如下图所示,我使用 10:00 到 19:00 的值来预测 20:00 的值,移动窗口以便现在包含这个新值,然后预测 21:00 的值。这种情况一直在发生,直到我用尽了训练集。然后我做出预测。

你怎么认为?

数据集的前几个值

1个回答

试试这个:

  1. 使数据静止(去除趋势和季节性)。
  2. 对标签数据进行PACF分析(例如:负载)并找出最佳滞后值。通常,您需要知道如何解释 PACF 图。
  3. 对整个数据 (t+o, to) 应用滑动窗口,其中 o 是最佳滞后值。
  4. 应用前向验证来训练和测试模型。

逃避滑动窗口的方法是使用递归神经网络,但相信我,我建议的方法是值得的。

如果你想要代码: https ://machinelearningmastery.com/time-series-forecasting-supervised-learning/

这也有帮助:适用于您的问题的硕士论文研究