RobustScaler#
- class sklearn.preprocessing.RobustScaler(*, with_centering=True, with_scaling=True, quantile_range=(25.0, 75.0), copy=True, unit_variance=False)[原始碼]#
使用對離群值具有魯棒性的統計資料縮放特徵。
此縮放器會移除中位數,並根據分位數範圍(預設為 IQR:四分位數範圍)縮放資料。IQR 是第 1 個四分位數(第 25 個分位數)和第 3 個四分位數(第 75 個分位數)之間的範圍。
透過計算訓練集中樣本的相關統計資料,獨立地對每個特徵進行居中和縮放。然後儲存中位數和四分位數範圍,以便稍後使用
transform
方法用於後續資料。資料集的標準化是許多機器學習估算器常見的預處理步驟。通常的做法是移除平均值並縮放到單位變異數。然而,離群值通常會對樣本平均值/變異數產生負面影響。在這種情況下,使用中位數和四分位距通常會產生更好的結果。有關範例視覺化以及與其他縮放器的比較,請參閱比較 RobustScaler 與其他縮放器。
在 0.17 版本中新增。
請在使用者指南中閱讀更多內容。
- 參數:
- with_centeringbool,預設值為 True
如果為
True
,則在縮放之前將資料置中。這會導致當嘗試在稀疏矩陣上執行transform
時引發例外,因為將它們置中需要建立一個密集矩陣,這在常見的使用案例中可能太大而無法放入記憶體中。- with_scalingbool,預設值為 True
如果為
True
,則將資料縮放到四分位距。- quantile_rangetuple (q_min, q_max),0.0 < q_min < q_max < 100.0,預設值為 (25.0, 75.0)
用於計算
scale_
的分位數範圍。預設情況下,這等於四分位距,即q_min
是第一分位數,而q_max
是第三分位數。在 0.18 版本中新增。
- copybool,預設值為 True
如果為
False
,則嘗試避免複製,而是進行就地縮放。這不能保證始終可以就地運作;例如,如果資料不是 NumPy 陣列或 scipy.sparse CSR 矩陣,仍然可能會返回副本。- unit_variancebool,預設值為 False
如果為
True
,則縮放資料,使常態分佈的特徵的變異數為 1。一般而言,如果標準常態分佈的q_max
和q_min
的 x 值之差大於 1,則資料集將會縮小。如果小於 1,則資料集將會放大。在 0.24 版本中新增。
- 屬性:
另請參閱
魯棒縮放
沒有估算器 API 的對等函數。
sklearn.decomposition.PCA
使用 ‘whiten=True’ 進一步移除特徵之間的線性相關性。
注意事項
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=None)[來源]#
計算用於縮放的中位數和分位數。
- 參數:
- X形狀為 (n_samples, n_features) 的 {類陣列, 稀疏矩陣}
用於計算中位數和分位數的資料,這些分位數將用於後續沿特徵軸進行縮放。
- y忽略
未使用,此處僅為慣例,以保持 API 的一致性。
- 傳回值:
- self物件
已擬合的縮放器。
- fit_transform(X, y=None, **fit_params)[來源]#
擬合資料,然後轉換資料。
使用可選參數
fit_params
將轉換器擬合到X
和y
,並傳回X
的轉換版本。- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
輸入樣本。
- y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列,預設值為 None
目標值(對於非監督轉換,則為 None)。
- **fit_paramsdict
其他擬合參數。
- 傳回值:
- X_new形狀為 (n_samples, n_features_new) 的 ndarray 陣列
轉換後的陣列。
- get_feature_names_out(input_features=None)[來源]#
取得轉換的輸出特徵名稱。
- 參數:
- input_features字串或 None 的類陣列,預設值為 None
輸入特徵。
如果
input_features
為None
,則使用feature_names_in_
作為輸入特徵名稱。如果未定義feature_names_in_
,則會產生以下輸入特徵名稱:["x0", "x1", ..., "x(n_features_in_ - 1)"]
。如果
input_features
是類陣列,則如果定義了feature_names_in_
,則input_features
必須與feature_names_in_
相符。
- 傳回值:
- feature_names_out字串物件的 ndarray
與輸入特徵相同。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查閱使用者指南以了解路由機制如何運作。
- 傳回值:
- routingMetadataRequest
一個封裝路由資訊的
MetadataRequest
。
- get_params(deep=True)[原始碼]#
取得此估算器的參數。
- 參數:
- deepbool,預設值=True
如果為 True,將會回傳此估算器及其包含的子物件(亦為估算器)的參數。
- 傳回值:
- paramsdict
參數名稱對應到其值的字典。
- inverse_transform(X)[原始碼]#
將資料縮放回原始表示法。
- 參數:
- X形狀為 (n_samples, n_features) 的 {類陣列, 稀疏矩陣}
要轉換回來的重新縮放資料。
- 傳回值:
- X_tr形狀為 (n_samples, n_features) 的 {ndarray, 稀疏矩陣}
轉換後的陣列。
- set_output(*, transform=None)[原始碼]#
設定輸出容器。
請參閱介紹 set_output API以取得如何使用此 API 的範例。
- 參數:
- transform{"default", "pandas", "polars"},預設值=None
設定
transform
和fit_transform
的輸出。"default"
:轉換器的預設輸出格式"pandas"
:DataFrame 輸出"polars"
:Polars 輸出None
:轉換配置保持不變
在 1.4 版中新增:新增了
"polars"
選項。
- 傳回值:
- self估算器實例
估算器實例。