QuantileTransformer#

class sklearn.preprocessing.QuantileTransformer(*, n_quantiles=1000, output_distribution='uniform', ignore_implicit_zeros=False, subsample=10000, random_state=None, copy=True)[來源]#

使用分位數資訊轉換特徵。

此方法將特徵轉換為遵循均勻分佈或常態分佈。因此,對於給定的特徵,此轉換會傾向於分散最常出現的值。它也減少了(邊緣)離群值的影響:因此這是一種穩健的預處理方案。

轉換會獨立應用於每個特徵。首先,使用特徵的累積分配函數估計值,將原始值映射到均勻分佈。然後使用相關的分位函數將獲得的值映射到所需的輸出分佈。落入擬合範圍以下或以上的新/未見數據的特徵值將映射到輸出分佈的邊界。請注意,此轉換是非線性的。它可能會扭曲在相同尺度上測量的變數之間的線性相關性,但會使在不同尺度上測量的變數更直接地具有可比性。

有關範例視覺化,請參閱比較 QuantileTransformer 與其他縮放器

使用者指南中閱讀更多資訊。

在版本 0.19 中新增。

參數:
n_quantilesint,預設值=1000 或 n_samples

要計算的分位數數量。它對應於用於離散化累積分配函數的地標數量。如果 n_quantiles 大於樣本數量,則 n_quantiles 會設定為樣本數量,因為更大的分位數數量不會更好地近似累積分配函數估計值。

output_distribution{‘uniform’、‘normal’},預設值=’uniform’

轉換後數據的邊際分佈。選擇為「uniform」(預設值)或「normal」。

ignore_implicit_zerosbool,預設值=False

僅適用於稀疏矩陣。如果為 True,則會捨棄矩陣的稀疏條目以計算分位數統計資訊。如果為 False,則這些條目會被視為零。

subsampleint 或 None,預設值=10_000

用於估計分位數以提高計算效率的最大樣本數量。請注意,對於數值相同的稀疏和密集矩陣,子取樣程序可能會有所不同。設定 subsample=None 來停用子取樣。

在 1.5 版中新增:新增了停用子取樣的選項 None

random_stateint、RandomState 執行個體或 None,預設值=None

決定子取樣和平滑雜訊的隨機數產生。請參閱 subsample 以取得更多詳細資訊。傳遞 int 以取得跨多個函數呼叫的可重複結果。請參閱詞彙表

copybool,預設值=True

如果設定為 False,則會執行就地轉換並避免複製(如果輸入已是 numpy 陣列)。

屬性:
n_quantiles_int

用於離散化累積分配函數的實際分位數數量。

quantiles_形狀為 (n_quantiles, n_features) 的 ndarray

對應於參考分位數的值。

references_形狀為 (n_quantiles, ) 的 ndarray

參考的分位數。

n_features_in_int

fit 期間看到的特徵數量。

在 0.24 版中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 期間看到的特徵名稱。僅當 X 具有全為字串的特徵名稱時才會定義。

在 1.0 版中新增。

另請參閱

quantile_transform

沒有估計器 API 的對等函數。

PowerTransformer

使用幂轉換執行到常態分佈的映射。

StandardScaler

執行標準化,速度更快,但對離群值的穩健性較差。

RobustScaler

執行穩健的標準化,消除離群值的影響,但不將離群值和內群值放在相同的尺度上。

注意事項

NaN 被視為遺失值:在擬合中被忽略,並在轉換中保留。

範例

>>> 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=None)[來源]#

計算用於轉換的分位數。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣}

用於沿特徵軸縮放的資料。如果提供稀疏矩陣,則會將其轉換為稀疏的 csc_matrix。此外,如果 ignore_implicit_zeros 為 False,則稀疏矩陣需要是非負數。

yNone

已忽略。

傳回值:
self物件

已擬合的轉換器。

fit_transform(X, y=None, **fit_params)[來源]#

將資料擬合,然後轉換資料。

使用可選參數 fit_params 將轉換器擬合至 Xy,並傳回 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_featuresstr 或 None 的類陣列,預設值=None

輸入特徵。

  • 如果 input_featuresNone,則會使用 feature_names_in_ 作為輸入特徵名稱。如果 feature_names_in_ 未定義,則會產生以下輸入特徵名稱:["x0", "x1", ..., "x(n_features_in_ - 1)"]

  • 如果 input_features 為類陣列 (array-like),則如果定義了 feature_names_in_input_features 必須與 feature_names_in_ 相符。

傳回值:
feature_names_outstr 物件的 ndarray

與輸入特徵相同。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由。

請查看 使用者指南,了解路由機制如何運作。

傳回值:
routingMetadataRequest

一個封裝路由資訊的 MetadataRequest

get_params(deep=True)[原始碼]#

取得此估算器的參數。

參數:
deepbool,預設值為 True

如果為 True,將會返回此估算器以及包含的子物件 (即估算器) 的參數。

傳回值:
paramsdict

參數名稱對應到它們的值。

inverse_transform(X)[原始碼]#

反向投影回原始空間。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣}

用於沿特徵軸縮放的資料。如果提供稀疏矩陣,則會將其轉換為稀疏的 csc_matrix。此外,如果 ignore_implicit_zeros 為 False,則稀疏矩陣需要是非負數。

傳回值:
Xt{ndarray,稀疏矩陣},形狀為 (n_samples, n_features)

投影後的資料。

set_output(*, transform=None)[原始碼]#

設定輸出容器。

請參閱 介紹 set_output API,以取得如何使用此 API 的範例。

參數:
transform{“default”, “pandas”, “polars”},預設值為 None

設定 transformfit_transform 的輸出。

  • "default":轉換器的預設輸出格式

  • "pandas":DataFrame 輸出

  • "polars":Polars 輸出

  • None:轉換設定保持不變

在 1.4 版本中新增:新增了 "polars" 選項。

傳回值:
self估算器實例

估算器實例。

set_params(**params)[原始碼]#

設定此估算器的參數。

此方法適用於簡單的估算器以及巢狀物件 (例如 Pipeline)。後者的參數形式為 <component>__<parameter>,因此可以更新巢狀物件的每個元件。

參數:
**paramsdict

估算器參數。

傳回值:
self估算器實例

估算器實例。

transform(X)[原始碼]#

特徵式資料轉換。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣}

用於沿特徵軸縮放的資料。如果提供稀疏矩陣,則會將其轉換為稀疏的 csc_matrix。此外,如果 ignore_implicit_zeros 為 False,則稀疏矩陣需要是非負數。

傳回值:
Xt形狀為 (n_samples, n_features) 的 {ndarray, 稀疏矩陣}

投影後的資料。