python - 使用 LSTM 和 keras 进行时间序列预测的分类变量

标签 python deep-learning keras lstm categorical-data

我有一个 LSTM 模型 (keras),它接收 6 变量的过去 20 值作为输入,并预测 future 的 43 这些变量。换句话说,我有 6 个时间序列,我正在尝试使用它们的 20 个过去值来预测它们的 future 值。基本代码是:

past_time_steps = 6
future_time_steps = 4
inputs = Input(shape=(20,past_time_steps))
m = LSTM(hid, return_sequences=True)(inputs)
m = Dropout(0.5)(m)
m = LSTM(hid)(m)
m = Dropout(0.5)(m)
outputA = Dense(future_time_steps, activation='linear', W_constraint=nonneg())(m)
outputB = Dense(future_time_steps, activation='linear', W_constraint=nonneg())(m)
outputC = Dense(future_time_steps, activation='linear', W_constraint=nonneg())(m)
m = Model(inputs=[inputs], outputs=[outputA, outputB, outputC])
m.compile(optimizer='adam', loss='mae')
m.fit(x,[y1,y2, y2])

因此,输入是一个形状为 (500,20,6) 的 numpy 矩阵,其中 500 表示样本数(例如训练时间序列)。

现在,我有了可用的新数据,所以对于每个时间序列,我都有一个分类变量(可以取 6 个值:0,1,2,3,4,5)。如何将此信息添加到模型中?我可以添加另一个使用这个变量的层吗?我是否应该在时间序列的开始/结束时填充此变量,以便我得到一个形状为 (500,21,6) 的输入矩阵?

最佳答案

One_hot_encode 分类变量并以与其他时间数据相同的方式对其进行预处理。您的时间步长不受此新数据的影响。受影响的只是变量的数量。

关于python - 使用 LSTM 和 keras 进行时间序列预测的分类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49497930/

相关文章:

deep-learning - caffe 无法打开或找不到文件

python - 有没有办法加速 tf.keras 中的嵌入层?

python - Networkx 中大型网络可视化的问题

python - 在 Facebook API 图中获取 Facebook 页面的信息

python - 为 os.environ 引发 EnvironmentError 是否合适?

python-2.7 - 如何在keras中以百分比形式显示预测结果?

machine-learning - 强化学习、深度学习、深度强化学习有什么区别?

python - Keras 的 predict_generator 没有返回正确数量的样本

python - 语义相似度的 BERT 嵌入

python - shopify_auth 多商店 session 处理