sklearn.preprocessing.QuantileTransformer?
class sklearn.preprocessing.QuantileTransformer(*, n_quantiles=1000, output_distribution='uniform', ignore_implicit_zeros=False, subsample=100000, random_state=None, copy=True)
使用分位數信息變換特征。
此方法將要素轉換為遵循均勻或正態分布。因此,對于給定的特征,此變換趨向于散布最頻繁的值。它還減少了(邊際)離群值的影響:因此,這是一個可靠的預處理方案。
變換獨立應用于每個功能。首先,特征的累積分布函數的估計值用于將原始值映射到均勻分布。然后使用關聯的分位數函數將獲得的值映射到所需的輸出分布。低于或高于擬合范圍的新數據/看不見數據的特征值將映射到輸出分布的邊界。請注意,此變換是非線性的。它可能會扭曲以相同比例尺測量的變量之間的線性相關性,但會使以不同比例尺測量的變量更直接可比。
在用戶指南中閱讀更多內容。
版本0.19中的新功能。
參數 | 說明 |
---|---|
n_quantiles | int, optional (default=1000 or n_samples) 要計算的分位數。它對應于用來離散化累積分布函數的界標數量。如果n_quantiles大于樣本數,則將n_quantiles設置為樣本數,因為較大的分位數不能夠更好地近似累積分布函數估計量。 |
output_distribution | str, optional (default=’uniform’) 轉換后數據的邊際分布。選擇是“統一”(默認)或“正常”。 |
ignore_implicit_zeros | bool, optional (default=False) 僅適用于稀疏矩陣。如果為True,則將丟棄矩陣的稀疏條目以計算分位數統計信息。如果為False,則將這些條目視為零。 |
subsample | int, optional (default=1e5) 用于估計分位數以提高計算效率的最大樣本數。注意,對于值相同的稀疏矩陣和密集矩陣,子采樣過程可能有所不同。 |
random_state | int, RandomState instance or None, optional (default=None) 確定用于二次采樣和平滑噪聲的隨機數生成。請參閱子樣本以獲取更多詳細信息。在多個函數調用之間傳遞int以獲得可重復的結果。見詞匯 |
copy | boolean, optional, (default=True) 設置為False可以執行就地轉換并避免復制(如果輸入已經是一個numpy數組)。 |
屬性 | 說明 |
---|---|
n_quantiles_ | integer 用于離散化累積分布函數的分位數的實際數量。 |
quantiles_ | ndarray, shape (n_quantiles, n_features) 這些值對應于參考分位數。 |
references_ | ndarray, shape(n_quantiles, ) 參考分位數。 |
另見:
沒有估算器API的等效函數。
使用冪變換執行到正態分布的映射。
執行更快的標準化,但對異常值的魯棒性較低。
執行魯棒的標準化,以消除離群值的影響,但不會使離群值和離群值處于相同的規模。
注釋
NaN被視為缺失值:忽略適合度,并保持變換值。
有關不同縮放器,轉換器和規范化器的比較,請參閱examples/preprocessing/plot_all_scaling.py。
示例
>>> import numpy as np
>>> from sklearn.preprocessing import QuantileTransformer
>>> rng = np.random.RandomState(0)
>>> X = np.sort(rng.normal(loc=0.5, scale=0.25, size=(25, 1)), axis=0)
>>> qt = QuantileTransformer(n_quantiles=10, random_state=0)
>>> qt.fit_transform(X)
array([...])
方法
方法 | 說明 |
---|---|
fit (X[, y]) |
計算用于轉換的分位數。 |
fit_transform (X[, y]) |
擬合數據,然后對其進行轉換。 |
get_params ([deep]) |
獲取此估計量的參數。 |
inverse_transform (X) |
反投影到原始空間。 |
set_params (**params) |
設置此估算器的參數。 |
transform (X) |
數據的按特征進行轉換。 |
__init__(*, n_quantiles=1000, output_distribution='uniform', ignore_implicit_zeros=False, subsample=100000, random_state=None, copy=True)
初始化self,有關準確的簽名,請參見help(type(self))。
fit(X, y=None)
計算用于轉換的分位數。
參數 | 說明 |
---|---|
X | ndarray or sparse matrix, shape (n_samples, n_features) 用于沿要素軸縮放的數據。如果提供了稀疏矩陣,它將被轉換為稀疏csc_matrix。此外,如果ignore_implicit_zeros為False,則稀疏矩陣需要為非負數。 |
返回值 | 說明 |
---|---|
self | object |
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 | ndarray or sparse matrix, shape (n_samples, n_features) 用于沿要素軸縮放的數據。如果提供了稀疏矩陣,它將被轉換為稀疏csc_matrix。此外,如果ignore_implicit_zeros為False,則稀疏矩陣需要為非負數。 |
返回值 | 說明 |
---|---|
Xt | ndarray or sparse matrix, shape (n_samples, n_features) 投影數據。 |
set_params(**params)
設置此估算器的參數。
該方法適用于簡單的估計器以及嵌套對象(例如管道)。后者的參數形式為<component>__<parameter>這樣就可以更新嵌套對象的每個組件。
參數 | 說明 |
---|---|
**params | dict 估算器參數。 |
返回值 | 說明 |
---|---|
self | object 估算器實例。 |
transform(X)
數據的按特征進行轉換。
參數 | 說明 |
---|---|
X | ndarray or sparse matrix, shape (n_samples, n_features) 用于沿要素軸縮放的數據。如果提供了稀疏矩陣,它將被轉換為稀疏csc_matrix。此外,如果ignore_implicit_zeros為False,則稀疏矩陣需要為非負數。 |
返回值 | 說明 |
---|---|
Xt | ndarray or sparse matrix, shape (n_samples, n_features) 投影數據。 |