我有一个使用 python 在 keras 中构建和运行的 LSTM。我用这个模型来预测指向时间序列预测问题的未来。
当我使用 ARIMA 等方法进行预测时,我能够为我的预测生成预测误差,因为模型是通过使用 AIC 最小化 MLE 来拟合的。
keras 目前是否支持我为回归预测生成预测错误的方法?如果没有,有没有办法自己计算?
我有一个使用 python 在 keras 中构建和运行的 LSTM。我用这个模型来预测指向时间序列预测问题的未来。
当我使用 ARIMA 等方法进行预测时,我能够为我的预测生成预测误差,因为模型是通过使用 AIC 最小化 MLE 来拟合的。
keras 目前是否支持我为回归预测生成预测错误的方法?如果没有,有没有办法自己计算?
您可以使用文章“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如果您需要更多(或更少)精度,您可以增加(或减少)。