sklearn.preprocessing.RobustScaler¶
class sklearn.preprocessing.RobustScaler(*, with_centering=True, with_scaling=True, quantile_range=(25.0, 75.0), copy=True)
使用对异常值鲁棒的统计信息来缩放特征。
此缩放器删除中位数,并根据分位数范围(默认值为IQR:四分位间距)缩放数据。IQR是第一个四分位数(25%分位数)和第3个四分位数(75%分位数)之间的范围。
通过计算训练集中样本的相关统计信息,对每个特征进行独立的居中和缩放。然后存储中位数和四分位数范围,以使用变换方法在以后的数据上使用。
数据集的标准化是许多机器学习估计器的普遍要求。通常,这是通过去除均值并缩放到单位方差来完成的。但是,离群值通常会以负面方式影响样本均值/方差。在这种情况下,中位数和四分位数间距通常会产生更好的结果。
版本0.17中的新功能。
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
with_centering | boolean, True by default 如果为True,则在缩放之前将数据居中。尝试使用稀疏矩阵时,这将导致转换引发异常,因为将它们居中需要构建密集的矩阵,在常见的使用情况下,该矩阵可能太大而无法容纳在内存中。 |
with_scaling | boolean, True by default 如果为True,则将数据缩放到四分位数范围。 |
quantile_range | tuple (q_min, q_max), 0.0 < q_min < q_max < 100.0 默认值:(25.0,75.0)=(第一分位数,第三分位数)= IQR用于计算scale_的分位数范围。 版本0.18中的新功能。 |
copy | boolean, optional, default is True 如果为False,请尝试避免复制并改为就地缩放。不能保证总是在原地工作;例如,如果数据不是NumPy数组或scipy.sparse CSR矩阵,则可能仍会返回副本。 |
属性 | 说明 |
---|---|
center_ | array of floats 训练集中每个要素的中位数。 |
scale_ | array of floats 训练集中每个要素的(缩放)四分位数范围。 0.17版中的新功能:scale_属性。 |
另见:
没有估算器API的等效函数。
进一步删除带有'whiten = True'的特征之间的线性相关性。
注释
有关不同缩放器,转换器和规范化器的比较,请参阅examples/preprocessing/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]])
方法
方法 | 说明 |
---|---|
fit (X[, y]) |
计算要用于缩放的中位数和分位数。 |
fit_transform (X[, y]) |
拟合数据,然后对其进行转换。 |
get_params ([deep]) |
获取此估计量的参数。 |
inverse_transform (X) |
将数据按比例缩小到原始表示形式 |
set_params (**params) |
设置此估算器的参数。 |
transform (X) |
居中并缩放数据。 |
__init__(*, with_centering=True, with_scaling=True, quantile_range=(25.0, 75.0), copy=True)
初始化self。请参阅help(type(self))以获取准确的签名
fit(X, y=None)
计算要用于缩放的中位数和分位数。
计算输出要素的数量。
参数 | 说明 |
---|---|
X | array-like, shape [n_samples, n_features] 用于计算中位数和分位数的数据,这些中位数和分位数用于以后沿特征轴缩放。 |
fit_transform(X, y=None, **fit_params)
拟合数据,然后对其进行转换。
使用可选参数fit_params将转换器拟合到X和y,并返回X的转换版本。
参数 | 说明 |
---|---|
X | {array-like, sparse matrix, dataframe} of shape (n_samples, n_features) |
y | ndarray of shape (n_samples,), default=None 目标值。 |
**fit_params | dict 其他拟合参数。 |
返回值 | 说明 |
---|---|
X_new | ndarray array of shape (n_samples, n_features_new) 转换后的数组。 |
get_params(deep=True)
获取此估计量的参数。
参数 | 说明 |
---|---|
deep | bool, default=True 如果为True,则将返回此估算器和作为估算器的所包含子对象的参数。 |
返回值 | 说明 |
---|---|
params | mapping of string to any 参数名称映射到其值。 |
inverse_transform(X)
将数据按比例缩小到原始表示形式
参数 | 说明 |
---|---|
X | **array-like ** 用于沿指定轴缩放的数据。 |
set_params(**params)
设置此估算器的参数。
该方法适用于简单的估计器以及嵌套对象(例如管道)。后者的参数形式为<component>__<parameter>这样就可以更新嵌套对象的每个组件。
参数 | 说明 |
---|---|
**params | dict 估算器参数。 |
返回值 | 说明 |
---|---|
self | object 估算器实例。 |
transform(X)
居中并缩放数据。
参数 | 说明 |
---|---|
X | {array-like, sparse matrix} 用于沿指定轴缩放的数据。 |