RobustScaler#

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

使用对离群值具有鲁棒性的统计数据来缩放特征。

此缩放器删除中位数并根据分位数范围(默认为IQR:四分位数范围)缩放数据。IQR是第1四分位数(第25分位数)和第3四分位数(第75分位数)之间的范围。

通过计算训练集中样本的相关统计数据,对每个特征独立进行定中心和缩放。然后存储中位数和四分位距,以供以后使用 transform

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

Added in version 0.17.

阅读更多的 User Guide .

参数:
with_centering布尔,默认=True

如果 True ,在扩展之前将数据集中在中心。这将导致 transform 在稀疏矩阵上尝试时引发异常,因为将它们居中需要构建一个密集矩阵,在常见的用例中,该矩阵可能太大而无法容纳在内存中。

with_scaling布尔,默认=True

如果 True ,将数据扩展到四分位数范围。

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

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

Added in version 0.18.

copy布尔,默认=True

如果 False ,尝试避免复制并进行就地扩展。并不能保证始终就地工作;例如,如果数据不是NumPy数组或scipy.sparse CSR矩阵,则仍然可能返回副本。

unit_variance布尔,默认=假

如果 True ,缩放数据,使正态分布的要素的方差为1。一般来说,如果x值之间的差 q_maxq_min 如果标准正态分布大于1,则数据集将按比例缩小。如果小于1,则将扩大数据集。

Added in version 0.24.

属性:
center_浮动数组

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

scale_浮动数组

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

Added in version 0.17: scale_ 属性

n_features_in_int

期间看到的功能数量 fit .

Added in version 0.24.

feature_names_in_ :nd形状数组 (n_features_in_ ,)nd数组形状(

Names of features seen during fit. Defined only when X has feature names that are all strings.

Added in version 1.0.

参见

robust_scale

没有估计器API的等效功能。

sklearn.decomposition.PCA

使用“RST = 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)[源代码]#

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

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

The data used to compute the median and quantiles used for later scaling along the features axis.

y忽视

未使用,此处列出是为了按照惯例实现API一致性。

返回:
self对象

安装了scaler。

fit_transform(X, y=None, **fit_params)[源代码]#

适应数据,然后对其进行转换。

适合变压器 Xy 具有可选参数 fit_params 并返回的转换版本 X .

参数:
X形状类似阵列(n_samples,n_features)

输入样本。

y形状为(n_samples,)或(n_samples,n_outputs)的阵列状, 默认值=无

目标值(无监督转换)。

**fit_paramsdict

其他适合参数。

返回:
X_newndray形状数组(n_samples,n_features_new)

变形的数组。

get_feature_names_out(input_features=None)[源代码]#

获取用于转换的输出要素名称。

参数:
input_features字符串或无的类数组,默认=无

输入功能。

  • 如果 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_ 是定义的。

返回:
feature_names_out字符串对象的nd数组

与输入功能相同。

get_metadata_routing()[源代码]#

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

请检查 User Guide 关于路由机制如何工作。

返回:
routingMetadataRequest

A MetadataRequest 封装路由信息。

get_params(deep=True)[源代码]#

获取此估计器的参数。

参数:
deep布尔,默认=True

如果为True,将返回此估计量和包含的作为估计量的子对象的参数。

返回:
paramsdict

参数名称映射到其值。

inverse_transform(X)[源代码]#

将数据缩放到原始表示。

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

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

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

变形的数组。

set_output(*, transform=None)[源代码]#

设置输出容器。

看到 介绍 set_output API 了解如何使用API的示例。

参数:
transform{“默认”,“pandas”,“polars”},默认=无

配置输出 transformfit_transform .

  • "default" :Transformer的默认输出格式

  • "pandas" :DataFrame输出

  • "polars" :两极输出

  • None :转换配置不变

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

返回:
self估计器实例

估计实例。

set_params(**params)[源代码]#

设置此估计器的参数。

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

参数:
**paramsdict

估计参数。

返回:
self估计器实例

估计实例。

transform(X)[源代码]#

集中并扩展数据。

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

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

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

变形的数组。