dask_ml.preprocessing.RobustScaler

dask_ml.preprocessing.RobustScaler

class dask_ml.preprocessing.RobustScaler(*, with_centering=True, with_scaling=True, quantile_range=(25.0, 75.0), copy=True, unit_variance=False)

使用对异常值具有鲁棒性的统计量来缩放特征。

这个缩放器去除中位数,并根据分位数范围(默认为 IQR:四分位距)缩放数据。IQR 是第一四分位数(25% 分位数)和第三四分位数(75% 分位数)之间的范围。

中心化和缩放分别独立应用于每个特征,通过计算训练集样本的相关统计量来实现。然后存储中位数和四分位距,以便后续数据使用 transform() 方法进行处理。

数据集的标准化是许多机器学习估计器的常见预处理步骤。通常通过去除均值并缩放到单位方差来实现。然而,异常值通常会对样本的均值/方差产生负面影响。在这种情况下,使用中位数和四分位距通常能获得更好的结果。有关可视化示例以及与其他缩放器的比较,请参阅 Compare RobustScaler with other scalers

0.17 版本新增。

User Guide 中阅读更多内容。

参数
with_centeringbool, default=True

如果为 True,则在缩放前对数据进行中心化。当尝试对稀疏矩阵执行此操作时,transform() 将引发异常,因为对其进行中心化涉及构建密集矩阵,在常见用例中这可能太大而无法放入内存。

with_scalingbool, default=True

如果为 True,则将数据按四分位距进行缩放。

quantile_rangetuple (q_min, q_max), 0.0 < q_min < q_max < 100.0, default=(25.0, 75.0)

用于计算 scale_ 的分位数范围。默认情况下,这等于 IQR,即 q_min 是第一分位数,q_max 是第三分位数。

0.18 版本新增。

copybool, default=True

如果为 False,则尝试避免复制并进行原地缩放。这并不保证总是原地工作;例如,如果数据不是 NumPy 数组或 scipy.sparse CSR 矩阵,仍然可能会返回一个副本。

unit_variancebool, default=False

如果为 True,则缩放数据,使正态分布特征的方差为 1。一般来说,如果标准正态分布的 q_maxq_min 对应的 x 值之差大于 1,则数据集将被缩小。如果小于 1,则数据集将被放大。

0.24 版本新增。

属性
center_array of floats

训练集中每个特征的中位数。

scale_array of floats

训练集中每个特征的(缩放后的)四分位距。

0.17 版本新增:scale_ 属性。

n_features_in_int

fit 期间看到的特征数量。

0.24 版本新增。

feature_names_in_ndarray of shape (n_features_in_,)

fit 期间看到的特征名称。仅当 X 的所有特征名称都是字符串时定义。

1.0 版本新增。

另请参见

robust_scale

不带估计器 API 的等效函数。

sklearn.decomposition.PCA

通过 'whiten=True' 进一步去除特征间的线性相关性。

注意

https://en.wikipedia.org/wiki/Median https://en.wikipedia.org/wiki/Interquartile_range

示例

>>> from sklearn.preprocessing import RobustScaler
>>> X = [[ 1., -2.,  2.],
...      [ -2.,  1.,  3.],
...      [ 4.,  1., -2.]]
>>> transformer = RobustScaler().fit(X)
>>> transformer
RobustScaler()
>>> transformer.transform(X)
array([[ 0. , -2. ,  0. ],
       [-1. ,  0. ,  0.4],
       [ 1. ,  0. , -1.6]])

方法

fit(X[, y])

计算用于缩放的中位数和分位数。

fit_transform(X[, y])

拟合数据,然后转换。

get_feature_names_out([input_features])

获取转换后的输出特征名称。

get_metadata_routing()

获取此对象的元数据路由。

get_params([deep])

获取此估计器的参数。

inverse_transform(X)

将数据缩放回原始表示。

set_output(*[, transform])

设置输出容器。

set_params(**params)

设置此估计器的参数。

transform(X)

对数据进行中心化和缩放。

__init__(*, with_centering=True, with_scaling=True, quantile_range=(25.0, 75.0), copy=True, unit_variance=False)