如何为输入到LSTM的多变量数据定型

2024-04-29 03:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我要达到的目标

我试图根据下表中的多个输入参数预测天然气的开盘价(“NG Open”)。我遵循了一些教程,但它们没有解释特定格式代码在多次尝试和错误后仍在工作,但需要对数据的重新格式化有一些了解。在

数据集-只有几行

Contract    NGLast   NGOpen NGHigh NGLow NGVolumes COOpen COHigh COLow
2018-12-01  4.487    4.50   4.60   4.03  100,000   56.00  58.00  50.00
2019-01-01  4.450    4.52   4.61   4.11  93000     51.00  53.00  45.00

代码

^{pr2}$

问题

上面astrix中标记的代码背后的原因是什么?在

1>;我有四列作为输入,所以它不应该是X=np.重塑(X,(X.shape[0],1,X.shape[1],X.shape[2],X.shape[3])?对于所有被视为输入的列,依此类推?在

2>;我需要在下面这一行解释参数。模型.add(LSTM(100,activation='tanh',input_shape=(1,4),反复出现的“激活=”硬“sigmoid”)


Tags: 数据代码gt目标参数格式错误教程
1条回答
网友
1楼 · 发布于 2024-04-29 03:19:21
  1. 您的数据当前是一个shape(x,4)数组,其中x是行数。所以在您提供的玩具数据中,X.shape应该返回(2,4)。如果稍后再看LSTM行,您会注意到它在寻找形状(1,4)的张量,这是input_shape参数。这条np.reshape行就是让你到达那里的原因。它将你的二维数组转换成三维数组。同样,在您的示例中,X.shape将在您重塑形状后返回(2,1,4)。基本上,现在有一个长度为2的(1,4)数组的列表,这与LSTM层想要的相匹配。

  2. 我建议您看看Kerasdocumentation on the LSTM,但基本上是这样的。100是这个层将拥有的单位(或神经元)的数量。输入形状如上所述。激活是用来计算每个神经元输出的函数。tanh函数在这个基本设置中是相当标准的,但是其他函数也可以查看Keras提供的开箱即用的activations列表。

相关问题 更多 >