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\) (即,列包含所有零),则该列保持不变。
小技巧
这是推荐用于缩放稀疏数据的方法。如果你的数据不是稀疏的,你可以使用
MinMaxScaler或StandardScaler代替。示例
>>> 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阶段,可能在稳定之前发生变化。
方法
加载通过
self.serialize()序列化的原始预处理器。将此预处理器适配到数据集。
将此预处理器适配到数据集,然后转换数据集。
批处理格式提示上游生产者尝试生成最佳块格式。
返回此预处理器的字符串序列化表示。
转换给定的数据集。
转换单个批次的数据。