Бессмысленный период валидации многошагового прогнозирования через python и ANN - PullRequest
0 голосов
/ 21 сентября 2019

Я пытался предсказать прогноз на 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 периодов: График периодов проверки испытаний поезда

...