0

我有一个表示多个时间段的数值的数据框,并且我已经格式化了该数据框,以将其表示为先前值的串联。例如:

+------+------+------+
| t1   | t2   | t3   |
+------+------+------+
| 4    | 7    | 10   |
+------+------+------+
| 7    | 10   | 8    |
+------+------+------+
| 10   | 8    | 11   |
+------+------+------+
...

当我格式化数据集以使用 LSTM 时,我将其重塑为 3 维向量 [样本、时间步长、特征]。

但是,我必须为时间步长和特征赋予哪个值?特征应该是 3,因为我学习最后 3 个元素吗?

到那时我有这个:

trainX = numpy.reshape(trainX, (trainX.shape[0], 1, trainX.shape[1])) 
4

1 回答 1

0

我试着举例说明。因此,假设我们对温度和压力进行了一些测量,并且我们想预测未来某个时间点的温度。我们有两个特征(温度和压力)。所以我们可以用它们来喂养 LSTM 并尝试预测。现在我不确定你对 LSTM 理论的看法,但游戏中有两个变量,细胞状态 C 和之前的输出 h(t-1)。我们专注于 h(t-1)。所以你给了 LSTM 单元(假设现在只有一个神经元)输入(温度和压力)。LSTM 产生输出和细胞状态,现在,如果你的时间步长为 1,当你给 LSTM 新的输入时,输出将只依赖于细胞状态和输入。但是,如果您的时间步长设置为五。第二个输入将取决于单元状态、输入和先前的输出。第三个输出将取决于第二个输出、单元状态、当前输入。当您再次依赖输入和单元状态时,此序列在第六次输入时继续。这些 h(t-1) 的东西被称为短时记忆。因此,如果您将时间步长设置为 1,您就会失去短暂的记忆。

编辑 我的错我没有以正确的方式查看您的数据。你有一个特征,t 和三个步骤。但是你没有以正确的方式构建它,你将三个 t 值视为单独的特征并将它们提供给 LSTM。但是您可以改为将数据重塑为样本 x 3 x 1。因此,您向 LSTM 提供第一个样本的 t1,第一个样本的下一个 t2,但 LSTM 输出将受到前一个时间步的输出的影响。

于 2018-12-03T15:34:39.723 回答