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} 用于沿指定軸縮放的數據。 |