组标准化器#

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

基础: TorchNormalizer

按组缩放的归一化器。

为每个组拟合和应用一个缩放器。这个缩放器可以用作目标归一化器,也可以用于归一化任何其他变量。

组归一化器,用于按组归一化给定条目。可以用作目标归一化器。

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

  • method_kwargs (字典[字符串, 任意], 可选, 默认=None) –

    方法特定参数的字典,如下所列

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

  • groups (列表[字符串], 可选, 默认为[]) – 用于归一化的组名称。默认为 []。

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

  • scale_by_group (bool, optional) – 是否按组缩放输出,即规范是以以下方式计算的 (group1_norm * group2_norm * ...) ^ (1 / n_groups)。默认为 False。

  • transformation (Union[str, Tuple[Callable, Callable]] optional, default=None):) –

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

    • 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, X)

为每个组确定尺度

fit_transform(y, X[, return_norm])

适配归一化器并缩放输入数据。

get_metadata_routing()

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

get_norm(X)

获取多个组的缩放参数。

get_parameters(groups[, group_names])

获取给定组的拟合缩放参数。

get_params([deep])

获取此估计器的参数。

get_transform(转换)

返回变换函数。

inverse_preprocess(y)

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

inverse_transform(y, X)

将数据缩放到原始尺度 - 尚未实现 - 请使用目标尺度调用类。

preprocess(y)

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

set_output(*[, transform])

设置输出容器。

set_params(**params)

设置此估计器的参数。

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

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

transform(y[, X, return_norm, target_scale])

缩放输入数据。

属性

转换

names

确定的尺度名称。

fit(y: Series, X: DataFrame)[来源]#

为每个组确定尺度

Parameters:
  • y (pd.Series) – 输入数据

  • X (pd.DataFrame) – 包含在groups参数中定义的每个组的列的数据框。

Return type:

自己

fit_transform(y: Series, X: DataFrame, return_norm: bool = False) ndarray | Tuple[ndarray, ndarray][来源]#

适配归一化器并缩放输入数据。

Parameters:
  • y (pd.Series) – 要缩放的数据

  • X (pd.DataFrame) – 包含 groups 列的数据框

  • return_norm (bool, 可选, 默认=False) – 是否返回。默认为 False。

Returns:

缩放后的数据,如果 return_norm=True,还会作为第二个元素返回缩放比例

Return type:

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

get_norm(X: DataFrame) DataFrame[来源]#

获取多个组的缩放参数。

Parameters:

X (pd.DataFrame) – 包含groups列的数据框

Returns:

具有缩放参数的数据框,其中每一行对应输入数据框

Return type:

pd.DataFrame

get_parameters(groups: Tensor | list | tuple, group_names: List[str] = None) ndarray[来源]#

获取给定组的拟合缩放参数。

Parameters:
  • groups (Union[torch.Tensor, list, tuple]) – 获取参数的组 ID

  • group_names (列表[字符串], 可选, 默认=None) – 与groups中的位置对应的组的名称。默认为 None,即实例属性groups

Returns:

用于缩放的参数

Return type:

np.ndarray

inverse_transform(y: Series, X: DataFrame)[来源]#

将数据缩放到原始尺度 - 尚未实现 - 请使用目标尺度调用类。

set_transform_request(*, return_norm: bool | None | str = '$UNCHANGED$', target_scale: bool | None | str = '$UNCHANGED$') 组归一化器#

传递给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, X: DataFrame = None, return_norm: bool = False, target_scale: Tensor = None) ndarray | Tuple[ndarray, ndarray][来源]#

缩放输入数据。

Parameters:
  • y (pd.Series) – 要缩放的数据

  • X (pd.DataFrame) – 包含 groups 列的数据框

  • return_norm (bool, 可选, 默认=False) – 是否返回。默认为 False。

  • target_scale (torch.Tensor) – 用于替代拟合中心和比例的目标比例

Returns:

缩放后的数据,如果 return_norm=True,还会作为第二个元素返回缩放比例

Return type:

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

property names: List[str]#

确定的尺度名称。

Returns:

名字列表

Return type:

列表[str]