用LSTM写一个回归预测模型,python代码
时间: 2024-03-21 11:39:08 浏览: 81
时间序列预测(LSTM模型)python代码实现(95分以上).zip
5星 · 资源好评率100%
好的,以下是用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')
dataset = df.values
train_size = int(len(dataset) * 0.8)
train_set = dataset[:train_size, :]
test_set = dataset[train_size:, :]
X_train = train_set[:, :-1]
y_train = train_set[:, -1]
X_test = test_set[:, :-1]
y_test = test_set[:, -1]
# 数据归一化处理
mean = X_train.mean(axis=0)
std = X_train.std(axis=0)
X_train = (X_train - mean) / std
X_test = (X_test - mean) / std
# 构建LSTM模型并训练
model = Sequential()
model.add(LSTM(units=50, input_shape=(X_train.shape[1], 1)))
model.add(Dense(units=1))
model.compile(optimizer='adam', loss='mean_squared_error')
model.fit(X_train.reshape(X_train.shape[0], X_train.shape[1], 1), y_train, epochs=100, batch_size=32)
# 模型预测并评估
y_pred = model.predict(X_test.reshape(X_test.shape[0], X_test.shape[1], 1))
mse = np.mean((y_pred - y_test) ** 2)
print('Mean Squared Error:', mse)
```
其中,`data.csv`是包含训练数据的CSV文件,每一行代表一个样本,最后一列为目标变量。此代码示例中,使用80%的数据作为训练集,20%的数据作为测试集。模型使用一个包含50个LSTM单元的层,以及一个输出层。模型的损失函数采用均方误差(Mean Squared Error),使用Adam优化器进行训练。最后,计算模型在测试集上的均方误差作为评估指标。
阅读全文