我已经在Keras中编写了LSTM,用于单变量时间序列预测。我正在使用大小为48的输入窗口和大小为12的输出窗口,即我一次预测了12个步骤。与RMSE之类的优化指标配合使用,效果通常很好。
对于非平稳时间序列,在将数据提供给LSTM之前,我要对数据进行差分处理。然后,在进行预测之后,我采用了预测的反差。
进行区分时,RMSE不适合作为优化指标,因为早期的预测步骤比后面的步骤重要得多。当我们在创建12个步骤的预测后进行反差时,则较早(有区别的)预测步骤将影响后续步骤的反差。
所以我认为我需要的是一种优化指标,该指标可以使早期预测步骤的权重更大,最好是指数方式。
这样的指标是否已经存在,或者我应该自己编写?我在俯视什么吗?
答案 0 :(得分:0)
只需编写我自己的优化指标,就可以很好地运行,肯定比RMSE好。
仍然好奇这里的最佳做法是什么。我对预测还比较陌生。
from tensorflow.keras import backend as K
def weighted_rmse(y_true, y_pred):
weights = K.arange(start=y_pred.get_shape()[1], stop=0, step=-1, dtype='float32')
y_true_w = y_true * weights
y_pred_w = y_pred * weights
return K.sqrt(K.mean(K.square(y_true_w - y_pred_w), axis=-1))