Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略

目录

sklearn中的RobustScaler 函数的简介及使用方法


sklearn中的RobustScaler 函数的简介及使用方法

RobustScaler 函数使用对异常值鲁棒的统计信息来缩放特征。这个标量去除中值,并根据分位数范围(默认为IQR即四分位数范围)对数据进行缩放。IQR是第1个四分位数(第25分位数)和第3个四分位数(第75分位数)之间的范围。通过计算训练集中样本的相关统计量,对每个特征分别进行定心和缩放。然后将中值和四分位范围存储起来,使用“变换”方法用于以后的数据。
        数据集的标准化是许多机器学习估计器的常见需求。这通常是通过去除平均值和缩放到单位方差来实现的。然而,异常值往往会对样本均值/方差产生负面影响。在这种情况下,中位数和四分位范围通常会给出更好的结果。

class RobustScaler Found at: sklearn.preprocessing._data

class RobustScaler(TransformerMixin, BaseEstimator):

"""Scale features using statistics that are robust to outliers.

This Scaler removes the median and scales the data according to the quantile range (defaults to IQR: Interquartile Range).  The IQR is the range between the 1st quartile (25th quantile) and the 3rd quartile (75th quantile).

Centering and scaling happen independently on each feature by computing the relevant statistics on the samples in the training set. Median and interquartile range are then stored to be used on later data using the ``transform`` method.

Standardization of a dataset is a common requirement for many machine learning estimators. Typically this is done by removing the mean and scaling to unit variance. However, outliers can often influence the sample mean / variance in a negative way. In such cases, the median and the interquartile range often give better results.

.. versionadded:: 0.17

Read more in the :ref:`User Guide <preprocessing_scaler>`.

使用对异常值鲁棒的统计信息来缩放特征。

这个标量去除中值,并根据分位数范围(默认为IQR即四分位数范围)对数据进行缩放。IQR是第1个四分位数(第25分位数)和第3个四分位数(第75分位数)之间的范围。

通过计算训练集中样本的相关统计量,对每个特征分别进行定心和缩放。然后将中值和四分位范围存储起来,使用“变换”方法用于以后的数据。

数据集的标准化是许多机器学习估计器的常见需求。这通常是通过去除平均值和缩放到单位方差来实现的。然而,异常值往往会对样本均值/方差产生负面影响。在这种情况下,中位数和四分位范围通常会给出更好的结果。

. .versionadded:: 0.17

更多内容见:ref: ' User Guide  '。</preprocessing_scaler>

Parameters

----------

with_centering : boolean, True by default. If True, center the data before scaling. This will cause ``transform`` to raise an exception when attempted on sparse matrices, because centering them entails building a dense matrix which in common use cases is likely to be too large to fit in memory.

with_scaling : boolean, True by default. If True, scale the data to interquartile range. quantile_range : tuple (q_min, q_max), 0.0 < q_min < q_max <  100.0. Default: (25.0, 75.0) = (1st quantile, 3rd quantile) = IQR. Quantile range used to calculate ``scale_``.

.. versionadded:: 0.18

copy : boolean, optional, default is True. If False, try to avoid a copy and do inplace scaling instead. This is not guaranteed to always work inplace; e.g. if the data is not a NumPy array or scipy.sparse CSR matrix, a copy may still be returned.

Attributes

----------

center_ : array of floats. The median value for each feature in the training set.

scale_ : array of floats. The (scaled) interquartile range for each feature in the training set.

参数

----------

with_centering : boolean类型,默认为True。如果为真,在缩放前将数据居中。这将导致“转换”在尝试处理稀疏矩阵时引发异常,因为围绕它们需要构建一个密集的矩阵,在常见的用例中,这个矩阵可能太大而无法装入内存。

with_scaling : boolean类型,默认为True。如果为真,将数据缩放到四分位范围。quantile_range:元组(q_min, q_max), 0.0 < q_min < q_max < 100.0。默认:(25.0,75.0)=(第1分位数,第3分位数)= IQR。用于计算' ' scale_ ' '的分位数范围。

. .versionadded:: 0.18

copy : boolean类型,可选,默认为真。如果为False,则尽量避免复制,而改为就地缩放。这并不能保证总是有效的;例如,如果数据不是一个NumPy数组或scipy。稀疏CSR矩阵,仍可返回副本。

属性

----------

center_ : 浮点数数组。训练集中每个特征的中值。

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

.. versionadded:: 0.17

*scale_* attribute.

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

See also

--------

robust_scale: Equivalent function without the estimator API.

:class:`sklearn.decomposition.PCA`

Further removes the linear correlation across features with

'whiten=True'.

Notes

-----

For a comparison of the different scalers, transformers, and normalizers, see :ref:`examples/preprocessing/plot_all_scaling.py

<sphx_glr_auto_examples_preprocessing_plot_all_scaling.py>`.

https://en.wikipedia.org/wiki/Median

https://en.wikipedia.org/wiki/Interquartile_range

"""

@_deprecate_positional_args

def __init__(self, *, with_centering=True, with_scaling=True,

quantile_range=(25.0, 75.0), copy=True):

self.with_centering = with_centering

self.with_scaling = with_scaling

self.quantile_range = quantile_range

self.copy = copy

def fit(self, X, y=None):

"""Compute the median and quantiles to be used for scaling.

Parameters

----------

X : array-like, shape [n_samples, n_features]. The data used to compute the median and quantiles used for later scaling along the features axis.

"""

# at fit, convert sparse matrices to csc for optimized computation of the quantiles

X = self._validate_data(X, accept_sparse='csc', estimator=self,

dtype=FLOAT_DTYPES,

force_all_finite='allow-nan')

q_min, q_max = self.quantile_range

if not 0 <= q_min <= q_max <= 100:

raise ValueError(

"Invalid quantile range: %s" % str(self.quantile_range))

if self.with_centering:

if sparse.issparse(X):

raise ValueError(

"Cannot center sparse matrices: use

`with_centering=False`"

" instead. See docstring for motivation and

alternatives.")

self.center_ = np.nanmedian(X, axis=0)

else:

self.center_ = None

if self.with_scaling:

quantiles = []

for feature_idx in range(X.shape[1]):

if sparse.issparse(X):

column_nnz_data = X.data[X.indptr[feature_idx]:

X.indptr[feature_idx + 1]]

column_data = np.zeros(shape=X.shape[0], dtype=X.

dtype)

column_data[:len(column_nnz_data)] =

column_nnz_data

else:

column_data = X[:feature_idx]

quantiles.append(np.nanpercentile(column_data,

self.quantile_range))

quantiles = np.transpose(quantiles)

self.scale_ = quantiles[1] - quantiles[0]

self.scale_ = _handle_zeros_in_scale(self.scale_, copy=False)

else:

self.scale_ = None

return self

def transform(self, X):

"""Center and scale the data.

Parameters

----------

X : {array-like, sparse matrix}

The data used to scale along the specified axis.

"""

check_is_fitted(self)

X = check_array(X, accept_sparse=('csr', 'csc'), copy=self.

copy,

estimator=self, dtype=FLOAT_DTYPES,

force_all_finite='allow-nan')

if sparse.issparse(X):

if self.with_scaling:

inplace_column_scale(X, 1.0 / self.scale_)

else:

if self.with_centering:

X -= self.center_

if self.with_scaling:

X /= self.scale_

return X

def inverse_transform(self, X):

"""Scale back the data to the original representation

Parameters

----------

X : array-like

The data used to scale along the specified axis.

"""

check_is_fitted(self)

X = check_array(X, accept_sparse=('csr', 'csc'), copy=self.

copy,

estimator=self, dtype=FLOAT_DTYPES,

force_all_finite='allow-nan')

if sparse.issparse(X):

if self.with_scaling:

inplace_column_scale(X, self.scale_)

else:

if self.with_scaling:

X *= self.scale_

if self.with_centering:

X += self.center_

return X

def _more_tags(self):

return {'allow_nan':True}

Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略相关推荐

  1. Python之 sklearn:sklearn.preprocessing中的StandardScaler函数的简介及使用方法之详细攻略

    Python之 sklearn:sklearn.preprocessing中的StandardScaler函数的简介及使用方法之详细攻略 目录 sklearn.preprocessing中的Stand ...

  2. ML之sklearn:sklearn.linear_mode中的LogisticRegression函数的简介、使用方法之详细攻略

    ML之sklearn:sklearn.linear_mode中的LogisticRegression函数的简介.使用方法之详细攻略 目录 sklearn.linear_mode中的LogisticRe ...

  3. Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略

    Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略 目录 sklearn中的train_test_split函数的简介 train_tes ...

  4. sklearn:sklearn.GridSearchCV函数的简介、使用方法之详细攻略

    sklearn:sklearn.GridSearchCVl函数的简介.使用方法之详细攻略 目录 sklearn.GridSearchCV函数的简介 1.参数说明 2.功能代码 sklearn.Grid ...

  5. sklearn:sklearn.feature_selection的SelectFromModel函数的简介、使用方法之详细攻略

    sklearn:sklearn.feature_selection的SelectFromModel函数的简介.使用方法之详细攻略 目录 SelectFromModel函数的简介 1.使用SelectF ...

  6. Python命令行解析:sys.argv[]函数的简介、案例应用之详细攻略

    Python命令行解析:sys.argv[]函数的简介.案例应用之详细攻略 目录 sys.argv[]函数的简介 sys.argv[]函数的案例应用 1.基础测试 2.进阶用法 3.sys.argv[ ...

  7. Py之matplotlib.pyplot:matplotlib.pyplot的plt.legend函数的简介、使用方法之详细攻略

    Py之matplotlib.pyplot:matplotlib.pyplot的plt.legend函数的简介.使用方法之详细攻略 目录 matplotlib.pyplot的plt.legend函数的简 ...

  8. sklearn:sklearn.preprocessing.StandardScaler函数的fit_transform、transform、inverse_transform简介、使用方法之详细攻略

    sklearn:sklearn.preprocessing.StandardScaler函数的fit_transform.transform.inverse_transform简介.使用方法之详细攻略 ...

  9. Python:numpy库中的一些函数简介、使用方法之详细攻略

    Python:numpy库中的一些函数简介.使用方法之详细攻略 目录 numpy库中的一些函数简介.使用方法 1.np.concatenate() 1.1.函数案例 1.2.函数用法 numpy库中的 ...

最新文章

  1. SPOJ 694 不同子串个数
  2. ListView使用技巧-更新中
  3. ustc小道消息20220120
  4. request.params 用法
  5. 一篇真正教会你开发移动端页面的文章(二)
  6. 吾很努力了,吾不是关键因素
  7. 关于EasyExcel 优化,实现格式自定义,数据字典自动转化。
  8. 【VS2015】 C++实现硬件ID的查询
  9. ie无法下载 无法打开该internet站点.请求的站点不可用或无法找到.请稍后重试
  10. uWSGI +Flask+torch Cannot re-initialize CUDA in forked subprocess
  11. 群晖linux文件夹颜色红色,技术干货分享 | 群晖备份Linux文件夹~
  12. JZ73 翻转单词序列
  13. PowerBI-日期和时间函数-EOMONTH
  14. 此beta版已额满_2020.10.23其乐早报:《饥荒:联机版》送900线轴+新的登录奖励与直播掉落...
  15. 浅尝辄止MongoDB:管理(1)
  16. 电商:大众市场与细分市场
  17. 音乐宿主软件排行榜前十名,音乐宿主要买正版吗
  18. 杰理之芯片使用注意事项【篇】
  19. 【多源融合】Sage-Husa滤波完整推导
  20. Google Play第一次发布的应用商店看不到

热门文章

  1. Linux 常用命令与设置
  2. LaTex 常用整理
  3. nginx配置多个php端口号,nginx如何设置多端口
  4. Nginx的upstream_response_time
  5. PhpStorm代码格式化设置
  6. 个人机房重构--七层实现登录
  7. 老而不死的三种编程语言!
  8. 4 次版本迭代,我们将项目性能提升了 360 倍!
  9. 技术债务就像俄罗斯方块,你永远都赢不了!
  10. Windows 平台下 Go 语言的安装和环境变量设置