gluonts.transform.split 模块#

class gluonts.transform.split.CanonicalInstanceSplitter(target_field: str, is_pad_field: str, start_field: str, forecast_start_field: str, instance_sampler: gluonts.transform.sampler.InstanceSampler, instance_length: int, output_NTC: bool = True, time_series_fields: List[str] = [], allow_target_padding: bool = False, pad_value: float = 0.0, use_prediction_features: bool = False, prediction_length: Optional[int] = None)[source]#

基类: gluonts.transform._base.FlatMapTransformation

通过在训练模式下随机点或预测模式下最后一个时间点对目标和其他时间序列类数组进行切片来选择实例。假设所有时间序列类数组都从同一个时间点开始。

在训练模式下,返回的实例包含 `past_`target_field` 以及 `past_`time_series_fields`。

在预测模式下,可以设置 `use_prediction_features` 来获取 `future_`time_series_fields`。

如果目标数组是一维的,则结果实例中的 `target_field` 形状为 (`instance_length`)。在多维情况下,实例形状为 (`dim`, `instance_length`),其中 `dim` 也可以取值为 1。

如果时间序列值数量不足,转换还会添加一个字段“past_is_pad”,指示值是否已被填充,填充值默认为 0 (`default_pad_value`)。这仅在 `allow_target_padding` 为 `True` 且 `target` 的长度小于 `instance_length` 时进行。

参数
  • target_field – 包含时间序列的字段

  • is_pad_field – 输出字段,指示是否发生了填充

  • start_field – 包含时间序列起始日期的字段

  • forecast_start_field – 包含预测起始日期的字段

  • instance_sampler – 实例采样器,给定时间序列,提供采样索引

  • instance_length – 进行预测前可见的目标长度

  • output_NTC – 时间序列输出采用 (时间, 维度) 还是 (维度, 时间) 布局

  • time_series_fields – 包含时间序列的字段,它们与目标在相同的间隔内被切分

  • allow_target_padding – 允许填充的标志

  • pad_value – 用于填充的值

  • use_prediction_features – 指示是否应返回预测范围特征的标志

  • prediction_length – 预测范围的长度,如果 `use_prediction_features` 为 True,则必须设置此项

flatmap_transform(data: Dict[str, Any], is_train: bool) Iterator[Dict[str, Any]][source]#
class gluonts.transform.split.ContinuousTimeInstanceSplitter(past_interval_length: float, future_interval_length: float, freq: pandas._libs.tslibs.offsets.BaseOffset, instance_sampler: gluonts.transform.sampler.ContinuousTimePointSampler, target_field: str = 'target', start_field: str = 'start', end_field: str = 'end', forecast_start_field: str = 'forecast_start')[source]#

基类: gluonts.transform._base.FlatMapTransformation

通过从连续时间过程中实例化中切分“间隔”来选择训练实例。具体而言,输入的 数据 应描述一个点(或跳跃)过程的实例化,其中“目标”标识连续点之间的到达间隔时间和 其他特征(标记),如下文详细描述。

切分器将从每个给定的观测数据中随机选取连续时间点,并返回过去(上下文)和未来(预测)间隔中的点数组(长度可变)。

此转换类似于其离散对应项 `InstanceSplitter`,不同之处在于

  • 它不允许“不完整”的记录。也就是说,采样的过去和未来间隔始终是完整的。

  • 输出 (T, C) 布局。

  • 不接受 `time_series_fields`(即,只接受目标字段),因为这些字段通常不会在 TPP 数据中可用。

目标数组应具有 (2, T) 布局,其中第一轴对应于按顺序排列的连续点之间的(i)到达间隔时间和(ii)标记的整数标识符(来自 {0, 1, …, num_marks})。返回的数组将具有 (T, 2) 布局。

例如,下面的数组对应于一个目标数组,其中观察到了时间戳分别为 0.5、1.1 和 1.5 的点,这些点分别属于类别(标记)3、1 和 0:[[0.5, 0.6, 0.4], [3, 1, 0]]

参数
  • past_interval_length – 进行预测前可见的间隔长度

  • future_interval_length – 必须预测的间隔长度

  • train_sampler – 实例采样器,给定时间序列,提供采样索引

  • target_field – 包含目标的字段

  • start_field – 包含点过程观测起始日期的字段

  • end_field – 包含点过程观测结束日期的字段

  • forecast_start_field – 输出字段,将包含预测开始的时间点

flatmap_transform(data: Dict[str, Any], is_train: bool) Iterator[Dict[str, Any]][source]#
class gluonts.transform.split.InstanceSplitter(target_field: str, is_pad_field: str, start_field: str, forecast_start_field: str, instance_sampler: gluonts.transform.sampler.InstanceSampler, past_length: int, future_length: int, lead_time: int = 0, output_NTC: bool = True, time_series_fields: List[str] = [], dummy_value: float = 0.0)[source]#

基类: gluonts.transform._base.FlatMapTransformation

从数据集中切分实例,通过在指定采样器选择的时间点对目标和其他时间序列字段进行切片。假设所有时间序列字段都从同一个时间点开始。

假设时间轴始终是最后一个轴。

`target_field` 和 `time_series_fields` 中的每个字段都将被移除,并替换为两个新字段,分别带有 `past_` 和 `future_` 前缀。

还添加了一个 `past_is_pad` 字段,指示给定时间点的值是否为填充。

参数
  • target_field – 包含目标的字段

  • is_pad_field – 输出字段,指示是否发生了填充

  • start_field – 包含时间序列起始日期的字段

  • forecast_start_field – 输出字段,将包含预测开始的时间点

  • instance_sampler – 实例采样器,给定时间序列,提供采样索引

  • past_length – 进行预测前可见的目标长度

  • future_length – 必须预测的目标长度

  • lead_time – 过去窗口和未来窗口之间的间隔(默认值:0)

  • output_NTC – 时间序列输出采用 (时间, 维度) 还是 (维度, 时间) 布局(默认值:True)

  • time_series_fields – 包含时间序列的字段,它们与目标在相同的间隔内被切分(默认值:None)

  • dummy_value – 用于填充的值。(默认值:0.0)

flatmap_transform(entry: Dict[str, Any], is_train: bool) Iterator[Dict[str, Any]][source]#
class gluonts.transform.split.TFTInstanceSplitter(instance_sampler: gluonts.transform.sampler.InstanceSampler, past_length: int, future_length: int, target_field: str = 'target', is_pad_field: str = 'is_pad', start_field: str = 'start', forecast_start_field: str = 'forecast_start', observed_value_field: str = 'observed_values', lead_time: int = 0, output_NTC: bool = True, time_series_fields: List[str] = [], past_time_series_fields: List[str] = [], dummy_value: float = 0.0)[source]#

基类: gluonts.transform.split.InstanceSplitter

Temporal Fusion Transformer 模型使用的实例切分器。

与 `InstanceSplitter` 不同,此类将已知的动态特征作为单个张量返回,其形状为 […, context_length + prediction_length, …],而不会将其切分为过去和未来部分。此外,此类支持在过去已知的动态特征。

flatmap_transform(data: Dict[str, Any], is_train: bool) Iterator[Dict[str, Any]][source]#