TorchNormalizer#

class pytorch_forecasting.data.encoders.TorchNormalizer(method: str = 'standard', center: bool = True, transformation: str | Tuple[Callable, Callable] = None, method_kwargs: Dict[str, Any] | None = None)[来源]#

基础: InitialParameterRepresenterMixIn, BaseEstimator, TransformerMixin, TransformMixIn

基本目标转换器,可以作用于torch张量。

Parameters:
  • method (str, 可选, 默认="standard") – 用于重新缩放时间序列的方法。可以是“identity”、“standard”(标准缩放)或“robust”(使用分位数0.25-0.75进行缩放)。默认为“standard”。

  • method_kwargs (Dict[str, Any], optional, default=None) –

    下列列出的特定方法参数的字典

    • ”robust” 方法: “upper”, “lower”, “center” 分位数,默认为 0.75, 0.25 和 0.5

  • center (bool, optional, default=True) – 是否将输出居中为零。默认为 True。

  • 转换 (Union[str, Dict[str, Callable]] 可选, 默认=None) –

    在应用归一化器之前转换值。可用选项包括

    • 无 (默认):不对值进行转换

    • log:在对数空间中进行估计,从而得到一个乘法模型

    • log1p:在对数空间中进行估计,但在转换前给值加1以提高稳定性

      (例如,如果存在许多小于1的值)。请注意,逆转换仍然只有 torch.exp(),而不是 torch.expm1()

    • logit:对介于0和1之间的值应用logit转换

    • count:对输出应用softplus(逆转换)并对输入应用x + 1(转换)

    • softplus:对输出应用softplus(逆转换)并对输入应用逆softplus(转换)

    • relu:对输出应用max(0, x)

    • PyTorch函数的Dict[str, Callable],用于转换和逆转换值。

      forwardreverse 条目是必需的。inverse 转换是可选的,并且 应在reverse 不是前向转换的逆时定义。inverse_torch 可以被定义为提供逆转换的torch分布转换。

Inherited-members:

方法

extra_repr()

fit(y)

拟合变换器,即确定数据的中心和尺度。

fit_transform(X[, y])

适应数据,然后进行转换。

get_metadata_routing()

获取此对象的元数据路由。

get_parameters(*args, **kwargs)

返回用于编码的参数。

get_params([deep])

获取此估计器的参数。

get_transform(转换)

返回变换函数。

inverse_preprocess(y)

逆向预处理重新缩放的数据(例如,取指数)。

inverse_transform(y)

反向缩放。

preprocess(y)

预处理输入数据(例如,取对数)。

set_output(*[, transform])

设置输出容器。

set_params(**params)

设置此估计器的参数。

set_transform_request(*[, return_norm, ...])

传递给transform方法的请求元数据。

transform(y[, return_norm, target_scale])

重新缩放数据。

属性

转换

fit(y: Series | ndarray | Tensor)[来源]#

拟合变换器,即确定数据的中心和尺度

Parameters:

y (Union[pd.Series, np.ndarray, torch.Tensor]) – 输入数据

Returns:

TorchNormalizer

Return type:

自己

get_parameters(*args, **kwargs) Tensor[来源]#

返回用于编码的参数。

Returns:

第一个元素是数据的中心,第二个是尺度

Return type:

torch.Tensor

inverse_transform(y: Tensor) Tensor[来源]#

反向缩放。

Parameters:

y (torch.Tensor) – 缩放后的数据

Returns:

去缩放的数据

Return type:

torch.Tensor

set_transform_request(*, return_norm: bool | None | str = '$UNCHANGED$', target_scale: bool | None | str = '$UNCHANGED$') TorchNormalizer#

传递给transform方法的请求元数据。

请注意,该方法仅在 enable_metadata_routing=True 的情况下相关(见 sklearn.set_config())。有关路由机制如何工作的说明,请参见 用户指南

每个参数的选项为:

  • True: 请求元数据,如果提供,则传递给 transform。如果未提供元数据,则请求将被忽略。

  • False: 未请求元数据,元估计器将不会将其传递给 transform

  • None: 未请求元数据,如果用户提供了,元估计器将引发错误。

  • str: 元数据应该通过这个给定的别名传递给元估计器,而不是原始名称。

默认值(sklearn.utils.metadata_routing.UNCHANGED)保留现有请求。这允许您更改某些参数的请求,而不更改其他参数。

在1.3版本中新增。

注意

此方法仅在此估计器作为元估计器的子估计器时相关,例如在一个 Pipeline内部使用。否则它没有效果。

Parameters:
  • return_norm (str, True, False, 或 None, 默认=sklearn.utils.metadata_routing.UNCHANGED) – transformreturn_norm 参数的元数据路由。

  • target_scale (str, True, False, 或 None, 默认=sklearn.utils.metadata_routing.UNCHANGED) – transformtarget_scale 参数的元数据路由。

Returns:

self – 更新后的对象。

Return type:

对象

transform(y: Series | ndarray | Tensor, return_norm: bool = False, target_scale: Tensor = None) Tuple[ndarray | Tensor, ndarray] | ndarray | Tensor[来源]#

重新缩放数据。

Parameters:
  • y (联合[pd.Series, np.ndarray, torch.Tensor]) – 输入数据

  • return_norm (bool, 可选, 默认=False) – [描述]. 默认为 False.

  • target_scale (torch.Tensor, 可选, 默认=None) – 代替拟合的中心和尺度使用的目标缩放

Returns:

根据输入类型重新缩放的数据。如果 return_norm=True,则返回第二个元素

Return type:

联合[元组[联合[np.ndarray, torch.Tensor], np.ndarray], 联合[np.ndarray, torch.Tensor]]