我有一只股票的开盘价,最高价,最低价和收盘价(OHLC),我想预测接下来的6个OHLC值。
数据如下所示:
[[ 2166.99 2149.97 2168.88 2165.63]
[ 2165.86 2158.48 2166.88 2164.88]
[ 2166.69 2162.17 2167.13 2166.13]
...,
[ 2181.32 2178.06 2184.38 2178.5 ]
[ 2183.87 2179.69 2184.75 2183.32]
[ 2183.51 2181.78 2184.07 2183.07]]
我还有一个3D数组,它包含应该预测的值,如下所示:
[[[ 2165.86 2158.48 2166.88 2164.88]
[ 2166.69 2162.17 2167.13 2166.13]
[ 2167.26 2164.43 2167.88 2166.8 ]
[ 2167.37 2165.84 2167.62 2166.87]
[ 2167.73 2166.61 2168.12 2167.37]
[ 2168.92 2167.17 2170.12 2167.62]]
[[ 2166.69 2162.17 2167.13 2166.13]
[ 2167.26 2164.43 2167.88 2166.8 ]
[ 2167.37 2165.84 2167.62 2166.87]
[ 2167.73 2166.61 2168.12 2167.37]
[ 2168.92 2167.17 2170.12 2167.62]
[ 2170.23 2168.04 2171.13 2169.8 ]]
...,
我知道这些数据没有标准化,但我认为这个主题无关紧要。
代码(我在某处找到的代码)看起来像这样:
model = Sequential()
model.add(TimeDistributed(Dense(4), input_shape=(1, 4)))
# now model.output_shape == (None, 10, 8)
model.add(Dropout(0.2))
# subsequent layers: no need for input_shape
model.add(TimeDistributed(Dense(1,activation='softmax')))
# now model.output_shape == (None, 10, 32)
model.compile(loss="mean_squared_error", optimizer="rmsprop")
print("Model compiled.")
我收到的错误消息如下:
Exception: Error when checking model input: expected timedistributed_input_1 to have 3 dimensions, but got array with shape (1793, 4)
我知道我必须重塑Xtrain数组,但我不知道要重塑它的样子,特别是对于这个目标数组。此外,哪些层最适合此应用程序?