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_max和q_min的 x 值之间的差大于 1,则数据集将被缩小。如果小于 1,则数据集将被放大。0.24 版本新增。
- 属性:
另请参阅
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将转换器拟合到X和y,并返回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_features为None,则使用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
配置
transform和fit_transform的输出。"default": 转换器的默认输出格式"pandas": DataFrame 输出"polars": Polars 输出None: 转换配置保持不变
1.4 版本新增: 添加了
"polars"选项。
- 返回:
- selfestimator instance
估计器实例。