ray.data.预处理器.StandardScaler#

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

基类:Preprocessor

分别按其均值和标准差对每一列进行标准化和缩放。

一般公式由以下给出

\[x' = \frac{x - \bar{x}}{s}\]

其中 \(x\) 是列,\(x'\) 是变换后的列,\(\bar{x}\) 是列的平均值,\(s\) 是列的样本标准差。如果 :math:`s = 0`(即,列是恒定值),那么变换后的列将包含零。

警告

StandardScaler 在你的数据是正态分布时效果最佳。如果你的数据不是近似正态分布,那么转换后的特征将没有意义。

示例

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

列是分别缩放的。

>>> preprocessor = StandardScaler(columns=["X1", "X2"])
>>> preprocessor.fit_transform(ds).to_pandas()  
         X1        X2  X3
0 -1.224745 -0.707107   1
1  0.000000 -0.707107   1
2  1.224745  1.414214   1

常量值列会被填充为零。

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

columns – 要单独缩放的列。

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

方法

deserialize

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

fit

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

fit_transform

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

preferred_batch_format

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

serialize

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

transform

转换给定的数据集。

transform_batch

转换单个批次的数据。