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

这里以一维时序为例

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值