gluonts.transform.convert 模块#

class gluonts.transform.convert.AsNumpyArray(field: str, expected_ndim: int, dtype: typing.Type = <class 'numpy.float32'>)[源代码]#

基类:gluonts.transform._base.SimpleTransformation

将字段的值转换为 numpy 数组。

参数
  • expected_ndim – 预期维度数。如果维度数不匹配,则抛出异常。

  • dtype – 要使用的 numpy 数据类型。

transform(data: Dict[str, Any]) Dict[str, Any][源代码]#
class gluonts.transform.convert.CDFtoGaussianTransform(target_dim: int, target_field: str, observed_values_field: str, cdf_suffix='_cdf', max_context_length: typing.Optional[int] = None, dtype: typing.Type = <class 'numpy.float32'>)[源代码]#

基类:gluonts.transform._base.MapTransformation

边缘变换,通过经验 CDF 将目标转换为标准高斯分布,详情请见:https://arxiv.org/abs/1910.03002

与多元高斯分布结合使用以形成 Copula。请注意,此变换目前仅适用于多元目标。

map_transform(data: Dict[str, Any], is_train: bool) Dict[str, Any][源代码]#
static standard_gaussian_cdf(x: numpy.ndarray) numpy.ndarray[源代码]#
static standard_gaussian_ppf(y: numpy.ndarray) numpy.ndarray[源代码]#
static winsorized_cutoff(m: float) float[源代码]#

对经验 CDF 估计器应用截断以减少方差,详情请见:https://arxiv.org/abs/0903.0649

参数

m – 输入的经验 CDF 值。

返回值

截断的经验 CDF 值。

返回类型

res

class gluonts.transform.convert.ConcatFeatures(output_field: str, input_fields: List[str], drop_inputs: bool = True)[源代码]#

基类:gluonts.transform._base.SimpleTransformation

使用 np.concatenate 连接字段。

值为 None 的字段将被忽略。

参数
  • output_field – 用于输出的字段名称

  • input_fields – 要堆叠在一起的字段

  • drop_inputs – 如果设置为 True,则输入字段将被删除。

transform(data: Dict[str, Any]) Dict[str, Any][源代码]#
class gluonts.transform.convert.ExpandDimArray(field: str, axis: Optional[int] = None)[源代码]#

基类:gluonts.transform._base.SimpleTransformation

扩展指定轴上的维度,如果轴不存在,则不执行任何操作。(这本质上调用了 np.expand_dims)

参数
  • field – 要使用的字典中的字段

  • axis – 要扩展的轴 (详情请参阅 np.expand_dims)

transform(data: Dict[str, Any]) Dict[str, Any][源代码]#
class gluonts.transform.convert.ListFeatures(output_field: str, input_fields: List[str], drop_inputs: bool = True)[源代码]#

基类:gluonts.transform._base.SimpleTransformation

创建一个包含特征列表的新字段。

参数
  • output_field – 输出字段名称

  • input_fields – 要组合成列表的字段

  • drop_inputs – 如果为 True,则输入字段将从结果中移除。

transform(data: Dict[str, Any]) Dict[str, Any][源代码]#
class gluonts.transform.convert.QuantizeMeanScaled(bin_edges: List[float], past_target_field: str = 'past_target', past_observed_values_field: str = 'past_observed_values', future_target_field: str = 'future_target', scale_field: str = 'scale')[源代码]#

基类:gluonts.transform._base.SimpleTransformation

重新缩放目标变量并进行量化。需要存在 past_target_fieldfuture_target_field

使用 past_target 的平均绝对值来重新缩放 past_target 和 future_target。然后使用 bin_edges 对重新缩放后的目标进行量化。

计算出的比例存储在 scale_field 中。

参数
  • bin_edges – 用于量化的分箱边界。

  • past_target_field – 包含 past_target 的字段名称,默认为“past_target”

  • optional – 包含 past_target 的字段名称,默认为“past_target”

  • past_observed_values_field – 包含 past_observed_values 的字段名称,默认为“past_observed_values”

  • optional – 包含 past_observed_values 的字段名称,默认为“past_observed_values”

  • future_target_field – 包含 future_target 的字段名称,默认为“future_target”

  • optional – 包含 future_target 的字段名称,默认为“future_target”

  • scale_field – 存储比例的字段名称,默认为“scale”

  • optional – 存储比例的字段名称,默认为“scale”

transform(data: Dict[str, Any]) Dict[str, Any][源代码]#
class gluonts.transform.convert.SampleTargetDim(field_name: str, target_field: str, observed_values_field: str, num_samples: int, shuffle: bool = True)[源代码]#

基类:gluonts.transform._base.FlatMapTransformation

在训练时从目标中采样随机维度。

flatmap_transform(data: Dict[str, Any], is_train: bool) Iterator[Dict[str, Any]][源代码]#
class gluonts.transform.convert.SwapAxes(input_fields: List[str], axes: Tuple[int, int])[源代码]#

基类:gluonts.transform._base.SimpleTransformation

对字段应用 np.swapaxes

参数
  • input_fields – 要应用的字段

  • axes – 要使用的轴

swap(v)[源代码]#
transform(data: Dict[str, Any]) Dict[str, Any][源代码]#
class gluonts.transform.convert.TargetDimIndicator(field_name: str, target_field: str)[源代码]#

基类:gluonts.transform._base.SimpleTransformation

目标维度的标签编码。

transform(data: Dict[str, Any]) Dict[str, Any][源代码]#
class gluonts.transform.convert.ToIntervalSizeFormat(target_field: str, drop_empty: bool = False, discard_first: bool = False)[源代码]#

基类:gluonts.transform._base.FlatMapTransformation

将稀疏单变量时间序列转换为 interval-size 格式,即一个二维时间序列,其中第一维对应于自上次正值以来的时间(1-indexed),第二维对应于需求的规模。这种格式常用于间歇性需求文献中,在此类“密集”时间序列上进行预测,例如 Croston 方法。

例如,时间序列 [0, 0, 1, 0, 3, 2, 0, 4] 被转换为二维时间序列 [[3, 2, 1, 2], [1, 3, 2, 4]] ,形状为 (2, M),其中 M 表示时间序列中非零项的数量。

参数
  • target_field – 要转换的目标字段,包含一个单变量稀疏时间序列

  • drop_empty – 如果为 True,则全零时间序列将被删除。

  • discard_first – 如果为 True,则转换后的密集序列中的第一个元素将被删除,目标将替换为 (2, M-1) 张量。这可用于第一个“需求间隔”时间未明确定义的情况,例如,当时间序列的真实起始索引未知时。

flatmap_transform(data: Dict[str, Any], is_train: bool) Iterator[Dict[str, Any]][源代码]#
class gluonts.transform.convert.Valmap(fn: Callable)[源代码]#

基类:gluonts.transform._base.SimpleTransformation

transform(data: Dict[str, Any]) Dict[str, Any][源代码]#
class gluonts.transform.convert.VstackFeatures(output_field: str, input_fields: List[str], drop_inputs: bool = True, h_stack: bool = False)[源代码]#

基类:gluonts.transform._base.SimpleTransformation

当 h_stack = False 时,使用 np.vstack 将字段堆叠在一起。否则使用 np.hstack 将字段堆叠在一起。

值为 None 的字段将被忽略。

参数
  • output_field – 用于输出的字段名称

  • input_fields – 要堆叠在一起的字段

  • drop_inputs – 如果设置为 True,则输入字段将被删除。

  • h_stack – 横向堆叠而不是纵向堆叠

transform(data: Dict[str, Any]) Dict[str, Any][源代码]#
gluonts.transform.convert.cdf_to_gaussian_forward_transform(input_batch: Dict[str, Any], outputs: numpy.ndarray) numpy.ndarray[源代码]#

CDFtoGaussianTransform 的前向变换。

参数
  • input_batch – 输入预测器的输入数据。

  • outputs – 预测器输出。

返回值

前向变换后的输出。

返回类型

outputs

gluonts.transform.convert.erf(x: numpy.ndarray) numpy.ndarray[源代码]#
gluonts.transform.convert.erfinv(x: numpy.ndarray) numpy.ndarray[源代码]#