时间轴编码器

编码器可以通过编码时间序列 series 的索引来生成过去和/或未来的协变量序列。每个编码器类都有方法 encode_train()encode_inference()encode_train_inference() 来生成训练和推理的编码。

编码器从目标序列或可选的额外过去/未来协变量中提取索引。如果向 encode_train()encode_inference()encode_train_inference() 提供了额外的协变量,则这些协变量的时间索引将用于编码。这意味着输入的协变量必须满足与没有编码器时相同的模型特定要求。

有两种主要的编码器类:SingleEncoderSequentialEncoder

  • SingleEncoder

    SingleEncoder 类承载了过去和未来协变量的编码逻辑,以及训练和推理数据集。它们可以作为独立的编码器使用。

    每个 SingleEncoder 都有一个专门的子类用于生成过去或未来的协变量。命名约定是 {X}{SingleEncoder},其中 {X} 是 (Past, Future) 之一,{SingleEncoder} 是下一节中描述的 SingleEncoder 类之一。例如:

    encoder = PastDatetimeAttributeEncoder(
        input_chunk_length=24,
        output_chunk_length=12,
        attribute='month'
        tz='CET'
    )
    
    past_covariates_train = encoder.encode_train(
        target=target,
        covariates=optional_past_covariates
    )
    past_covariates_inf = encoder.encode_inference(
        n=12,
        target=target,
        covariates=optional_past_covariates
    )
    # or generate encodings for train and inference together
    past_covariates_train_inf = encoder.encode_train_inference(
        n=12,
        target=target,
        covariates=optional_past_covariates
    )
    
  • SequentialEncoder

    在一个统一的框架下存储和管理多个用于过去和/或未来协变量的SingleEncoders。它提供了与SingleEncoders相同的功能(encode_train()encode_inference()`和`encode_train_inference())。它可以单独使用,也可以作为Darts预测模型中支持通过可选参数`add_encoders`的协变量的全套解决方案。

    model = SomeForecastingModel(..., add_encoders={...})
    

    如果在模型创建时使用,SequentialEncoder 将自主处理所有过去和未来的编码器。模型参数 add_encoders 的要求在下一节或 SequentialEncoder 中有描述。

SingleEncoder

来自 {X}{SingleEncoder} 的 SingleEncoders 有:

  • DatetimeAttributeEncoder

    添加从 series.time_index 派生的标量 pd.DatetimeIndex 属性信息。要求 series 具有 pd.DatetimeIndex。

    属性

    pd.DatetimeIndex 的一个属性:查看所有可用属性在 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DatetimeIndex.html#pandas.DatetimeIndex

    时区

    可选地,在应用编码器之前,将时区天真的索引转换为时区 tz

  • CyclicTemporalEncoder

    series.time_index 中推导出循环的 pd.DatetimeIndex 属性信息。添加两列,分别对应于 sin 和 cos 编码,以唯一描述底层属性。要求 series 具有 pd.DatetimeIndex。

    属性

    pd.DatetimeIndex 的一个属性,遵循循环模式。其中之一是 (‘month’, ‘day’, ‘weekday’, ‘dayofweek’, ‘day_of_week’, ‘hour’, ‘minute’, ‘second’, ‘microsecond’, ‘nanosecond’, ‘quarter’, ‘dayofyear’, ‘day_of_year’, ‘week’, ‘weekofyear’, ‘week_of_year’)。

    时区

    可选地,在应用编码器之前,将时区天真的索引转换为时区 tz

  • IntegerIndexEncoder

    添加从 series 时间索引派生的相对索引位置作为整数值(位置)。series 可以具有 pd.DatetimeIndex 或整数索引。

    属性

    目前,仅支持 ‘relative’。’relative’ 将生成相对于预测/预测点的位置值。值的范围从 -inf 到 inf,其中 0 设置在预测点。

  • CallableIndexEncoder

    将用户定义的可调用对象应用于编码 series 的索引。series 可以具有 pd.DatetimeIndex 或整数索引。

    属性

    一个可调用/函数来编码索引。对于带有 pd.DatetimeIndex 的 serieslambda index: (index.year - 1950) / 50。对于带有整数索引的 serieslambda index: index / 50

SequentialEncoder

SequentialEncoder 结合了上述所有 SingleEncoders 的逻辑,并具有额外的优势:

  • 同时使用多个编码器

  • 一次生成多个属性编码

  • 同时生成过去和未来

  • 支持转换器 (Scaler)

  • 易于与任何支持协变量的预测模型一起使用。

模型参数 add_encoders 必须是一个遵循以下约定的字典:

  • 外部键:SingleEncoder 和 Transformer 标签:

    • ‘datetime_attribute’ 用于 DatetimeAttributeEncoder

    • ‘cyclic’ 用于 CyclicEncoder

    • ‘position’ 用于 IntegerIndexEncoder

    • ‘custom’ 用于 CallableIndexEncoder

    • ‘transformer’ 用于变压器

    • ‘tz’ 用于应用时区转换

  • 内部键:协变量类型

    • ‘past’ 用于过去的协变量

    • ‘future’ 用于未来协变量

    • (不要为 ‘transformer’ 指定)

  • 内部键值:

    • SingleEncoder 的属性列表

    • 用于 ‘transformer’ 的转换器对象

下面是一个示例,展示了适用于小时数据的 add_encoders 字典,以及如何将其与 TorchForecastingModel 一起使用(这仅用于一次性展示多种功能)。

add_encoders = {
    'cyclic': {'future': ['month']},
    'datetime_attribute': {'future': ['hour', 'dayofweek']},
    'position': {'past': ['relative'], 'future': ['relative']},
    'custom': {'past': [lambda idx: (idx.year - 1950) / 50]},
    'transformer': Scaler(),
    'tz': 'CET',
}

model = SomeTorchForecastingModel(..., add_encoders=add_encoders)
class darts.dataprocessing.encoders.encoders.CallableIndexEncoder(index_generator, attribute)[源代码]

基类:SingleEncoder

CallableIndexEncoder: 对过去和未来协变量的基础索引应用用户定义的可调用对象进行编码。

属性

accept_transformer

CallableIndexEncoder 接受转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

参数
  • index_generator (CovariatesIndexGenerator) – 一个 CovariatesIndexGenerator 实例,包含 generate_train_idx()generate_inference_idx() 方法。用于生成编码器的索引。

  • attribute (Callable) – 一个可调用的函数,输入参数为类型为 (pd.DatetimeIndex, pd.RangeIndex) 的索引 index,并返回形状为 (len(index),) 的 np.ndarray。对于类型为 pd.DatetimeIndex 的 index,正确 attribute 的示例为:attribute = lambda index: (index.year - 1950) / 50。对于 pd.RangeIndex 的 index,则为:attribute = lambda index: (index - 1950) / 50

属性

accept_transformer

CallableIndexEncoder 接受转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

property accept_transformer: List[bool]

CallableIndexEncoder 接受转换。

返回类型

List[bool]

property base_component_name: str

返回基础编码器的基础组件名称。字符串遵循给定的格式:”darts_enc_{covariates_temp}_{encoder}_{attribute}”,其中元素为:

  • covariates_temp: 分别用于过去或未来协变量的“pc”或“fc”。

  • 编码器:使用的 SingleEncoder 类型:
    • “cyc”(循环时间编码器)

    • “dta”(日期时间属性编码器),

    • “pos”(位置整数索引编码器),

    • cus (自定义可调用索引编码器)

  • 属性: 用于底层编码器的属性。一些例子:
    • “month_sin”, “month_cos” (用于 “cyc”)

    • “月份”(用于“dta”)

    • “相对”(用于“位置”)

    • “custom”(用于“cus”)

返回类型

str

property components: Index

返回编码后的组件名称。仅在调用 Encoder.encode_train()Encoder.encode_inference() 之后可用。

返回类型

Index

encode_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train(target, covariates=None, merge_covariates=True, **kwargs)

返回用于训练的编码索引。

参数
  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 训练和预测过程中使用的目标时间序列。

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练和预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

property encoding_n_components: int

SingleEncoder 输出中的组件数量。

返回类型

int

property fit_called: bool

返回 Encoder 对象是否已被拟合。

返回类型

bool

property requires_fit: bool

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

返回类型

bool

class darts.dataprocessing.encoders.encoders.CyclicTemporalEncoder(index_generator, attribute, tz=None)[源代码]

基类:SingleEncoder

CyclicTemporalEncoder:时间序列日期时间属性的循环编码。

属性

accept_transformer

CyclicTemporalEncoder 不应被转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

用于 TimeSeries 的循环索引编码,其时间索引类型为 pd.DatetimeIndex

参数

属性

accept_transformer

CyclicTemporalEncoder 不应被转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

property accept_transformer: List[bool]

CyclicTemporalEncoder 不应被转换。返回正弦和余弦波的两个元素。

返回类型

List[bool]

property base_component_name: str

返回基础编码器的基础组件名称。字符串遵循给定的格式:”darts_enc_{covariates_temp}_{encoder}_{attribute}”,其中元素为:

  • covariates_temp: 分别用于过去或未来协变量的“pc”或“fc”。

  • 编码器:使用的 SingleEncoder 类型:
    • “cyc”(循环时间编码器)

    • “dta”(日期时间属性编码器),

    • “pos”(位置整数索引编码器),

    • cus (自定义可调用索引编码器)

  • 属性: 用于底层编码器的属性。一些例子:
    • “month_sin”, “month_cos” (用于 “cyc”)

    • “月份”(用于“dta”)

    • “相对”(用于“位置”)

    • “custom”(用于“cus”)

返回类型

str

property components: Index

返回编码后的组件名称。仅在调用 Encoder.encode_train()Encoder.encode_inference() 之后可用。

返回类型

Index

encode_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train(target, covariates=None, merge_covariates=True, **kwargs)

返回用于训练的编码索引。

参数
  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 训练和预测过程中使用的目标时间序列。

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练和预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

property encoding_n_components: int

SingleEncoder 输出中的组件数量。

返回类型

int

property fit_called: bool

返回 Encoder 对象是否已被拟合。

返回类型

bool

property requires_fit: bool

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

返回类型

bool

class darts.dataprocessing.encoders.encoders.DatetimeAttributeEncoder(index_generator, attribute, tz=None)[源代码]

基类:SingleEncoder

DatetimeAttributeEncoder: 从索引中提取 pd.DatatimeIndex 属性信息作为标量添加。要求底层 TimeSeries 具有 pd.DatetimeIndex。

属性

accept_transformer

DatetimeAttributeEncoder 接受转换

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

参数

属性

accept_transformer

DatetimeAttributeEncoder 接受转换

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

property accept_transformer: List[bool]

DatetimeAttributeEncoder 接受转换

返回类型

List[bool]

property base_component_name: str

返回基础编码器的基础组件名称。字符串遵循给定的格式:”darts_enc_{covariates_temp}_{encoder}_{attribute}”,其中元素为:

  • covariates_temp: 分别用于过去或未来协变量的“pc”或“fc”。

  • 编码器:使用的 SingleEncoder 类型:
    • “cyc”(循环时间编码器)

    • “dta”(日期时间属性编码器),

    • “pos”(位置整数索引编码器),

    • cus (自定义可调用索引编码器)

  • 属性: 用于底层编码器的属性。一些例子:
    • “month_sin”, “month_cos” (用于 “cyc”)

    • “月份”(用于“dta”)

    • “相对”(用于“位置”)

    • “custom”(用于“cus”)

返回类型

str

property components: Index

返回编码后的组件名称。仅在调用 Encoder.encode_train()Encoder.encode_inference() 之后可用。

返回类型

Index

encode_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train(target, covariates=None, merge_covariates=True, **kwargs)

返回用于训练的编码索引。

参数
  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 训练和预测过程中使用的目标时间序列。

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练和预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

property encoding_n_components: int

SingleEncoder 输出中的组件数量。

返回类型

int

property fit_called: bool

返回 Encoder 对象是否已被拟合。

返回类型

bool

property requires_fit: bool

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

返回类型

bool

class darts.dataprocessing.encoders.encoders.FutureCallableIndexEncoder(attribute, input_chunk_length=None, output_chunk_length=None, lags_covariates=None, **kwargs)[源代码]

基类:CallableIndexEncoder

IntegerIndexEncoder: 为从底层时间序列的时间索引派生的未来协变量添加整数索引值(位置)。

属性

accept_transformer

CallableIndexEncoder 接受转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

参数
  • attribute (Callable) – 一个可调用的函数,输入参数为类型为 (pd.DatetimeIndex, pd.RangeIndex) 的索引 index,并返回形状为 (len(index),) 的 np.ndarray。对于类型为 pd.DatetimeIndex 的 index,正确 attribute 的示例为:attribute = lambda index: (index.year - 1950) / 50。对于 pd.RangeIndex 的 index,则为:attribute = lambda index: (index - 1950) / 50

  • input_chunk_length (Optional[int, None]) – 可选地,每个块的输入目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModel 中的参数 input_chunk_length,或对应于 RegressionModel 中的绝对最小目标滞后值 abs(min(lags))

  • output_chunk_length (Optional[int, None]) – 可选地,每个块的输出目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModelRegressionModel 中的参数 output_chunk_length

  • lags_covariates (Optional[List[int], None]) – 可选地,表示未来协变量滞后的整数列表。接受所有整数值。仅对 RegressionModel 类是必需的。对应于 RegressionModel 类中参数 lags_future_covariates 的滞后值。

属性

accept_transformer

CallableIndexEncoder 接受转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

property accept_transformer: List[bool]

CallableIndexEncoder 接受转换。

返回类型

List[bool]

property base_component_name: str

返回基础编码器的基础组件名称。字符串遵循给定的格式:”darts_enc_{covariates_temp}_{encoder}_{attribute}”,其中元素为:

  • covariates_temp: 分别用于过去或未来协变量的“pc”或“fc”。

  • 编码器:使用的 SingleEncoder 类型:
    • “cyc”(循环时间编码器)

    • “dta”(日期时间属性编码器),

    • “pos”(位置整数索引编码器),

    • cus (自定义可调用索引编码器)

  • 属性: 用于底层编码器的属性。一些例子:
    • “month_sin”, “month_cos” (用于 “cyc”)

    • “月份”(用于“dta”)

    • “相对”(用于“位置”)

    • “custom”(用于“cus”)

返回类型

str

property components: Index

返回编码后的组件名称。仅在调用 Encoder.encode_train()Encoder.encode_inference() 之后可用。

返回类型

Index

encode_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train(target, covariates=None, merge_covariates=True, **kwargs)

返回用于训练的编码索引。

参数
  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 训练和预测过程中使用的目标时间序列。

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练和预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

property encoding_n_components: int

SingleEncoder 输出中的组件数量。

返回类型

int

property fit_called: bool

返回 Encoder 对象是否已被拟合。

返回类型

bool

property requires_fit: bool

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

返回类型

bool

class darts.dataprocessing.encoders.encoders.FutureCyclicEncoder(attribute, input_chunk_length=None, output_chunk_length=None, lags_covariates=None, tz=None)[源代码]

基类:CyclicTemporalEncoder

CyclicEncoder: 未来协变量日期时间属性的循环编码。

属性

accept_transformer

CyclicTemporalEncoder 不应被转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

参数
  • attribute (str) – 要应用循环编码的基础 pd.DatetimeIndex 的属性。必须是 pd.DatetimeIndex 的属性,或者是 week / weekofyear / week_of_year - 例如:“month”,“weekday”,“day”,“hour”,“minute”,“second”。查看所有可用属性请访问 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DatetimeIndex.html#pandas.DatetimeIndex。更多信息请查看 datetime_attribute_timeseries()

  • input_chunk_length (Optional[int, None]) – 可选地,每个块的输入目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModel 中的参数 input_chunk_length,或对应于 RegressionModel 中的绝对最小目标滞后值 abs(min(lags))

  • output_chunk_length (Optional[int, None]) – 可选地,每个块的输出目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModelRegressionModel 中的参数 output_chunk_length

  • lags_covariates (Optional[List[int], None]) – 可选地,表示未来协变量滞后的整数列表。接受所有整数值。仅对 RegressionModel 类是必需的。对应于 RegressionModel 类中参数 lags_future_covariates 的滞后值。

  • tz (Optional[str, None]) – 可选地,在计算属性之前,将时间索引转换为的时区。

属性

accept_transformer

CyclicTemporalEncoder 不应被转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

property accept_transformer: List[bool]

CyclicTemporalEncoder 不应被转换。返回正弦和余弦波的两个元素。

返回类型

List[bool]

property base_component_name: str

返回基础编码器的基础组件名称。字符串遵循给定的格式:”darts_enc_{covariates_temp}_{encoder}_{attribute}”,其中元素为:

  • covariates_temp: 分别用于过去或未来协变量的“pc”或“fc”。

  • 编码器:使用的 SingleEncoder 类型:
    • “cyc”(循环时间编码器)

    • “dta”(日期时间属性编码器),

    • “pos”(位置整数索引编码器),

    • cus (自定义可调用索引编码器)

  • 属性: 用于底层编码器的属性。一些例子:
    • “month_sin”, “month_cos” (用于 “cyc”)

    • “月份”(用于“dta”)

    • “相对”(用于“位置”)

    • “custom”(用于“cus”)

返回类型

str

property components: Index

返回编码后的组件名称。仅在调用 Encoder.encode_train()Encoder.encode_inference() 之后可用。

返回类型

Index

encode_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train(target, covariates=None, merge_covariates=True, **kwargs)

返回用于训练的编码索引。

参数
  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 训练和预测过程中使用的目标时间序列。

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练和预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

property encoding_n_components: int

SingleEncoder 输出中的组件数量。

返回类型

int

property fit_called: bool

返回 Encoder 对象是否已被拟合。

返回类型

bool

property requires_fit: bool

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

返回类型

bool

class darts.dataprocessing.encoders.encoders.FutureDatetimeAttributeEncoder(attribute, input_chunk_length=None, output_chunk_length=None, lags_covariates=None, tz=None)[源代码]

基类:DatetimeAttributeEncoder

未来协变量的日期时间属性编码器。

属性

accept_transformer

DatetimeAttributeEncoder 接受转换

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

参数
  • attribute (str) – 要为其添加标量信息的底层 pd.DatetimeIndex 的属性。必须是 pd.DatetimeIndex 的属性,或者是 week / weekofyear / week_of_year - 例如:“month”、“weekday”、“day”、“hour”、“minute”、“second”。请参阅 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DatetimeIndex.html#pandas.DatetimeIndex 中所有可用的属性。更多信息,请查看 datetime_attribute_timeseries()

  • input_chunk_length (Optional[int, None]) – 可选地,每个块的输入目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModel 中的参数 input_chunk_length,或对应于 RegressionModel 中的绝对最小目标滞后值 abs(min(lags))

  • output_chunk_length (Optional[int, None]) – 可选地,每个块的输出目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModelRegressionModel 中的参数 output_chunk_length

  • lags_covariates (Optional[List[int], None]) – 可选地,表示未来协变量滞后的整数列表。接受所有整数值。仅对 RegressionModel 类是必需的。对应于 RegressionModel 类中参数 lags_future_covariates 的滞后值。

  • tz (Optional[str, None]) – 可选地,在计算属性之前,将时间索引转换为的时区。

属性

accept_transformer

DatetimeAttributeEncoder 接受转换

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

property accept_transformer: List[bool]

DatetimeAttributeEncoder 接受转换

返回类型

List[bool]

property base_component_name: str

返回基础编码器的基础组件名称。字符串遵循给定的格式:”darts_enc_{covariates_temp}_{encoder}_{attribute}”,其中元素为:

  • covariates_temp: 分别用于过去或未来协变量的“pc”或“fc”。

  • 编码器:使用的 SingleEncoder 类型:
    • “cyc”(循环时间编码器)

    • “dta”(日期时间属性编码器),

    • “pos”(位置整数索引编码器),

    • cus (自定义可调用索引编码器)

  • 属性: 用于底层编码器的属性。一些例子:
    • “month_sin”, “month_cos” (用于 “cyc”)

    • “月份”(用于“dta”)

    • “相对”(用于“位置”)

    • “custom”(用于“cus”)

返回类型

str

property components: Index

返回编码后的组件名称。仅在调用 Encoder.encode_train()Encoder.encode_inference() 之后可用。

返回类型

Index

encode_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train(target, covariates=None, merge_covariates=True, **kwargs)

返回用于训练的编码索引。

参数
  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 训练和预测过程中使用的目标时间序列。

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练和预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

property encoding_n_components: int

SingleEncoder 输出中的组件数量。

返回类型

int

property fit_called: bool

返回 Encoder 对象是否已被拟合。

返回类型

bool

property requires_fit: bool

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

返回类型

bool

class darts.dataprocessing.encoders.encoders.FutureIntegerIndexEncoder(attribute, input_chunk_length=None, output_chunk_length=None, lags_covariates=None, **kwargs)[源代码]

基类:IntegerIndexEncoder

IntegerIndexEncoder: 为从底层时间序列的时间索引派生的未来协变量添加整数索引值(位置)。

属性

accept_transformer

IntegerIndexEncoder 接受转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

参数
  • attribute (str) – 目前仅支持 ‘相对’ 模式。生成的编码值范围将从 (-inf, inf),目标序列的结束时间将用作参考来评估相对索引位置。

  • input_chunk_length (Optional[int, None]) – 可选地,每个块的输入目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModel 中的参数 input_chunk_length,或对应于 RegressionModel 中的绝对最小目标滞后值 abs(min(lags))

  • output_chunk_length (Optional[int, None]) – 可选地,每个块的输出目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModelRegressionModel 中的参数 output_chunk_length

  • lags_covariates (Optional[List[int], None]) – 可选地,表示未来协变量滞后的整数列表。接受所有整数值。仅对 RegressionModel 类是必需的。对应于 RegressionModel 类中参数 lags_future_covariates 的滞后值。

属性

accept_transformer

IntegerIndexEncoder 接受转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

property accept_transformer: List[bool]

IntegerIndexEncoder 接受变换。注意,变换 ‘相对’ 的 IntegerIndexEncoder 将返回绝对位置(在变换后的空间中)。

返回类型

List[bool]

property base_component_name: str

返回基础编码器的基础组件名称。字符串遵循给定的格式:”darts_enc_{covariates_temp}_{encoder}_{attribute}”,其中元素为:

  • covariates_temp: 分别用于过去或未来协变量的“pc”或“fc”。

  • 编码器:使用的 SingleEncoder 类型:
    • “cyc”(循环时间编码器)

    • “dta”(日期时间属性编码器),

    • “pos”(位置整数索引编码器),

    • cus (自定义可调用索引编码器)

  • 属性: 用于底层编码器的属性。一些例子:
    • “month_sin”, “month_cos” (用于 “cyc”)

    • “月份”(用于“dta”)

    • “相对”(用于“位置”)

    • “custom”(用于“cus”)

返回类型

str

property components: Index

返回编码后的组件名称。仅在调用 Encoder.encode_train()Encoder.encode_inference() 之后可用。

返回类型

Index

encode_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train(target, covariates=None, merge_covariates=True, **kwargs)

返回用于训练的编码索引。

参数
  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 训练和预测过程中使用的目标时间序列。

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练和预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

property encoding_n_components: int

SingleEncoder 输出中的组件数量。

返回类型

int

property fit_called: bool

返回 Encoder 对象是否已被拟合。

返回类型

bool

property requires_fit: bool

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

返回类型

bool

class darts.dataprocessing.encoders.encoders.IntegerIndexEncoder(index_generator, attribute)[源代码]

基类:SingleEncoder

IntegerIndexEncoder: 为过去和未来的协变量添加从底层时间序列时间索引派生的整数索引值(位置)。

属性

accept_transformer

IntegerIndexEncoder 接受转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

参数
  • index_generator (CovariatesIndexGenerator) – 一个 CovariatesIndexGenerator 实例,包含 generate_train_idx()generate_inference_idx() 方法。用于生成编码器的索引。

  • attribute (str) – 目前仅支持 ‘相对’ 模式。生成的编码值范围将从 (-inf, inf),目标序列的结束时间将用作参考来评估相对索引位置。

属性

accept_transformer

IntegerIndexEncoder 接受转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

property accept_transformer: List[bool]

IntegerIndexEncoder 接受变换。注意,变换 ‘相对’ 的 IntegerIndexEncoder 将返回绝对位置(在变换后的空间中)。

返回类型

List[bool]

property base_component_name: str

返回基础编码器的基础组件名称。字符串遵循给定的格式:”darts_enc_{covariates_temp}_{encoder}_{attribute}”,其中元素为:

  • covariates_temp: 分别用于过去或未来协变量的“pc”或“fc”。

  • 编码器:使用的 SingleEncoder 类型:
    • “cyc”(循环时间编码器)

    • “dta”(日期时间属性编码器),

    • “pos”(位置整数索引编码器),

    • cus (自定义可调用索引编码器)

  • 属性: 用于底层编码器的属性。一些例子:
    • “month_sin”, “month_cos” (用于 “cyc”)

    • “月份”(用于“dta”)

    • “相对”(用于“位置”)

    • “custom”(用于“cus”)

返回类型

str

property components: Index

返回编码后的组件名称。仅在调用 Encoder.encode_train()Encoder.encode_inference() 之后可用。

返回类型

Index

encode_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train(target, covariates=None, merge_covariates=True, **kwargs)

返回用于训练的编码索引。

参数
  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 训练和预测过程中使用的目标时间序列。

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练和预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

property encoding_n_components: int

SingleEncoder 输出中的组件数量。

返回类型

int

property fit_called: bool

返回 Encoder 对象是否已被拟合。

返回类型

bool

property requires_fit: bool

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

返回类型

bool

class darts.dataprocessing.encoders.encoders.PastCallableIndexEncoder(attribute, input_chunk_length=None, output_chunk_length=None, lags_covariates=None, **kwargs)[源代码]

基类:CallableIndexEncoder

IntegerIndexEncoder: 为从底层时间序列的时间索引派生的过去协变量添加整数索引值(位置)。

属性

accept_transformer

CallableIndexEncoder 接受转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

参数
  • attribute (Callable) – 一个可调用的函数,输入参数为类型为 (pd.DatetimeIndex, pd.RangeIndex) 的索引 index,并返回形状为 (len(index),) 的 np.ndarray。对于类型为 pd.DatetimeIndex 的 index,正确 attribute 的示例为:attribute = lambda index: (index.year - 1950) / 50。对于 pd.RangeIndex 的 index,则为:attribute = lambda index: (index - 1950) / 50

  • input_chunk_length (Optional[int, None]) – 可选地,每个块的输入目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModel 中的参数 input_chunk_length,或对应于 RegressionModel 中的绝对最小目标滞后值 abs(min(lags))

  • output_chunk_length (Optional[int, None]) – 可选地,每个块的输出目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModelRegressionModel 中的参数 output_chunk_length

  • lags_covariates (Optional[List[int], None]) – 可选地,一个表示过去协变量滞后的整数列表。接受滞后值 <= -1 的整数。仅在 RegressionModel 中需要。对应于 RegressionModel 的参数 lags_past_covariates 中的滞后值。

属性

accept_transformer

CallableIndexEncoder 接受转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

property accept_transformer: List[bool]

CallableIndexEncoder 接受转换。

返回类型

List[bool]

property base_component_name: str

返回基础编码器的基础组件名称。字符串遵循给定的格式:”darts_enc_{covariates_temp}_{encoder}_{attribute}”,其中元素为:

  • covariates_temp: 分别用于过去或未来协变量的“pc”或“fc”。

  • 编码器:使用的 SingleEncoder 类型:
    • “cyc”(循环时间编码器)

    • “dta”(日期时间属性编码器),

    • “pos”(位置整数索引编码器),

    • cus (自定义可调用索引编码器)

  • 属性: 用于底层编码器的属性。一些例子:
    • “month_sin”, “month_cos” (用于 “cyc”)

    • “月份”(用于“dta”)

    • “相对”(用于“位置”)

    • “custom”(用于“cus”)

返回类型

str

property components: Index

返回编码后的组件名称。仅在调用 Encoder.encode_train()Encoder.encode_inference() 之后可用。

返回类型

Index

encode_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train(target, covariates=None, merge_covariates=True, **kwargs)

返回用于训练的编码索引。

参数
  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 训练和预测过程中使用的目标时间序列。

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练和预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

property encoding_n_components: int

SingleEncoder 输出中的组件数量。

返回类型

int

property fit_called: bool

返回 Encoder 对象是否已被拟合。

返回类型

bool

property requires_fit: bool

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

返回类型

bool

class darts.dataprocessing.encoders.encoders.PastCyclicEncoder(attribute, input_chunk_length=None, output_chunk_length=None, lags_covariates=None, tz=None)[源代码]

基类:CyclicTemporalEncoder

CyclicEncoder: 过去协变量日期时间属性的循环编码。

属性

accept_transformer

CyclicTemporalEncoder 不应被转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

参数
  • attribute (str) – 要应用循环编码的基础 pd.DatetimeIndex 的属性。必须是 pd.DatetimeIndex 的属性,或者是 week / weekofyear / week_of_year - 例如:“month”,“weekday”,“day”,“hour”,“minute”,“second”。查看所有可用属性请访问 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DatetimeIndex.html#pandas.DatetimeIndex。更多信息请查看 datetime_attribute_timeseries()

  • input_chunk_length (Optional[int, None]) – 可选地,每个块的输入目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModel 中的参数 input_chunk_length,或对应于 RegressionModel 中的绝对最小目标滞后值 abs(min(lags))

  • output_chunk_length (Optional[int, None]) – 可选地,每个块的输出目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModelRegressionModel 中的参数 output_chunk_length

  • lags_covariates (Optional[List[int], None]) – 可选地,一个表示过去协变量滞后的整数列表。接受滞后值 <= -1 的整数。仅在 RegressionModel 中需要。对应于 RegressionModel 的参数 lags_past_covariates 中的滞后值。

  • tz (Optional[str, None]) – 可选地,在计算属性之前,将时间索引转换为的时区。

属性

accept_transformer

CyclicTemporalEncoder 不应被转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

property accept_transformer: List[bool]

CyclicTemporalEncoder 不应被转换。返回正弦和余弦波的两个元素。

返回类型

List[bool]

property base_component_name: str

返回基础编码器的基础组件名称。字符串遵循给定的格式:”darts_enc_{covariates_temp}_{encoder}_{attribute}”,其中元素为:

  • covariates_temp: 分别用于过去或未来协变量的“pc”或“fc”。

  • 编码器:使用的 SingleEncoder 类型:
    • “cyc”(循环时间编码器)

    • “dta”(日期时间属性编码器),

    • “pos”(位置整数索引编码器),

    • cus (自定义可调用索引编码器)

  • 属性: 用于底层编码器的属性。一些例子:
    • “month_sin”, “month_cos” (用于 “cyc”)

    • “月份”(用于“dta”)

    • “相对”(用于“位置”)

    • “custom”(用于“cus”)

返回类型

str

property components: Index

返回编码后的组件名称。仅在调用 Encoder.encode_train()Encoder.encode_inference() 之后可用。

返回类型

Index

encode_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train(target, covariates=None, merge_covariates=True, **kwargs)

返回用于训练的编码索引。

参数
  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 训练和预测过程中使用的目标时间序列。

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练和预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

property encoding_n_components: int

SingleEncoder 输出中的组件数量。

返回类型

int

property fit_called: bool

返回 Encoder 对象是否已被拟合。

返回类型

bool

property requires_fit: bool

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

返回类型

bool

class darts.dataprocessing.encoders.encoders.PastDatetimeAttributeEncoder(attribute, input_chunk_length=None, output_chunk_length=None, lags_covariates=None, tz=None)[源代码]

基类:DatetimeAttributeEncoder

过去协变量的日期时间属性编码器。

属性

accept_transformer

DatetimeAttributeEncoder 接受转换

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

参数
  • attribute (str) – 要为其添加标量信息的底层 pd.DatetimeIndex 的属性。必须是 pd.DatetimeIndex 的属性,或者是 week / weekofyear / week_of_year - 例如:“month”、“weekday”、“day”、“hour”、“minute”、“second”。请参阅 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DatetimeIndex.html#pandas.DatetimeIndex 中所有可用的属性。更多信息,请查看 datetime_attribute_timeseries()

  • input_chunk_length (Optional[int, None]) – 可选地,每个块的输入目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModel 中的参数 input_chunk_length,或对应于 RegressionModel 中的绝对最小目标滞后值 abs(min(lags))

  • output_chunk_length (Optional[int, None]) – 可选地,每个块的输出目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModelRegressionModel 中的参数 output_chunk_length

  • lags_covariates (Optional[List[int], None]) – 可选地,一个表示过去协变量滞后的整数列表。接受滞后值 <= -1 的整数。仅在 RegressionModel 中需要。对应于 RegressionModel 的参数 lags_past_covariates 中的滞后值。

  • tz (Optional[str, None]) – 可选地,在计算属性之前,将时间索引转换为的时区。

属性

accept_transformer

DatetimeAttributeEncoder 接受转换

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

property accept_transformer: List[bool]

DatetimeAttributeEncoder 接受转换

返回类型

List[bool]

property base_component_name: str

返回基础编码器的基础组件名称。字符串遵循给定的格式:”darts_enc_{covariates_temp}_{encoder}_{attribute}”,其中元素为:

  • covariates_temp: 分别用于过去或未来协变量的“pc”或“fc”。

  • 编码器:使用的 SingleEncoder 类型:
    • “cyc”(循环时间编码器)

    • “dta”(日期时间属性编码器),

    • “pos”(位置整数索引编码器),

    • cus (自定义可调用索引编码器)

  • 属性: 用于底层编码器的属性。一些例子:
    • “month_sin”, “month_cos” (用于 “cyc”)

    • “月份”(用于“dta”)

    • “相对”(用于“位置”)

    • “custom”(用于“cus”)

返回类型

str

property components: Index

返回编码后的组件名称。仅在调用 Encoder.encode_train()Encoder.encode_inference() 之后可用。

返回类型

Index

encode_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train(target, covariates=None, merge_covariates=True, **kwargs)

返回用于训练的编码索引。

参数
  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 训练和预测过程中使用的目标时间序列。

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练和预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

property encoding_n_components: int

SingleEncoder 输出中的组件数量。

返回类型

int

property fit_called: bool

返回 Encoder 对象是否已被拟合。

返回类型

bool

property requires_fit: bool

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

返回类型

bool

class darts.dataprocessing.encoders.encoders.PastIntegerIndexEncoder(attribute, input_chunk_length=None, output_chunk_length=None, lags_covariates=None, **kwargs)[源代码]

基类:IntegerIndexEncoder

IntegerIndexEncoder: 为从底层时间序列的时间索引派生的过去协变量添加整数索引值(位置)。

属性

accept_transformer

IntegerIndexEncoder 接受转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

参数
  • attribute (str) – 目前仅支持 ‘相对’ 模式。生成的编码值范围将从 (-inf, inf),目标序列的结束时间将用作参考来评估相对索引位置。

  • input_chunk_length (Optional[int, None]) – 可选地,每个块的输入目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModel 中的参数 input_chunk_length,或对应于 RegressionModel 中的绝对最小目标滞后值 abs(min(lags))

  • output_chunk_length (Optional[int, None]) – 可选地,每个块的输出目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModelRegressionModel 中的参数 output_chunk_length

  • lags_covariates (Optional[List[int], None]) – 可选地,一个表示过去协变量滞后的整数列表。接受滞后值 <= -1 的整数。仅在 RegressionModel 中需要。对应于 RegressionModel 的参数 lags_past_covariates 中的滞后值。

属性

accept_transformer

IntegerIndexEncoder 接受转换。

base_component_name

返回基本编码器的基本组件名称。

components

返回编码后的组件名称。

encoding_n_components

SingleEncoder 输出中的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, covariates, ...])

返回用于推理/预测的编码索引。

encode_train(target[, covariates, ...])

返回用于训练的编码索引。

encode_train_inference(n, target[, ...])

返回用于推理/预测的编码索引。

property accept_transformer: List[bool]

IntegerIndexEncoder 接受变换。注意,变换 ‘相对’ 的 IntegerIndexEncoder 将返回绝对位置(在变换后的空间中)。

返回类型

List[bool]

property base_component_name: str

返回基础编码器的基础组件名称。字符串遵循给定的格式:”darts_enc_{covariates_temp}_{encoder}_{attribute}”,其中元素为:

  • covariates_temp: 分别用于过去或未来协变量的“pc”或“fc”。

  • 编码器:使用的 SingleEncoder 类型:
    • “cyc”(循环时间编码器)

    • “dta”(日期时间属性编码器),

    • “pos”(位置整数索引编码器),

    • cus (自定义可调用索引编码器)

  • 属性: 用于底层编码器的属性。一些例子:
    • “month_sin”, “month_cos” (用于 “cyc”)

    • “月份”(用于“dta”)

    • “相对”(用于“位置”)

    • “custom”(用于“cus”)

返回类型

str

property components: Index

返回编码后的组件名称。仅在调用 Encoder.encode_train()Encoder.encode_inference() 之后可用。

返回类型

Index

encode_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train(target, covariates=None, merge_covariates=True, **kwargs)

返回用于训练的编码索引。

参数
  • target (TimeSeries) – 在训练期间使用或传递给预测的目标时间序列,作为 series

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

encode_train_inference(n, target, covariates=None, merge_covariates=True, **kwargs)

返回用于推理/预测的编码索引。

参数
  • n (int) – 预测范围

  • target (TimeSeries) – 训练和预测过程中使用的目标时间序列。

  • covariates (Optional[TimeSeries, None]) – 可选地,用于训练和预测的协变量:如果 self.index_generatorPastCovariatesIndexGenerator,则为过去协变量;如果 self.index_generatorFutureCovariatesIndexGenerator,则为未来协变量。

  • merge_covariates (bool) – 是否将编码后的时间序列与 covariates 合并。

返回类型

TimeSeries

property encoding_n_components: int

SingleEncoder 输出中的组件数量。

返回类型

int

property fit_called: bool

返回 Encoder 对象是否已被拟合。

返回类型

bool

property requires_fit: bool

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

返回类型

bool

class darts.dataprocessing.encoders.encoders.SequentialEncoder(add_encoders, input_chunk_length=None, output_chunk_length=None, lags_past_covariates=None, lags_future_covariates=None, takes_past_covariates=False, takes_future_covariates=False)[源代码]

基类:Encoder

一个 SequentialEncoder 对象可以同时存储和控制多个过去和未来的协变量编码器。它提供了与单个编码器相同的功能(encode_train()encode_inference()encode_train_inference())。

属性

components

返回由 SequentialEncoder.past_encodersSequentialEncoder.future_encoders 生成的协变量组件名称。

encoder_map

编码器标识符字符串(来自模型创建时的参数)与相应的未来或过去协变量编码器之间的映射

encoders

返回一个元组 (过去协变量编码器, 未来协变量编码器)

encoding_n_components

返回由 SequentialEncoder.past_encodersSequentialEncoder.future_encoders 生成的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

future_components

返回由 SequentialEncoder.future_encoders 生成的未来协变量组件名称。

future_encoders

返回未来协变量编码器

future_transformer

返回未来的转换器对象

past_components

返回由 SequentialEncoder.past_encoders 生成的过去协变量组件名称。

past_encoders

返回过去协变量编码器

past_transformer

返回过去的转换器对象

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, ...])

返回用于推理/预测的所有过去和/或未来协变量的编码索引。

encode_train(target[, past_covariates, ...])

返回训练所需的所有过去和/或未来协变量的编码索引。

encode_train_inference(n, target[, ...])

返回所有过去和/或未来协变量的编码索引,用于训练和推理/预测。

transformers()

返回一个由(过去变换器,未来变换器)组成的元组。

SequentialEncoder 会根据参数 add_encoders 自动创建编码器对象。add_encoders 也可以直接在 Darts 的所有 ForecastingModels 中设置。这将自动设置一个根据底层预测模型设置定制的 SequentialEncoder

add_encoders 字典必须遵循以下约定:

{编码器关键字: {时间关键字: 属性列表}, …, 转换器关键字: 转换器对象}

支持的编码器关键字:

‘cyclic’ 用于循环时间编码器。参见文档 CyclicTemporalEncoder; ‘datetime_attribute’ 用于添加 pd.DatetimeIndex 属性的标量信息。参见文档 DatetimeAttributeEncoder ‘position’ 用于整数索引位置编码器。参见文档 IntegerIndexEncoder; ‘custom’ 用于使用自定义可调用对象(函数)编码索引。参见文档 CallableIndexEncoder;

支持的时间关键字:

‘past’ 用于将编码添加为过去协变量 ‘future’ 用于将编码添加为未来协变量

支持的属性:

对于属性,请阅读上述相应编码器的参考文档

支持的转换器:

可以通过关键字 ‘transformer’ 添加一个转换器。转换器对象必须是 Darts 的 FittableDataTransformer 实例,例如 Scaler() 或 BoxCox()。在调用 model.fit() 时,转换器将在训练数据集上进行拟合。然后,训练、验证和推理数据集将同样进行转换。

支持的时区:

可选地,使用关键字 ‘tz’ 进行时区转换。这将在应用 ‘cyclic’‘datetime_attribute’ 时间编码器之前,将时区未知的索引转换为时区 ‘tz’

一个适用于小时数据的有效 add_encoders 字典示例:

from darts.dataprocessing.transformers import Scaler
add_encoders={
    'cyclic': {'future': ['month']},
    'datetime_attribute': {'past': ['hour'], 'future': ['year', 'dayofweek']},
    'position': {'past': ['relative'], 'future': ['relative']},
    'custom': {'past': [lambda idx: (idx.year - 1950) / 50]},
    'transformer': Scaler(),
    'tz': 'CET',
}

add_encoders 中提取 (encoder_id, attribute) 元组以实例化 SingleEncoder 对象:

  • encoder_id 提取如下:

    str(encoder_kw) + str(temporal_kw) -> ‘cyclic’ + ‘past’ -> encoder_id = ‘cyclic_past’ encoder_id 用于将参数与相应的 SingleEncoder 对象映射。

  • attribute 是从 temporal_kw 下的值中提取的

    attribute = ‘month’ … attribute 告诉 SingleEncoder 要编码索引的哪个属性

可以通过将新编码器附加到映射属性 SequentialEncoder.encoder_map() 来添加新编码器。

参数
  • add_encoders (Dict) – 包含编码器设置的字典。

  • input_chunk_length (Optional[int, None]) – 可选地,每个块的输入目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModel 中的参数 input_chunk_length,或对应于 RegressionModel 中的绝对最小目标滞后值 abs(min(lags))

  • output_chunk_length (Optional[int, None]) – 可选地,每个块的输出目标时间步数。仅对 TorchForecastingModelRegressionModel 需要。对应于 TorchForecastingModelRegressionModel 中的参数 output_chunk_length

  • lags_past_covariates (Optional[List[int], None]) – 可选地,一个表示过去协变量滞后的整数列表。接受滞后值 <= -1 的整数。仅在 RegressionModel 中需要。对应于 RegressionModel 的参数 lags_past_covariates 中的滞后值。

  • lags_future_covariates (Optional[List[int], None]) – 可选地,表示未来协变量滞后的整数列表。接受所有整数值。仅对 RegressionModel 类是必需的。对应于 RegressionModel 类中参数 lags_future_covariates 的滞后值。

  • takes_past_covariates (bool) – 是否编码/生成过去的协变量。

  • takes_future_covariates (bool) – 是否编码/生成未来协变量。

属性

components

返回由 SequentialEncoder.past_encodersSequentialEncoder.future_encoders 生成的协变量组件名称。

encoder_map

编码器标识符字符串(来自模型创建时的参数)与相应的未来或过去协变量编码器之间的映射

encoders

返回一个元组 (过去协变量编码器, 未来协变量编码器)

encoding_n_components

返回由 SequentialEncoder.past_encodersSequentialEncoder.future_encoders 生成的组件数量。

fit_called

返回 Encoder 对象是否已被拟合。

future_components

返回由 SequentialEncoder.future_encoders 生成的未来协变量组件名称。

future_encoders

返回未来协变量编码器

future_transformer

返回未来的转换器对象

past_components

返回由 SequentialEncoder.past_encoders 生成的过去协变量组件名称。

past_encoders

返回过去协变量编码器

past_transformer

返回过去的转换器对象

requires_fit

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

方法

encode_inference(n, target[, ...])

返回用于推理/预测的所有过去和/或未来协变量的编码索引。

encode_train(target[, past_covariates, ...])

返回训练所需的所有过去和/或未来协变量的编码索引。

encode_train_inference(n, target[, ...])

返回所有过去和/或未来协变量的编码索引,用于训练和推理/预测。

transformers()

返回一个由(过去变换器,未来变换器)组成的元组。

property components: Tuple[Index, Index]

返回由 SequentialEncoder.past_encodersSequentialEncoder.future_encoders 生成的协变量组件名称。一个包含(过去编码组件,未来编码组件)的元组。仅在调用 SequentialEncoder.encode_train() 后可用。

返回类型

Tuple[Index, Index]

encode_inference(n, target, past_covariates=None, future_covariates=None, encode_past=True, encode_future=True)[源代码]

返回所有过去和/或未来协变量的编码索引,用于推理/预测。生成的协变量取决于模型创建时使用的参数。

参数
  • n (int) – 预测范围

  • target (Union[TimeSeries, Sequence[TimeSeries]]) – 训练期间使用的目标时间序列或作为 series 传递给预测的目标时间序列。

  • past_covariates (Union[TimeSeries, Sequence[TimeSeries], None]) – 可选地,用于训练的过去协变量。

  • future_covariates (Union[TimeSeries, Sequence[TimeSeries], None]) – 可选地,用于训练的未来协变量。

  • encode_past (bool) – 是否为过去的协变量应用编码器。

  • encode_future (bool) – 是否为未来协变量应用编码器。

返回

预测/推断的过去协变量和/或未来协变量,包括编码。如果输入的 {x}_covariates 为 None 且未给出 {x}_encoders,则将为 {x}_covariates 返回 None

返回类型

Tuple[past_covariates, future_covariates]

encode_train(target, past_covariates=None, future_covariates=None, encode_past=True, encode_future=True)[源代码]

返回所有过去和/或未来协变量的编码索引以用于训练。生成的协变量取决于模型创建时使用的参数。

参数
  • target (Union[TimeSeries, Sequence[TimeSeries]]) – 训练期间使用的目标时间序列或作为 series 传递给预测的目标时间序列。

  • past_covariates (Union[TimeSeries, Sequence[TimeSeries], None]) – 可选地,用于训练的过去协变量。

  • future_covariates (Union[TimeSeries, Sequence[TimeSeries], None]) – 可选地,用于训练的未来协变量。

  • encode_past (bool) – 是否为过去的协变量应用编码器。

  • encode_future (bool) – 是否为未来协变量应用编码器。

返回

包括编码的过去协变量和/或未来协变量用于训练。如果输入的 {x}_covariates 为 None 且未提供 {x}_encoders,则将为 {x}_covariates 返回 None

返回类型

Tuple[past_covariates, future_covariates]

引发

Warning – 如果模型是使用 add_encoders 创建的,并且怀疑存在延迟加载。编码/协变量会在训练开始前为所有单独的目标急切地生成并加载到内存中。根据目标数据的大小,这可能会导致内存问题。如果适用,请考虑在创建模型时设置 add_encoders=None,并手动为延迟加载构建编码协变量。

encode_train_inference(n, target, past_covariates=None, future_covariates=None, encode_past=True, encode_future=True)[源代码]

返回所有过去和/或未来协变量的编码索引,用于训练和推理/预测。生成的协变量取决于模型创建时使用的参数。

参数
  • n (int) – 预测范围

  • target (Union[TimeSeries, Sequence[TimeSeries]]) – 用于训练和预测的目标时间序列。

  • past_covariates (Union[TimeSeries, Sequence[TimeSeries], None]) – 可选地,用于训练和预测的过去协变量。

  • future_covariates (Union[TimeSeries, Sequence[TimeSeries], None]) – 可选地,用于训练和预测的未来协变量。

  • encode_past (bool) – 是否为过去的协变量应用编码器。

  • encode_future (bool) – 是否为未来协变量应用编码器。

返回

预测/推断的过去协变量和/或未来协变量,包括编码。如果输入的 {x}_covariates 为 None 且未给出 {x}_encoders,则将为 {x}_covariates 返回 None

返回类型

Tuple[past_covariates, future_covariates]

property encoder_map: Dict

编码器标识符字符串(来自模型创建时的参数)与相应的未来或过去协变量编码器之间的映射

返回类型

Dict

property encoders: Tuple[List[SingleEncoder], List[SingleEncoder]]

返回一个元组 (过去协变量编码器, 未来协变量编码器)

返回类型

Tuple[List[SingleEncoder], List[SingleEncoder]]

property encoding_n_components: Tuple[int, int]

返回由 SequentialEncoder.past_encodersSequentialEncoder.future_encoders 生成的组件数量。

返回类型

Tuple[int, int]

property fit_called: bool

返回 Encoder 对象是否已被拟合。

返回类型

bool

property future_components: Index

返回由 SequentialEncoder.future_encoders 生成的未来协变量组件名称。仅在调用 SequentialEncoder.encode_train() 后可用。

返回类型

Index

property future_encoders: List[SingleEncoder]

返回未来协变量编码器

返回类型

List[SingleEncoder]

property future_transformer: SequentialEncoderTransformer

返回未来的转换器对象

返回类型

SequentialEncoderTransformer

property past_components: Index

返回由 SequentialEncoder.past_encoders 生成的过去协变量组件名称。仅在调用 SequentialEncoder.encode_train() 后可用。

返回类型

Index

property past_encoders: List[SingleEncoder]

返回过去协变量编码器

返回类型

List[SingleEncoder]

property past_transformer: SequentialEncoderTransformer

返回过去的转换器对象

返回类型

SequentialEncoderTransformer

property requires_fit: bool

Encoder 子类是否必须在推理前通过 Encoder.encode_train() 进行拟合,然后才能使用 Encoder.encode_inference() 进行推理。

返回类型

bool

transformers()[源代码]

返回一个由(过去变换器,未来变换器)组成的元组。

返回类型

Tuple[SequentialEncoderTransformer, SequentialEncoderTransformer]