當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python sklearn RobustScaler用法及代碼示例


本文簡要介紹python語言中 sklearn.preprocessing.RobustScaler 的用法。

用法:

class sklearn.preprocessing.RobustScaler(*, with_centering=True, with_scaling=True, quantile_range=(25.0, 75.0), copy=True, unit_variance=False)

使用對異常值具有魯棒性的統計數據來縮放特征。

此 Scaler 移除中位數並根據分位數範圍(默認為 IQR:四分位數範圍)縮放數據。 IQR 是第 1 個四分位數(第 25 個分位數)和第 3 個四分位數(第 75 個分位數)之間的範圍。

通過計算訓練集中樣本的相關統計數據,居中和縮放在每個特征上獨立發生。然後使用transform 方法存儲中位數和四分位數範圍以用於以後的數據。

數據集的標準化是許多機器學習估計器的共同要求。通常這是通過去除均值並縮放到單位方差來完成的。但是,異常值通常會對樣本均值/方差產生負麵影響。在這種情況下,中位數和四分位距通常會給出更好的結果。

在用戶指南中閱讀更多信息。

參數

with_centering布爾,默認=真

如果 True ,在縮放之前將數據居中。這將導致transform 在稀疏矩陣上嘗試時引發異常,因為將它們居中需要構建一個密集矩陣,在常見的用例中,該矩陣可能太大而無法放入內存。

with_scaling布爾,默認=真

如果 True ,將數據縮放到四分位數範圍。

quantile_range元組 (q_min, q_max), 0.0 < q_min < q_max < 100.0, 默認=(25.0, 75.0)

用於計算 scale_ 的分位數範圍。默認情況下,這等於 IQR,即,q_min 是第一個分位數,q_max 是第三個分位數。

copy布爾,默認=真

如果 False ,請盡量避免複製並進行就地縮放。這不能保證總是在原地工作;例如如果數據不是NumPy 數組或scipy.sparse CSR 矩陣,則仍可能返回副本。

unit_variance布爾,默認=假

如果 True ,縮放數據,使正態分布特征的方差為 1。通常,如果標準正態分布的 q_max 的 x-values 與 q_min 之間的差異大於 1,則數據集將被縮小。如果小於 1,則數據集將按比例放大。

屬性

center_浮點數數組

訓練集中每個特征的中值。

scale_浮點數數組

訓練集中每個特征的(縮放的)四分位數範圍。

n_features_in_int

擬合期間看到的特征數。

feature_names_in_ndarray 形狀(n_features_in_,)

擬合期間看到的特征名稱。僅當 X 具有全為字符串的函數名稱時才定義。

注意

有關不同縮放器、轉換器和規範器的比較,請參閱示例/預處理/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]])

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.preprocessing.RobustScaler。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。