写一个lstm预测程序
时间: 2024-04-19 22:17:28 浏览: 96
LSTM预测程序_机器学习
以下是一个简单的 LSTM 预测程序,用于预测一个时间序列数据:
```python
import numpy as np
from keras.models import Sequential
from keras.layers import Dense, LSTM
# 创建一个模拟时间序列数据
data = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])
look_back = 3 # 输入数据的长度
train_data = []
train_target = []
for i in range(len(data)-look_back):
train_data.append(data[i:i+look_back])
train_target.append(data[i+look_back])
train_data = np.array(train_data)
train_target = np.array(train_target)
# 定义 LSTM 模型
model = Sequential()
model.add(LSTM(units=50, input_shape=(look_back, 1)))
model.add(Dense(units=1))
model.compile(optimizer='adam', loss='mse')
# 拟合模型
train_data = np.reshape(train_data, (train_data.shape[0], train_data.shape[1], 1))
model.fit(train_data, train_target, epochs=100, batch_size=1, verbose=2)
# 预测未来数据
future_data = np.array([90, 100, 110])
test_data = []
for i in range(len(future_data)-look_back):
test_data.append(future_data[i:i+look_back])
test_data = np.array(test_data)
test_data = np.reshape(test_data, (test_data.shape[0], test_data.shape[1], 1))
predicted_data = model.predict(test_data)
print(predicted_data)
```
这个程序首先创建了一个模拟时间序列数据,然后定义了一个 LSTM 模型,包括一个 LSTM 层和一个密集层。接着,程序将训练数据和训练目标转换成适合 LSTM 模型的形式,并使用拟合方法拟合模型。最后,程序输入未来数据,并使用训练好的模型预测未来数据。
阅读全文