6 种用 LSTM 做时间序列预测的模型结构 - Keras 实现

本文介绍了 LSTM 在时间序列预测中的应用,详细阐述了从 Univariate 到 Multiple Parallel Input & Multi-Step Output 的 6 种模型结构,并提供了相应的 Keras 代码实现。
摘要由CSDN通过智能技术生成

LSTM(Long Short Term Memory Network)长短时记忆网络,是一种改进之后的循环神经网络,可以解决 RNN 无法处理长距离的依赖的问题,在时间序列预测问题上面也有广泛的应用。

今天我们根据问题的输入输出模式划分,来看一下几种时间序列问题所对应的 LSTM 模型结构如何实现。


1. Univariate

Univariate 是指:

input 为多个时间步,
output 为一个时间的问题。

数例:

训练集:
X,			y
10, 20, 30		40
20, 30, 40		50
30, 40, 50		60
…


预测输入:
X,
70, 80, 90

模型的 Keras 代码:

# define model【Vanilla LSTM】

model = Sequential()
model.add( LSTM(50,  activation='relu',  input_shape = (n_steps, n_features)) )
model.add( Dense(1) )
model.compile(optimizer='adam', loss='mse')

n_steps = 3
n_features = 1

其中:

n_steps 为输入的 X 每次考虑几个时间步
n_features 为每个时间步的序列数

这个是最基本的模型结构,我们后面几种模型会和这个进行比较。


2. Multiple Input

Multiple Input 是指:

input 为多个序列,
output 为一个序列的问题。

数例:

训练集:
X,       y
[[10 15]
 [20 25]
 [30 35]] 65
[[20 25]
 [30 35]
 [40 45]] 85
[[30 35]
 [40 45]
 [50 55]] 105
[[40 45]
 [50 55]
 [60 65]] 125
…


预测输入:
X,
80,	 85
90,	 95
100,    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值