当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn RobustScaler用法及代码示例


本文简要介绍python语言中 sklearn.preprocessing.RobustScaler 的用法。

用法:

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

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

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

通过计算训练集中样本的相关统计数据,居中和缩放在每个特征上独立发生。然后使用transform 方法存储中位数和四分位数范围以用于以后的数据。

数据集的标准化是许多机器学习估计器的共同要求。通常这是通过去除均值并缩放到单位方差来完成的。但是,异常值通常会对样本均值/方差产生负面影响。在这种情况下,中位数和四分位距通常会给出更好的结果。

在用户指南中阅读更多信息。

参数

with_centering布尔,默认=真

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

with_scaling布尔,默认=真

如果 True ,将数据缩放到四分位数范围。

quantile_range元组 (q_min, q_max), 0.0 < q_min < q_max < 100.0, 默认=(25.0, 75.0)

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

copy布尔,默认=真

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

unit_variance布尔,默认=假

如果 True ,缩放数据,使正态分布特征的方差为 1。通常,如果标准正态分布的 q_max 的 x-values 与 q_min 之间的差异大于 1,则数据集将被缩小。如果小于 1,则数据集将按比例放大。

属性

center_浮点数数组

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

scale_浮点数数组

训练集中每个特征的(缩放的)四分位数范围。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

注意

有关不同缩放器、转换器和规范器的比较,请参阅示例/预处理/plot_all_scaling.py。

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

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.preprocessing.RobustScaler。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。