LSTM时间序列预测代码实现
时间: 2024-04-24 20:20:11 浏览: 172
利用LSTM进行时间序列预测
LSTM(Long Short-Term Memory)是一种常用的循环神经网络(RNN)架构,用于处理时间序列数据。它在时间序列预测中具有很好的效果。下面是一个简单的LSTM时间序列预测的代码实现示例:
```python
import numpy as np
from keras.models import Sequential
from keras.layers import LSTM, Dense
# 准备数据
data = [10, 20, 30, 40, 50, 60, 70, 80, 90]
sequence_length = 3 # 序列长度,即每个输入样本包含的时间步数
x = []
y = []
for i in range(len(data) - sequence_length):
x.append(data[i:i+sequence_length])
y.append(data[i+sequence_length])
x = np.array(x)
y = np.array(y)
# 构建模型
model = Sequential()
model.add(LSTM(50, activation='relu', input_shape=(sequence_length, 1)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')
# 训练模型
model.fit(x.reshape((x.shape, x.shape, 1)), y, epochs=200, verbose=0)
# 预测未来的值
future_data = [70, 80, 90] # 假设未来三个时间步的输入数据
future_data = np.array(future_data)
future_data = future_data.reshape((1, sequence_length, 1))
prediction = model.predict(future_data)
print("预测结果:", prediction)
```
这段代码实现了一个简单的LSTM时间序列预测模型。首先,我们准备了一组时间序列数据,并将其划分为输入序列和目标值。然后,我们构建了一个包含一个LSTM层和一个全连接层的模型,并使用均方误差作为损失函数进行编译。接下来,我们使用训练数据对模型进行训练。最后,我们使用训练好的模型对未来的值进行预测。
阅读全文