RobustScaler#

class sklearn.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

Added in version 0.17.

更多信息请参阅 User Guide

Parameters:
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 是第三分位数。

Added in version 0.18.

copybool, default=True

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

unit_variancebool, default=False

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

Added in version 0.24.

Attributes:
center_array of floats

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

scale_array of floats

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

Added in version 0.17: scale_ 属性。

n_features_in_int

fit 过程中看到的特征数量。

Added in version 0.24.

feature_names_in_ndarray of shape ( n_features_in_ ,)

fit 过程中看到的特征名称。仅当 X 的特征名称均为字符串时定义。

Added in version 1.0.

See also

robust_scale

等效函数,没有估计器API。

sklearn.decomposition.PCA

进一步去除特征间的线性相关性,使用 ‘whiten=True’。

Notes

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

Examples

>>> 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)#

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

Parameters:
X{array-like, sparse matrix},形状为 (n_samples, n_features)

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

y忽略

未使用,此处存在是为了通过约定保持API一致性。

Returns:
selfobject

拟合的缩放器。

fit_transform(X, y=None, **fit_params)#

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

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

Parameters:
X形状为 (n_samples, n_features) 的类数组

输入样本。

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

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

**fit_paramsdict

其他拟合参数。

Returns:
X_new形状为 (n_samples, n_features_new) 的 ndarray 数组

转换后的数组。

get_feature_names_out(input_features=None)#

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

Parameters:
input_features字符串数组或None,默认=None

输入特征。

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

  • 如果 input_features 是数组类型,则 input_features 必须与 feature_names_in_ 匹配(如果 feature_names_in_ 已定义)。

Returns:
feature_names_out字符串对象的ndarray

与输入特征相同。

get_metadata_routing()#

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

请查看 用户指南 以了解路由机制的工作原理。

Returns:
routingMetadataRequest

MetadataRequest 封装的 路由信息。

get_params(deep=True)#

获取此估计器的参数。

Parameters:
deepbool, 默认=True

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

Returns:
paramsdict

参数名称映射到它们的值。

inverse_transform(X)#

将数据缩放回原始表示。

Parameters:
X{array-like, sparse matrix},形状为 (n_samples, n_features)

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

Returns:
X_tr{ndarray, sparse matrix},形状为 (n_samples, n_features)

转换后的数组。

set_output(*, transform=None)#

设置输出容器。

请参阅 介绍 set_output API 以了解如何使用API的示例。

Parameters:
transform{“default”, “pandas”, “polars”}, 默认=None

配置 transformfit_transform 的输出。

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

  • "pandas" : DataFrame 输出

  • "polars" : Polars 输出

  • None : 转换配置不变

Added in version 1.4: "polars" 选项已添加。

Returns:
self估计器实例

估计器实例。

set_params(**params)#

设置此估计器的参数。

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

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

transform(X)#

中心化和缩放数据。

Parameters:
X{array-like, sparse matrix},形状为 (n_samples, n_features)

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

Returns:
X_tr{ndarray, sparse matrix},形状为 (n_samples, n_features)

变换后的数组。