LSTM多步预测模型代码
时间: 2023-11-07 10:54:14 浏览: 92
以下是一个简单的LSTM多步预测模型代码示例,其中使用了Keras深度学习库:
```python
from keras.models import Sequential
from keras.layers import Dense, LSTM
import numpy as np
# 准备数据
data = np.array([i*np.sin(i) for i in np.arange(100)])
seq_len = 5 # 每个序列的长度
n_samples = len(data) - seq_len # 样本数量
X = np.zeros((n_samples, seq_len, 1)) # 输入数据
y = np.zeros((n_samples, seq_len, 1)) # 目标数据
for i in range(n_samples):
X[i] = data[i:i+seq_len].reshape(-1, 1)
y[i] = data[i+1:i+seq_len+1].reshape(-1, 1)
# 构建模型
model = Sequential()
model.add(LSTM(32, input_shape=(seq_len, 1)))
model.add(Dense(seq_len))
model.compile(loss='mse', optimizer='adam')
# 训练模型
model.fit(X, y, epochs=1000, verbose=0)
# 预测未来5个步长的值
x_test = data[-seq_len:].reshape(-1, seq_len, 1)
predictions = model.predict(x_test)
print(predictions)
```
在这个示例中,我们使用了一个包含一个LSTM层和一个密集层的简单模型。我们使用正弦函数生成了100个数据点,并将其转换为序列数据。我们将前5个数据点作为输入序列,下一个数据点作为目标序列,以此类推,生成了多个样本。我们使用这些样本训练LSTM模型,并使用其来预测未来5个步长的值。
阅读全文