概率预测
使用一致性预测进行不确定性量化
关于如何训练 NeuralForecast 模型并使用一致性预测方法获得预测区间的教程
一致性预测对使用点损失函数训练的模型进行交叉验证,以生成预测区间。无需额外训练,模型被视为黑盒。此方法兼容任何模型。
在本 notebook 中,我们将演示如何使用一致性预测来获得预测区间。
加载库
数据
我们使用 AirPassengers 数据集来演示一致性预测。
模型训练
我们现在在上述数据集上训练一个 NHITS 模型。为了支持一致性预测,我们必须首先实例化 PredictionIntervals
类,并将其传递给 fit
方法。默认情况下,PredictionIntervals
类在计算一致性分数时,会使用 n_windows=2
进行交叉验证。我们还使用 DistributionLoss 训练了一个 MLP 模型,以演示一致性预测与分位数输出之间的差异。
默认情况下,PredictionIntervals
类对一致性预测使用 method=conformal_distribution
方法,但也支持 method=conformal_error
方法。conformal_distribution
方法使用绝对误差计算预测路径,并基于此计算分位数。conformal_error
方法直接根据误差计算分位数。
我们考虑以下两种模型
- 使用点损失函数 (
MAE
) 训练的模型,我们使用一致性预测量化不确定性。此情况标记为NHITS
。 - 使用
DistributionLoss('Normal')
训练的模型,我们通过训练模型以拟合正态分布的参数来量化不确定性。此情况标记为NHITS1
。
预测
要生成一致性区间,我们在 predict
方法中指定所需的水平。