时间序列--加入有用的特征

这里以一维时序为例

1.加入上一个、或几个时期的数据

shift函数可以实现,参考连接:

df['t-1']=df['t'].shift(1) #创建了和t之后一项的序列,同等长度,前面的第一个变成了NA
 df['t-1']=df['t'].shift(-1) # 提前一项,最后一项为nan

2.我们可以通过滑动窗口中的值计算汇总统计信息,并将这些值作为特性包含在数据集中。也许最有用的是前几个值的平均值,也称为滚动平均值。例如,我们可以计算前两个值的平均值,然后用它来预测下一个值。对于温度数据,我们需要等待3个时间步骤,才能得到2个平均值,然后才能用这个值来预测第三个值。

rolling函数可以实现,参考连接:https://blog.csdn.net/maymay_/article/details/80241627

一个例子:

temps = DataFrame(series.values)

shifted = temps.shift(1)

window = shifted.rolling(window=2)

means = window.mean()

dataframe = concat([means, temps], axis=1)

dataframe.columns = ['mean(t-2,t-1)', 't+1']

print(dataframe.head(5))

数据:shift(1)+原时间

t-1        t
NaN  20.7

20.7  17.9
17.9  18.8
18.8  14.6
14.6  15.8

将shifted(1)的rolling之后:这里注意rolling(t-1)+Windows=2 相当于求mean(t-1,t-2)

mean(t-2,t-1)      t
 NaN               20.7
 NaN               17.9
19.30                18.8
18.35                14.6
16.70                15.8

猜你喜欢

转载自blog.csdn.net/kylin_learn/article/details/85223126