如何为 RNN 或 LSTM 使用多输入或多特征

Posted

技术标签:

【中文标题】如何为 RNN 或 LSTM 使用多输入或多特征【英文标题】:How to use multi inputs or multi features for RNN or LSTM 【发布时间】:2017-10-25 13:21:41 【问题描述】:

我有一个像blow这样的时间序列数据框,里面的数字意义不大,我在应用LSTM时遇到了一些问题。

我看过一些 LSTM 的 Demo,大多使用这种模式:[y_t-2,y_t-1,y_t] to predict [y_t+1],但正如数据框一样,我也有featureA, featureB, featureC,所以我的问题是:如何为 LSTM 使用多输入或多特征

time    featureA    featureB    featureC    target
1   2   5   6   1
2   4   1   7   3
3   6   2   1   5
4   2   4   0   7
5   7   6   1   5
6   9   3   2   8
7   1   2   3   5
8   2   9   5   10
9   1   10  7   6
10  3   2   2   11

【问题讨论】:

【参考方案1】:

对于RNN/LSTM,更像是这样:[..., y_t-2(x_t-2), y_t-1(x_t-1)]预测[y_t(x_t)]

或者更简洁:

y_t = f(y_t-1, x_t)

因此,在前馈中,您仍然使用您的输入 x_t(即您的特征)加上先前时间步的输出来在当前时间步进行预测。

【讨论】:

以上是关于如何为 RNN 或 LSTM 使用多输入或多特征的主要内容,如果未能解决你的问题,请参考以下文章

[时间序列预测]基于BPRNNLSTMCNN-LSTM算法多特征(多影响因素)用电负荷预测[保姆级手把手教学]

LSTM 多特征、多类、多输出

具有可变长度序列的 RNN/LSTM 库,无需分桶或填充

使用Keras与LSTM和RNN进行斗争

如何为LSTM Keras中的多步和多变量准备时间序列数据

RNN和LSTM