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阶段,可能在稳定之前发生变化。
方法
加载通过
self.serialize()
序列化的原始预处理器。将此预处理器适配到数据集。
将此预处理器适配到数据集,然后转换数据集。
批处理格式提示上游生产者尝试生成最佳块格式。
返回此预处理器的字符串序列化表示。
转换给定的数据集。
转换单个批次的数据。