给出一段Python代码,实现以下功能,将一个Excel表格中的5列数据处理成多变量lstm预测模型的输入类型
时间: 2023-04-05 08:00:30 浏览: 164
Python基于LSTM模型实现预测股市源代码+模型+数据集
5星 · 资源好评率100%
以下是Python代码实现:
```python
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from keras.models import Sequential
from keras.layers import LSTM, Dense
# 读取Excel表格数据
data = pd.read_excel('data.xlsx')
# 选择需要的5列数据
data = data[['col1', 'col2', 'col3', 'col4', 'col5']]
# 数据归一化处理
scaler = MinMaxScaler(feature_range=(0, 1))
data = scaler.fit_transform(data)
# 将数据转换为多变量lstm预测模型的输入类型
X = []
y = []
for i in range(len(data)-60):
X.append(data[i:i+60])
y.append(data[i+60])
X = np.array(X)
y = np.array(y)
# 划分训练集和测试集
train_size = int(len(X) * 0.8)
X_train, X_test = X[:train_size], X[train_size:]
y_train, y_test = y[:train_size], y[train_size:]
# 构建多变量lstm预测模型
model = Sequential()
model.add(LSTM(units=50, return_sequences=True, input_shape=(X_train.shape[1], 5)))
model.add(LSTM(units=50))
model.add(Dense(units=1))
model.compile(optimizer='adam', loss='mean_squared_error')
model.fit(X_train, y_train, epochs=100, batch_size=32)
# 预测结果
y_pred = model.predict(X_test)
y_pred = scaler.inverse_transform(y_pred)
y_test = scaler.inverse_transform(y_test)
# 计算预测误差
rmse = np.sqrt(np.mean((y_pred - y_test)**2))
print('RMSE:', rmse)
```
以上代码可以将Excel表格中的5列数据处理成多变量lstm预测模型的输入类型,并进行训练和预测。
阅读全文