ray.data.预处理器.RobustScaler#
- class ray.data.preprocessors.RobustScaler(columns: List[str], quantile_range: Tuple[float, float] = (0.25, 0.75))[源代码]#
基类:
Preprocessor
使用分位数缩放和转换每一列。
一般公式由以下给出
\[x' = \frac{x - \mu_{1/2}}{\mu_h - \mu_l}\]其中,\(x\) 是列,\(x'\) 是变换后的列,\(\mu_{1/2}\) 是列的中位数。\(\mu_{h}\) 和 \(\mu_{l}\) 分别是高和低的分位数。默认情况下,\(\mu_{h}\) 是第三四分位数,\(\mu_{l}\) 是第一四分位数。
小技巧
当您的数据包含许多异常值时,此缩放器工作良好。
示例
>>> import pandas as pd >>> import ray >>> from ray.data.preprocessors import RobustScaler >>> >>> df = pd.DataFrame({ ... "X1": [1, 2, 3, 4, 5], ... "X2": [13, 5, 14, 2, 8], ... "X3": [1, 2, 2, 2, 3], ... }) >>> ds = ray.data.from_pandas(df) >>> ds.to_pandas() X1 X2 X3 0 1 13 1 1 2 5 2 2 3 14 2 3 4 2 2 4 5 8 3
RobustScaler
分别缩放每一列。>>> preprocessor = RobustScaler(columns=["X1", "X2"]) >>> preprocessor.fit_transform(ds).to_pandas() X1 X2 X3 0 -1.0 0.625 1 1 -0.5 -0.375 2 2 0.0 0.750 2 3 0.5 -0.750 2 4 1.0 0.000 3
- 参数:
columns – 要单独缩放的列。
quantile_range – 定义下限和上限分位数的元组。值必须在0到1之间。默认值为第1和第3四分位数:
(0.25, 0.75)
。
PublicAPI (alpha): 此API处于alpha阶段,可能在稳定之前发生变化。
方法
加载通过
self.serialize()
序列化的原始预处理器。将此预处理器适配到数据集。
将此预处理器适配到数据集,然后转换数据集。
批处理格式提示上游生产者尝试生成最佳块格式。
返回此预处理器的字符串序列化表示。
转换给定的数据集。
转换单个批次的数据。