如何计算 LSTM keras 中的预测误差

数据挖掘 喀拉斯 时间序列 预测建模 回归 预报
2022-03-06 21:43:16

我有一个使用 python 在 keras 中构建和运行的 LSTM。我用这个模型来预测n指向时间序列预测问题的未来。

当我使用 ARIMA 等方法进行预测时,我能够为我的预测生成预测误差,因为模型是通过使用 AIC 最小化 MLE 来拟合的。

keras 目前是否支持我为回归预测生成预测错误的方法?如果没有,有没有办法自己计算?

1个回答

您可以使用文章“Dropout as a Bayesian Approximation: Representing Model Uncertainty in Deep Learning”中解释的技术

非常简单地说,该技术包括应用 dropout进行训练和预测

在 Keras 中,这可以很容易地应用training,在 Dropout 层的调用中传递参数。

import keras

input  = ...
x      = keras.layer.Dense(100)(input)
dp     = keras.layer.Dropout(0.5)(x, training=True)
output = keras.layer.Activation('relu')

model = keral.Model(input, output)

在预测期间,您会得到平均值和标准差:

T = 1000   # Do 1000 predictions to estimate uncertainty
predictions = np.array([model.predict(X_test)] for _ in range(T)])

pred_mean = results.mean(axis=0)
pre_std   = results.std(axis=0)

T如果您需要更多(或更少)精度,您可以增加(或减少)。