我正在尝试训练RNN以预测未来的股价。
我的目标是使用两个数据集训练模型:X_train和y_train。
X_train是一个3D数组,包括(观察值,先前蜡烛的数量,每个蜡烛的属性)
y_train是一个3D数组,包括(观测值的数量,未来的观测值的数量,价格)。
因此,如果我有500支蜡烛的数据,则我的X_train将为(430,60,6):对于430个观察值(每次当前蜡烛),取其之前的60个观察值和6个特征(收盘价,成交量等)他们并尝试使用该数据(通过RNN)预测y_train(430,10,1):对于430个观察值,预测接下来10支蜡烛的收盘价(对应于1)。我一生无法获得正确输入模型的尺寸。我对模型使用以下代码:
regressor = Sequential()
regressor.add(LSTM(units = 50, return_sequences = True, input_shape = (
X_train.shape[1], 6)))
regressor.add(Dropout(0.2))
regressor.add(LSTM(units = 50, return_sequences = True))
regressor.add(Dropout(0.2))
regressor.add(LSTM(units = 50, return_sequences = True))
regressor.add(Dropout(0.2))
regressor.add(LSTM(units = 50, return_sequences = True))
regressor.add(Dropout(0.2))
regressor.add(LSTM(units = 50, return_sequences=True))
regressor.add(Dropout(0.2))
regressor.add(LSTM(units = 1))
regressor.compile(optimizer = 'adam', loss = 'mean_squared_error')
regressor.fit(X_train, y_train, epochs = 20, batch_size = 32)
Run Code Online (Sandbox Code Playgroud)
我懂了 ValueError: Error when checking target: expected lstm_6 to have 2 dimensions, but got array with shape …