FunctionTransformer#

class sklearn.preprocessing.FunctionTransformer(func=None, inverse_func=None, *, validate=False, accept_sparse=False, check_inverse=True, feature_names_out=None, kw_args=None, inv_kw_args=None)[原始碼]#

從任意可調用物件建構轉換器。

FunctionTransformer 將其 X(以及可選的 y)參數轉發到使用者定義的函式或函式物件,並傳回此函式的結果。這對於無狀態轉換很有用,例如取頻率的對數、執行自訂縮放等。

注意:如果使用 lambda 作為函式,則產生的轉換器將無法進行 pickle。

在 0.17 版本中新增。

詳情請參閱使用者指南

參數:
func可調用物件,預設值為 None

用於轉換的可調用物件。這將傳遞與 transform 相同的參數,並轉發 args 和 kwargs。如果 func 為 None,則 func 將為恆等函式。

inverse_func可調用物件,預設值為 None

用於反向轉換的可調用物件。這將傳遞與反向轉換相同的參數,並轉發 args 和 kwargs。如果 inverse_func 為 None,則 inverse_func 將為恆等函式。

validate布林值,預設值為 False

指示在呼叫 func 之前應檢查輸入 X 陣列。可能性如下

  • 如果為 False,則不會進行輸入驗證。

  • 如果為 True,則 X 將轉換為 2 維 NumPy 陣列或稀疏矩陣。如果無法轉換,則會引發例外。

在 0.22 版本中變更:validate 的預設值從 True 變更為 False。

accept_sparse布林值,預設值為 False

指示 func 接受稀疏矩陣作為輸入。如果 validate 為 False,則這不會產生任何影響。否則,如果 accept_sparse 為 false,則稀疏矩陣輸入會導致引發例外。

check_inverse布林值,預設值為 True

是否檢查 func 後接 inverse_func 是否導致原始輸入。它可用於健全性檢查,當條件不符合時會發出警告。

在 0.20 版本中新增。

feature_names_out可調用物件、'one-to-one' 或 None,預設值為 None

決定 get_feature_names_out 方法將傳回的功能名稱清單。如果它是 'one-to-one',則輸出功能名稱將等於輸入功能名稱。如果它是可調用物件,則它必須接受兩個位置引數:此 FunctionTransformerself)和輸入功能名稱的類陣列(input_features)。它必須傳回輸出功能名稱的類陣列。只有當 feature_names_out 不是 None 時,才會定義 get_feature_names_out 方法。

如需更多詳細資訊,請參閱 get_feature_names_out

在 1.1 版本中新增。

kw_args字典,預設值為 None

要傳遞給 func 的其他關鍵字引數字典。

在 0.18 版本中新增。

inv_kw_args字典,預設值為 None

要傳遞給 inverse_func 的其他關鍵字引數字典。

在 0.18 版本中新增。

屬性:
n_features_in_整數

fit期間看到的功能數量。

在 0.24 版本中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit期間看到的功能名稱。僅當 X 具有全部為字串的功能名稱時才定義。

在 1.0 版本中新增。

另請參閱

MaxAbsScaler

將每個功能按其最大絕對值縮放。

StandardScaler

透過移除平均值並縮放至單位變異數來標準化功能。

LabelBinarizer

以一對多的方式二元化標籤。

MultiLabelBinarizer

在可迭代的迭代器和多標籤格式之間轉換。

註解

如果 func 傳回具有 columns 屬性的輸出,則會強制 columns 與 get_feature_names_out 的輸出一致。

範例

>>> import numpy as np
>>> from sklearn.preprocessing import FunctionTransformer
>>> transformer = FunctionTransformer(np.log1p)
>>> X = np.array([[0, 1], [2, 3]])
>>> transformer.transform(X)
array([[0.       , 0.6931...],
       [1.0986..., 1.3862...]])
fit(X, y=None)[原始碼]#

透過檢查 X 來擬合轉換器。

如果 validateTrue,則將會檢查 X

參數:
X如果 validate=True 則為形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣},否則為 func 可以處理的任何物件

輸入陣列。

y已忽略

未使用,此處為了 API 一致性而依慣例提供。

傳回值:
self物件

FunctionTransformer 類別實例。

fit_transform(X, y=None, **fit_params)[原始碼]#

擬合數據,然後轉換它。

使用可選參數 fit_params 將轉換器擬合到 Xy,並傳回 X 的轉換版本。

參數:
X形狀為 (n_samples, n_features) 的類陣列 (array-like)

輸入樣本。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列 (array-like),預設為 None

目標值(對於無監督轉換為 None)。

**fit_paramsdict

額外的擬合參數。

傳回值:
X_new形狀為 (n_samples, n_features_new) 的 ndarray 陣列

轉換後的陣列。

get_feature_names_out(input_features=None)[原始碼]#

取得轉換的輸出特徵名稱。

只有在 feature_names_out 不為 None 時,才會定義此方法。

參數:
input_features字串類陣列 (array-like of str) 或 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

轉換後的特徵名稱。

  • 如果 feature_names_out 為 ‘one-to-one’,則會傳回輸入的特徵名稱(請參閱上方的 input_features)。 這需要定義 feature_names_in_ 和/或 n_features_in_,如果 validate=True,則會自動完成。 或者,您可以在 func 中設定它們。

  • 如果 feature_names_out 是可呼叫的物件,則會使用兩個引數 selfinput_features 呼叫它,並且此方法的傳回值會被傳回。

get_metadata_routing()[原始碼]#

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

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

傳回值:
routingMetadataRequest

封裝路由資訊的 MetadataRequest

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

取得此估算器的參數。

參數:
deepbool,預設為 True

如果為 True,將會傳回此估算器和包含的子物件(它們是估算器)的參數。

傳回值:
paramsdict

對應至其值的參數名稱。

inverse_transform(X)[原始碼]#

使用反向函數轉換 X。

參數:
X如果 validate=True,則為形狀為 (n_samples, n_features) 的 {類陣列 (array-like), 稀疏矩陣};否則為 inverse_func 可以處理的任何物件

輸入陣列。

傳回值:
X_out形狀為 (n_samples, n_features) 的類陣列 (array-like)

轉換後的輸入。

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。

參數:
X如果 validate=True 則為形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣},否則為 func 可以處理的任何物件

輸入陣列。

傳回值:
X_out形狀為 (n_samples, n_features) 的類陣列 (array-like)

轉換後的輸入。