在gluon-ts中,我如何在DeepAREstimator中使用一个以上的回归器?

时间:2019-07-01 00:28:03

标签: gluon

在gluon-ts中创建训练或测试数据时,我们可以通过指定DeepAREstimatorfeat_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
)

和估算器:

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)

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

1 个答案:

答案 0 :(得分:0)

是的,对此有支持。首先,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)]

在上面的压缩功能中,

  1. target:是包含目标信号的一维numpy数组,即target的形状为(1,#个时间步长)
  2. custom_ds_metadata['start']:是一个熊猫日期变量,指示数据的开始
  3. feat_dynamic_real:是包含两个特征信号的二维numpy数组,即feat_dynamic_real具有形状(特征数,时间步长数)