ray.data.预处理器.MaxAbsScaler#

class ray.data.preprocessors.MaxAbsScaler(columns: List[str])[源代码]#

基类:Preprocessor

按其绝对最大值缩放每一列。

一般公式由以下给出

\[x' = \frac{x}{\max{\vert x \vert}}\]

其中 \(x\) 是列,而 \(x'\) 是变换后的列。如果 \(\max{\vert x \vert} = 0\) (即,列包含所有零),则该列保持不变。

小技巧

这是推荐用于缩放稀疏数据的方法。如果你的数据不是稀疏的,你可以使用 MinMaxScalerStandardScaler 代替。

示例

>>> import pandas as pd
>>> import ray
>>> from ray.data.preprocessors import MaxAbsScaler
>>>
>>> df = pd.DataFrame({"X1": [-6, 3], "X2": [2, -4], "X3": [0, 0]})   # noqa: E501
>>> ds = ray.data.from_pandas(df)  
>>> ds.to_pandas()  
   X1  X2  X3
0  -6   2   0
1   3  -4   0

列是分别缩放的。

>>> preprocessor = MaxAbsScaler(columns=["X1", "X2"])
>>> preprocessor.fit_transform(ds).to_pandas()  
    X1   X2  X3
0 -1.0  0.5   0
1  0.5 -1.0   0

零值列不会被缩放。

>>> preprocessor = MaxAbsScaler(columns=["X3"])
>>> preprocessor.fit_transform(ds).to_pandas()  
   X1  X2   X3
0  -6   2  0.0
1   3  -4  0.0
参数:

columns – 要单独缩放的列。

PublicAPI (alpha): 此API处于alpha阶段,可能在稳定之前发生变化。

方法

deserialize

加载通过 self.serialize() 序列化的原始预处理器。

fit

将此预处理器适配到数据集。

fit_transform

将此预处理器适配到数据集,然后转换数据集。

preferred_batch_format

批处理格式提示上游生产者尝试生成最佳块格式。

serialize

返回此预处理器的字符串序列化表示。

transform

转换给定的数据集。

transform_batch

转换单个批次的数据。