多特征时间序列lstm源码
时间: 2023-09-10 21:03:42 浏览: 55
多特征时间序列LSTM(Long Short-Term Memory,长短期记忆)是一种用于处理带有多个特征的时间序列数据的模型。该模型在机器学习中被广泛应用于预测、分类和生成时间序列数据等任务。下面是一个简单的多特征时间序列LSTM源码示例:
```python
# 导入所需的库
import numpy as np
from keras.models import Sequential
from keras.layers import LSTM, Dense
# 定义输入数据(时间序列)和标签
X = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]], # 第一个时间步的三个特征
[[11, 12, 13], [14, 15, 16], [17, 18, 19]], # 第二个时间步的三个特征
[[21, 22, 23], [24, 25, 26], [27, 28, 29]]]) # 第三个时间步的三个特征
y = np.array([[10], [20], [30]]) # 对应的标签
# 创建一个序列模型
model = Sequential()
# 添加一个LSTM层,输入形状为(时间步, 特征数)
model.add(LSTM(units=50, input_shape=(X.shape[1], X.shape[2])))
# 添加一个全连接层,输出维度为1
model.add(Dense(units=1))
# 编译模型
model.compile(optimizer='adam', loss='mse')
# 训练模型
model.fit(X, y, epochs=100, verbose=0)
# 预测新的时间序列数据
new_data = np.array([[[31, 32, 33], [34, 35, 36], [37, 38, 39]]]) # 新的时间序列数据
prediction = model.predict(new_data) # 预测
# 打印预测结果
print(prediction)
```
上述源码中,我们首先导入了所需的库,包括numpy和Keras库。然后,我们定义了输入数据X和标签y,其中X是一个三维数组,表示三个时间步的特征,y是对应的标签。接下来,我们创建了一个序列模型,并添加了一个LSTM层和一个全连接层。然后,我们编译模型,并使用X和y训练模型。最后,我们使用新的时间序列数据进行预测,并打印出预测结果。