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_max
和q_min
的x值之差大于1,数据集将被缩小。如果小于1,数据集将被放大。Added in version 0.24.
- Attributes:
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)#
拟合数据,然后进行转换。
将转换器拟合到
X
和y
,并带有可选参数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_features
是None
,则使用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
配置
transform
和fit_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)
变换后的数组。