Я пытался предсказать прогноз на n дней вперед через ANN.Результаты поезда и тестовые периоды были идеальными, но период проверки был бессмысленным.Любое предложение?
Данные:
X_train[5:]
[[ 1. 2. 3. 4. 5.]
[ 2. 3. 4. 5. 6.]
[ 3. 4. 5. 6. 7.]
[ 4. 5. 6. 7. 8.]
[ 5. 6. 7. 8. 9.]]
y_train[5:]
[ 6 7 8 9 10]
X_test[5:]
[[700. 701. 702. 703. 704.]
[701. 702. 703. 704. 705.]
[702. 703. 704. 705. 706.]
[703. 704. 705. 706. 707.]
[704. 705. 706. 707. 708.]]
y_test[5:]
[ 705 706 707 708 709]
Суммированный код:
model = Sequential()
model.add(Dense(units=200, input_shape=X_train.shape[1:]))
model.add(BatchNormalization())
model.add(Activation(activation='relu'))
model.add(Dropout(0.2))
# Second Hidden Layer
model.add(Dense(units=80))
model.add(BatchNormalization())
model.add(Activation(activation='relu'))
model.add(Dropout(0.2))
# Output Layer
model.add(Dense(units=1, activation='relu'))
# Training the model
optimizer = keras.optimizers.adam(lr=1e-2, decay=1e-4)
model.compile(optimizer=optimizer, loss='mean_squared_error')
history= model.fit(X_train, y_train, epochs=300, batch_size=256, verbose=0, validation_data=(X_test, y_test))
# Forecast
yhat_train = model.predict(X_train, verbose=0)
yhat_test = model.predict(X_test, verbose=0)
ValidDataSet=np.append (X_train, X_test)
# Rolling-forecast scenario, also called walk-forward model validation
for n_phase in range(0,n_valid):
yhat_valid = model.predict(ValidDataSet, verbose=0)
Forecast = yhat_valid[-1]
ValidDataSet = np.append (predValidToAdd, yhat_valid[-1])
График всех 3 периодов: График периодов проверки испытаний поезда