我试图根据下表中的多个输入参数预测天然气的开盘价(“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
上面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”)
您的数据当前是一个shape(x,4)数组,其中x是行数。所以在您提供的玩具数据中,
X.shape
应该返回(2,4)。如果稍后再看LSTM行,您会注意到它在寻找形状(1,4)的张量,这是input_shape
参数。这条np.reshape
行就是让你到达那里的原因。它将你的二维数组转换成三维数组。同样,在您的示例中,X.shape
将在您重塑形状后返回(2,1,4)。基本上,现在有一个长度为2的(1,4)数组的列表,这与LSTM层想要的相匹配。我建议您看看Kerasdocumentation on the LSTM,但基本上是这样的。100是这个层将拥有的单位(或神经元)的数量。输入形状如上所述。激活是用来计算每个神经元输出的函数。tanh函数在这个基本设置中是相当标准的,但是其他函数也可以查看Keras提供的开箱即用的activations列表。
相关问题 更多 >
编程相关推荐