previsão de ações: modelo GRU prevendo os mesmos valores dados em vez do preço futuro das ações

i estava apenas testando este modelo da kaggleposta ste modelo deve prever um dia antes do último conjunto de açõe. Depois de ajustar alguns parâmetros, obtive um resultado surpreendentemente bom, como você pode ver. erro ao quadrado do @mean foi de 5,193.tão geral parece bom em prever ações futuras, certo? bem, acabou por ser horrível quando observo atentamente os resultados.

como você pode ver que este modelo está prevendo o último valor das ações especificadas, que é o nosso último estoque atua
então eu fiz previsões ajustadas para um passo atrás ..gora, você pode ver claramente que o modelo está prevendo um passo atrás ou o último prêmio em vez de previsões futura

Este são os meus dados de treinamento
# So for each element of training set, we have 30 previous training set elements 
X_train = []
y_train = []

previous = 30

for i in range(previous,len(training_set_scaled)):
    X_train.append(training_set_scaled[i-previous:i,0])
    y_train.append(training_set_scaled[i,0])
X_train, y_train = np.array(X_train), np.array(y_train)


print(X_train[-1],y_train[-1])
Este é o meu modelo
# The GRU architecture
regressorGRU = Sequential()
# First GRU layer with Dropout regularisation
regressorGRU.add(GRU(units=50, return_sequences=True, input_shape=(X_train.shape[1],1)))
regressorGRU.add(Dropout(0.2))
# Second GRU layer
regressorGRU.add(GRU(units=50, return_sequences=True))
regressorGRU.add(Dropout(0.2))
# Third GRU layer
regressorGRU.add(GRU(units=50, return_sequences=True))
regressorGRU.add(Dropout(0.2))
# Fourth GRU layer
regressorGRU.add(GRU(units=50))
regressorGRU.add(Dropout(0.2))
# The output layer
regressorGRU.add(Dense(units=1))

# Compiling the RNN
regressorGRU.compile(optimizer='adam',loss='mean_squared_error')
# Fitting to the training set
regressorGRU.fit(X_train,y_train,epochs=50,batch_size=32)

AndAqu é meu código completo, você também pode executar esse código emgoogle colab.

Então minha pergunta é qual é a razão por trás disso? o que estou fazendo de errado alguma sugestão?

questionAnswers(2)

yourAnswerToTheQuestion