我正在训练一个神经网络,通过传递昨天的可用性(144个样本)来预测一整天的可用性(144个样本,6个特征)。对于如何定义神经网络来预测回归问题中的时间序列,我很难找到好的资源或解释。训练被定义为一个监督学习问题。我对神经网络的定义是,
lstm_neurons = 30
model = Sequential()
model.add(LSTM(lstm_neurons * 2, input_shape=(self.train_x.shape[1], sel f.train_x.shape[2]), return_sequences=True))
model.add(LSTM(lstm_neurons * 2))
model.add(Dense(len_day, activation='softmax'))
model.compile(loss='mean_squared_error', optimizer='adam', metrics = [rm se, 'mae', 'mape'])我正在训练20个批次大小为200的时代,其中使用的数据集具有以下形状,
Train X (9631, 144, 6)
Train Y (9631, 144)
Test X (137, 144, 6)
Test Y (137, 144)
Validation X (3990, 144, 6)
Validation Y (3990, 144)所有这些都产生了nan值在loss,rmse,mae的训练中.虽然这看起来是个问题,但我可以使用生成的模型来生成预测,它们看起来不错。
发布于 2019-12-26 16:44:31
首先要问的问题是,你是否试图根据将可用性解释为一种概率度量来预测时间序列?
softmax激活函数在这种情况下工作最好--但是当您实际上试图预测一个间隔时间序列时,您可能会错误地指定它--这就是为什么您要为您的结果获取NaN读数。
此示例可能对您有用- LSTM用于此示例来预测每周酒店取消量的波动。
类似于您的示例,X_train和X_val被重新定义为示例、时间步骤和特性。
X_train = np.reshape(X_train, (X_train.shape[0], 1, X_train.shape[1]))
X_val = np.reshape(X_val, (X_val.shape[0], 1, X_val.shape[1]))LSTM网络的定义如下:
# Generate LSTM network
model = tf.keras.Sequential()
model.add(LSTM(4, input_shape=(1, previous)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(X_train, Y_train, epochs=20, batch_size=1, verbose=2)正如您所看到的,均方误差被用作损失函数,因为所讨论的取消变量是间隔的(即可以接受范围很广的值,并且不一定受到任何特定尺度的限制)。
我只能猜测,因为我还没有看到您的数据或结果,但是如果不合适的话,将softmax定义为您的激活函数可能会出错--我怀疑是这样的,因为您也在使用均方误差作为损失度量。
在上面的例子中,致密层本身没有指定激活函数。
关于如何选择验证使用LSTM进行时间序列预测是否有效,一个潜在的好主意是将发现与更简单的时间序列模型进行比较,例如ARIMA。
使用我们的例子,ARIMA在Hotel 1的预测中表现得更好,而在Hotel 2的预测中表现更好。
H1 Results
Reading ARIMA LSTM
MDA 0.86 0.8
RMSE 57.95 63.89
MFE -12.72 -54.25
H2 Results
Reading ARIMA LSTM
MDA 0.86 0.8
RMSE 274.07 95.28
MFE 156.32 38.65最后,在使用训练集和验证集创建数据集时,还必须确保使用的是正确的以前的参数,即选择在t时对观测数据进行回退的时间周期的数目。
例如,您正在使用昨天的可用性--但您可能会发现,使用前5或10天改进了模型。
# Number of previous
previous = 5
X_train, Y_train = create_dataset(train, previous)
X_val, Y_val = create_dataset(val, previous)在您的情况下,我要检查的第一件事是使用softmax激活函数,并从那里开始工作。
https://stackoverflow.com/questions/59487800
复制相似问题