本贴介绍了时间窗口的相关概念,以及通过举例详细介绍时间窗口的工作原理。
1. 时间窗口
常用的时间窗口有:
- 翻滚时间窗口(tumbling time window)
- 滑动时间窗口(sliding time window)
翻滚时间窗口
翻滚时间窗口的窗口固定,若时间窗口设定为1分钟,则该时间窗口只计算当前1分钟内的数据,而不会管前1分钟或后1分钟的数据。
滑动时间窗口
滑动时间窗口的窗口是滑动的。首先需要定义窗口的大小,然后还要定义在窗口中滑动的大小,但理论上滑动的大小不超过窗口的大小。
2. 滑动时间窗口
假设有某时间序列
Y
=
(
y
1
,
y
2
,
…
,
y
m
)
\mathbf{Y}= (y_1, y_2,\dots, y_m)
Y=(y1,y2,…,ym),有影响因素组成的特征矩阵
X
=
[
x
1
,
x
2
,
…
,
x
m
]
T
\mathbf{X} = [x_1, x_2, \dots, x_m]^T
X=[x1,x2,…,xm]T。
假设
m
=
7
m=7
m=7,即有7天的数据。具体的滑动时间窗口工作原理分析如下:
- 时序 Y \mathbf{Y} Y
![](https://img-blog.csdnimg.cn/8ca3a36278ad4dd9bd837b4a9a8c74aa.png)
- 特征矩阵 X \mathbf{X} X + 时序 Y \mathbf{Y} Y
![](https://img-blog.csdnimg.cn/089c2e48f6c745a6a6134d41013b504b.png)
其中 x 1 n x_{1n} x1n 代表第一天的第n个影响因素, x 7 n x_{7n} x7n 代表第七天的第n个影响因素。一行代表某一天的所有影响因素与当天的时序数据。
- 设定时间窗口,形成新的特征矩阵 X \mathbf{X} X+时序 Y \mathbf{Y} Y
![](https://img-blog.csdnimg.cn/a5b0482b143f4d44864c792869b42e30.png)
设定时间窗口
i
=
4
i=4
i=4,即用前4天的时序数据和影响因素去预测当天的数据。那么通过上图可以观察到当
m
=
4
m=4
m=4 时,也就是在第四天的时候,只有前三天的时序数据可用于时序预测,而我们的时间窗口设置为4,即需要前4天的数据去预测当天的数据,这与我们的条件不符。而当
m
=
5
m=5
m=5,也就是在第五天的时候,刚好有前四天的数据可用于预测。
那么我们可以得出一个结论,当设定时间窗口为
i
i
i 时,从第
i
+
1
i+1
i+1 天才可以进行有效预测。
- 删除带 n a n nan nan 的行,得到最终的数据集
![](https://img-blog.csdnimg.cn/b2926352b1654387996022ecdc13b38c.png)
通过上文我们可以知道,带
n
a
n
nan
nan 的行代表着数据缺失,那么我们不能使用带
n
a
n
nan
nan 的行进行预测,所以在进行数据集转化的时候,删除带
n
a
n
nan
nan 的行,得到最终的数据集,这才是我们需要的数据集。
对于这个例子而言,若要预测第六天的
y
6
^
\hat{y_6}
y6^ ,最终用于预测的数据是第六天的各影响因素与前 4 天
y
y
y 的真实值。
若有不足,请批评指正!