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',則輸出功能名稱將等於輸入功能名稱。如果它是可調用物件,則它必須接受兩個位置引數:此FunctionTransformer
(self
)和輸入功能名稱的類陣列(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 版本中新增。
- 屬性:
另請參閱
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 來擬合轉換器。
如果
validate
為True
,則將會檢查X
。- 參數:
- X如果
validate=True
則為形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣},否則為func
可以處理的任何物件 輸入陣列。
- y已忽略
未使用,此處為了 API 一致性而依慣例提供。
- X如果
- 傳回值:
- self物件
FunctionTransformer 類別實例。
- fit_transform(X, y=None, **fit_params)[原始碼]#
擬合數據,然後轉換它。
使用可選參數
fit_params
將轉換器擬合到X
和y
,並傳回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
是可呼叫的物件,則會使用兩個引數self
和input_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如果
- 傳回值:
- X_out形狀為 (n_samples, n_features) 的類陣列 (array-like)
轉換後的輸入。
- 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估算器執行個體
估算器執行個體。