sklearn.preprocessing.RobustScaler?

class sklearn.preprocessing.RobustScaler(*, with_centering=True, with_scaling=True, quantile_range=(25.075.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_屬性。

另見:

robust_scale

沒有估算器API的等效函數。

sklearn.decomposition.PCA

進一步刪除帶有'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.075.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}
用于沿指定軸縮放的數據。

sklearn.preprocessing.RobustScaler使用示例?