LSTM模型预测python代码
时间: 2023-10-04 08:12:35 浏览: 98
以下是使用LSTM模型进行时间序列预测的Python代码示例:
```python
import numpy as np
import pandas as pd
from keras.models import Sequential
from keras.layers import Dense, LSTM
# 读取数据
df = pd.read_csv('data.csv')
# 准备训练数据
data = np.array(df['value']) # 获取时间序列数据
sequence_length = 20 # 序列长度
result = []
for i in range(len(data) - sequence_length):
result.append(data[i:i+sequence_length])
result = np.array(result)
# 划分训练集和测试集
split_ratio = 0.8 # 划分比例
split_index = int(split_ratio * result.shape[0])
train_data = result[:split_index, :]
test_data = result[split_index:, :]
# 构建模型
model = Sequential()
model.add(LSTM(units=50, return_sequences=True, input_shape=(sequence_length, 1)))
model.add(LSTM(units=50))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mean_squared_error')
# 模型训练
model.fit(train_data.reshape(train_data.shape[0], train_data.shape[1], 1), df[:split_index]['value'], epochs=100, batch_size=64)
# 模型预测
test_predict = model.predict(test_data.reshape(test_data.shape[0], test_data.shape[1], 1))
# 可视化预测结果
import matplotlib.pyplot as plt
plt.plot(df['value'])
plt.plot(np.arange(split_index, split_index+len(test_predict)), test_predict)
plt.show()
```
在这个示例中,我们首先读取时间序列数据,然后准备训练数据。数据的准备过程是将时间序列数据划分为长度为20的序列,每个序列作为一个样本。然后,我们划分训练集和测试集,使用前80%的数据作为训练集,后20%的数据作为测试集。接下来,我们使用Keras构建一个LSTM模型,并对其进行训练。最后,我们使用模型进行预测,并将预测结果可视化。
阅读全文