RobustScaler#

class sklearn.preprocessing.RobustScaler(*, with_centering=True, with_scaling=True, quantile_range=(25.0, 75.0), copy=True, unit_variance=False)[source]#

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

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

居中和缩放是针对每个特征独立进行的,通过在训练集中的样本上计算相关统计量。然后存储中位数和四分位距,以便在稍后使用 transform 方法应用于新数据。

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

版本0.17中新增。

用户指南 中阅读更多内容。

参数:
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 新增。

copy布尔值, 默认为 True

如果为 False,则尝试避免复制并将缩放 inplace 执行。这不保证始终可以 inplace 执行;例如,如果数据不是 NumPy 数组或 scipy.sparse CSR 矩阵,则仍可能返回副本。

unit_variancebool, default=False

如果为 True,则缩放数据,使正态分布的特征具有单位方差。通常,如果标准正态分布下 q_maxq_min 的 x 值之间的差大于 1,则数据集将被缩小。如果小于 1,则数据集将被放大。

0.24 版本新增。

属性:
center_array of floats

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

scale_array of floats

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

Added in version 0.17: scale_ attribute.

n_features_in_int

拟合 期间看到的特征数。

0.24 版本新增。

feature_names_in_shape 为 (n_features_in_,) 的 ndarray

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=None)[source]#

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

参数:
Xshape 为 (n_samples, n_features) 的 {array-like, sparse matrix}

用于计算中位数和分位数的数据,这些数据将在稍后沿特征轴进行缩放。

y被忽略

Not used, present here for API consistency by convention.

返回:
selfobject

拟合好的缩放器。

fit_transform(X, y=None, **fit_params)[source]#

拟合数据,然后对其进行转换。

使用可选参数 fit_params 将转换器拟合到 Xy,并返回 X 的转换版本。

参数:
Xshape 为 (n_samples, n_features) 的 array-like

输入样本。

y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组对象,默认=None

目标值(对于无监督转换,为 None)。

**fit_paramsdict

额外的拟合参数。仅当估计器在其 fit 方法中接受额外的参数时才传递。

返回:
X_newndarray array of shape (n_samples, n_features_new)

转换后的数组。

get_feature_names_out(input_features=None)[source]#

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

参数:
input_featuresarray-like of str or None, default=None

输入特征。

  • 如果 input_featuresNone,则使用 feature_names_in_ 作为输入特征名称。如果 feature_names_in_ 未定义,则生成以下输入特征名称:["x0", "x1", ..., "x(n_features_in_ - 1)"]

  • 如果 input_features 是 array-like,则如果定义了 feature_names_in_input_features 必须与 feature_names_in_ 匹配。

返回:
feature_names_outstr 对象的 ndarray

与输入特征相同。

get_metadata_routing()[source]#

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

请查阅 用户指南,了解路由机制如何工作。

返回:
routingMetadataRequest

封装路由信息的 MetadataRequest

get_params(deep=True)[source]#

获取此估计器的参数。

参数:
deepbool, default=True

如果为 True,将返回此估计器以及包含的子对象(如果它们是估计器)的参数。

返回:
paramsdict

参数名称映射到其值。

inverse_transform(X)[source]#

将数据缩放回原始表示。

参数:
Xshape 为 (n_samples, n_features) 的 {array-like, sparse matrix}

要转换回的重新缩放数据。

返回:
X_original形状为 (n_samples, n_features) 的 {ndarray, sparse matrix}

转换后的数组。

set_output(*, transform=None)[source]#

设置输出容器。

有关如何使用 API 的示例,请参阅引入 set_output API

参数:
transform{“default”, “pandas”, “polars”}, default=None

配置 transformfit_transform 的输出。

  • "default": 转换器的默认输出格式

  • "pandas": DataFrame 输出

  • "polars": Polars 输出

  • None: 转换配置保持不变

1.4 版本新增: 添加了 "polars" 选项。

返回:
selfestimator instance

估计器实例。

set_params(**params)[source]#

设置此估计器的参数。

此方法适用于简单的估计器以及嵌套对象(如 Pipeline)。后者具有 <component>__<parameter> 形式的参数,以便可以更新嵌套对象的每个组件。

参数:
**paramsdict

估计器参数。

返回:
selfestimator instance

估计器实例。

transform(X)[source]#

居中并缩放数据。

参数:
Xshape 为 (n_samples, n_features) 的 {array-like, sparse matrix}

用于沿指定轴进行缩放的数据。

返回:
X_tr{ndarray, sparse matrix} of shape (n_samples, n_features)

转换后的数组。