如何在 gluon-ts 中将多个附加回归器与 DeepAREstimator 一起使用?

wat*_*qat 4 gluon

在 gluon-ts 中创建训练或测试数据时,我们可以通过DeepAREstimator指定feat_dynamic_real. 是否支持多个实值回归量?

有一个one_dim_target标志gluonts.dataset.common.ListDataset用于创建训练/测试数据对象。这似乎可能需要支持多个额外的回归器,但是我找不到关于预期用途的好例子。

以下是使用一个附加回归器创建训练数据的设置:

training_data = ListDataset(
    [{"start": df.index[0], "target": df.values, "feat_dynamic_real": df['randomColumn'].values}],
    freq = "5min", one_dim_target=False
)
Run Code Online (Sandbox Code Playgroud)

和估计器:

from gluonts.model.deepar import DeepAREstimator
from gluonts.trainer import Trainer

estimator = DeepAREstimator(freq="5min", prediction_length=12, trainer=Trainer(epochs=10))
predictor = estimator.train(training_data=training_data)
Run Code Online (Sandbox Code Playgroud)

我正在寻找多个回归器所需的语法/配置。

Mar*_*son 5

是的,这是有支持的。首先,Gluon TS 将回归量称为特征,将我们尝试预测的信号称为目标。因此,one_dim_target您提到的标志与输出的维度有关,而不是与输入的维度有关。

下面是我用来将多维特征(输入)与每个目标信号相关联的代码(我使用一维目标)

train_ds = ListDataset([{FieldName.TARGET: target,
                     FieldName.START: start,
                     FieldName.FEAT_DYNAMIC_REAL: fdr}
                    for (target, start, fdr) in zip(
target,
custom_ds_metadata['start'],
feat_dynamic_real)]
Run Code Online (Sandbox Code Playgroud)

在上面的 zip 函数中,

  1. target:是包含目标信号的一维numpy数组,即形状为target(1,#of time steps)
  2. custom_ds_metadata['start']:是一个pandas日期变量,表示数据的开始
  3. feat_dynamic_real:是一个包含两个特征信号的二维numpy数组,即feat_dynamic_real具有形状(#of features, #number of time steps)