python构建一个LSTM多步时间序列预测模型进行训练并将训练好的模型对自己的时间序列数据进行预测的代码例子
时间: 2023-08-10 09:04:37 浏览: 93
Python中利用LSTM模型进行时间序列预测分析的实现
5星 · 资源好评率100%
好的,以下是一个简单的 Python 代码例子,用于构建 LSTM 多步时间序列预测模型,进行训练,并使用训练好的模型对自己的时间序列数据进行预测:
```python
# 导入必要的库
import numpy as np
from keras.models import Sequential
from keras.layers import LSTM, Dense
# 定义函数,用于将输入数据转换为适合 LSTM 模型的数据格式
def create_dataset(dataset, look_back=1):
dataX, dataY = [], []
for i in range(len(dataset)-look_back):
a = dataset[i:(i+look_back), :]
dataX.append(a)
dataY.append(dataset[i + look_back, :])
return np.array(dataX), np.array(dataY)
# 创建数据集
data = np.array([[10, 20, 30], [20, 30, 40], [30, 40, 50], [40, 50, 60], [50, 60, 70], [60, 70, 80], [70, 80, 90], [80, 90, 100], [90, 100, 110], [100, 110, 120]])
look_back = 3
trainX, trainY = create_dataset(data, look_back)
# 创建并训练 LSTM 模型
model = Sequential()
model.add(LSTM(4, input_shape=(look_back, 3)))
model.add(Dense(3))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(trainX, trainY, epochs=100, batch_size=1, verbose=2)
# 使用训练好的模型对自己的时间序列数据进行预测
testX = np.array([[90, 100, 110], [100, 110, 120], [110, 120, 130]])
testX = np.reshape(testX, (testX.shape[0], look_back, 3))
testY = model.predict(testX)
print(testY)
```
这个例子中,我们首先创建一个简单的时间序列数据集,然后使用 `create_dataset` 函数将其转换为适合 LSTM 模型的数据格式。接着,我们创建一个包含一个 LSTM 层和一个全连接层的模型,并使用训练数据对其进行训练。最后,我们使用训练好的模型对自己的时间序列数据进行预测,输出预测结果。
阅读全文