我正在尝试使用 LSTM 模型预测单变量时间序列的值,但即使时间序列只有正值,预测值有时也会是负值。我注意到当我改变序列大小时会发生这种情况。 我不知道为什么会发生这种情况。下面是 LSTM 模型。
model = Sequential([
LSTM(units, activation='tanh', return_sequences=True, input_shape=(None, 1)),
Dropout(0.2),
LSTM(units, activation='tanh', return_sequences=False),
Dense(1)
])
model.compile(optimizer='adam', loss='mean_squared_error')
# Early stopping
early_stop = EarlyStopping(monitor='val_loss', patience=20, verbose=1)
model.summary()
history = model.fit(trainX, trainY, epochs=100, batch_size=32, validation_data=(testX, testY), callbacks=[early_stop], verbose=2)
trainPredict = model.predict(trainX)
testPredict = model.predict(testX)
例如,对于每小时时间步长的一个月数据,我设置 seq_size=24 并且模型预测负值。
需要澄清一些事情,例如您想要预测什么?预测值的频率是多少?您在代码中的哪个位置使用 seq_size=24?