我试着通过ANN提前n天预测。培训和测试阶段的结果是完美的,但验证阶段是没有意义的。有什么建议吗?你知道吗
数据:
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])
三个时期的曲线图: Plot of train-test-validation periods
目前没有回答
相关问题 更多 >
编程相关推荐