进行多步预测时,针对差异数据的哪种优化指标?

时间:2019-04-16 07:42:01

标签: python keras time-series lstm forecasting

我已经在Keras中编写了LSTM,用于单变量时间序列预测。我正在使用大小为48的输入窗口和大小为12的输出窗口,即我一次预测了12个步骤。与RMSE之类的优化指标配合使用,效果通常很好。

对于非平稳时间序列,在将数据提供给LSTM之前,我要对数据进行差分处理。然后,在进行预测之后,我采用了预测的反差。

进行区分时,RMSE不适合作为优化指标,因为早期的预测步骤比后面的步骤重要得多。当我们在创建12个步骤的预测后进行反差时,则较早(有区别的)预测步骤将影响后续步骤的反差。

所以我认为我需要的是一种优化指标,该指标可以使早期预测步骤的权重更大,最好是指数方式。

这样的指标是否已经存在,或者我应该自己编写?我在俯视什么吗?

1 个答案:

答案 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))