日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2025/3/21 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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 函数的简介及使用方法之详细攻略的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。