FeatureUnion#

class sklearn.pipeline.FeatureUnion(transformer_list, *, n_jobs=None, transformer_weights=None, verbose=False, verbose_feature_names_out=True)[來源]#

將多個轉換器物件的結果串聯起來。

此估計器將一組轉換器物件並行應用於輸入資料,然後串聯結果。這對於將多個特徵提取機制組合成單個轉換器非常有用。

轉換器的參數可以使用其名稱和參數名稱(以「__」分隔)進行設定。轉換器可以通過將參數設定為其名稱的另一個轉換器來完全替換,通過設定為「drop」來移除,或者通過設定為「passthrough」(特徵不經轉換直接傳遞)來禁用。

請參閱使用者指南以了解更多資訊。

在 0.13 版本中新增。

參數:
transformer_listlist of (str, transformer) tuples

要應用於資料的轉換器物件列表。每個元組的第一部分是轉換器的名稱。轉換器可以是「drop」以忽略它,也可以是「passthrough」以使特徵不經更改地傳遞。

在 1.1 版本中新增: 新增了 "passthrough" 選項。

在 0.22 版本中變更: 不建議使用 None 作為轉換器,建議改用 'drop'。

n_jobsint, default=None

要並行執行的作業數。None 表示 1,除非在 joblib.parallel_backend 環境中。-1 表示使用所有處理器。請參閱詞彙表以了解更多詳細資訊。

在 v0.20 版本中變更: n_jobs 的預設值從 1 變更為 None

transformer_weightsdict, default=None

每個轉換器的特徵的乘法權重。鍵是轉換器名稱,值是權重。如果鍵不在 transformer_list 中,則會引發 ValueError。

verbosebool, default=False

如果為 True,則在完成每個轉換器的擬合時,將印出所經過的時間。

verbose_feature_names_outbool, default=True

如果為 True,get_feature_names_out 將以產生該特徵的轉換器的名稱為所有特徵名稱加上前綴。如果為 False,get_feature_names_out 將不為任何特徵名稱加上前綴,如果特徵名稱不唯一,則會出錯。

在 1.5 版本中新增。

屬性:
named_transformersBunch

類似字典的物件,具有以下屬性。唯讀屬性,可通過使用者給定的名稱存取任何轉換器參數。鍵是轉換器名稱,值是轉換器參數。

在 1.2 版本中新增。

n_features_in_int

fit期間看到的特徵數量。

feature_names_in_ndarray of shape (n_features_in_,)

fit期間看到的特徵名稱。

另請參閱

make_union

用於簡化特徵聯合建構的便捷函數。

範例

>>> from sklearn.pipeline import FeatureUnion
>>> from sklearn.decomposition import PCA, TruncatedSVD
>>> union = FeatureUnion([("pca", PCA(n_components=1)),
...                       ("svd", TruncatedSVD(n_components=2))])
>>> X = [[0., 1., 3], [2., 2., 5]]
>>> union.fit_transform(X)
array([[-1.5       ,  3.0..., -0.8...],
       [ 1.5       ,  5.7...,  0.4...]])
>>> # An estimator's parameter can be set using '__' syntax
>>> union.set_params(svd__n_components=1).fit_transform(X)
array([[-1.5       ,  3.0...],
       [ 1.5       ,  5.7...]])

有關使用方式的更詳細範例,請參閱串聯多個特徵提取方法

property feature_names_in_#

fit期間看到的特徵名稱。

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

使用 X 擬合所有轉換器。

參數:
X可迭代或類陣列,取決於轉換器

輸入資料,用於擬合轉換器。

y類陣列,形狀為 (n_samples, n_outputs),預設值為 None

用於監督式學習的目標。

**fit_paramsdict, default=None
  • 如果 enable_metadata_routing=False (預設):參數直接傳遞到子轉換器的 fit 方法。

  • 如果 enable_metadata_routing=True:參數安全地路由到子轉換器的 fit 方法。有關更多詳細資訊,請參閱中繼資料路由使用者指南

在 1.5 版本中變更: **fit_params 可以通過中繼資料路由 API 進行路由。

傳回:
self物件

FeatureUnion 類別實例。

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

擬合所有轉換器,轉換資料並串聯結果。

參數:
X可迭代或類陣列,取決於轉換器

要轉換的輸入資料。

y類陣列,形狀為 (n_samples, n_outputs),預設值為 None

用於監督式學習的目標。

**paramsdict,預設值=None
  • 如果 enable_metadata_routing=False (預設):參數直接傳遞到子轉換器的 fit 方法。

  • 如果 enable_metadata_routing=True:參數安全地路由到子轉換器的 fit 方法。有關更多詳細資訊,請參閱中繼資料路由使用者指南

在 1.5 版本中變更: **params 現在可以透過 metadata routing API 進行路由。

傳回:
X_t形狀為 (n_samples, sum_n_components) 的類陣列或稀疏矩陣

轉換器結果的 hstacksum_n_components 是轉換器中 n_components (輸出維度) 的總和。

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

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

參數:
input_features字串的類陣列或 None,預設值=None

輸入特徵。

傳回:
feature_names_out字串物件的 ndarray

轉換後的特徵名稱。

get_metadata_routing()[原始碼]#

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

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

在 1.5 版本中新增。

傳回:
routingMetadataRouter

一個 MetadataRouter,封裝路由資訊。

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

取得此估算器的參數。

返回在建構子中給定的參數,以及 FeatureUniontransformer_list 中包含的估算器。

參數:
deepbool,預設值=True

如果為 True,將返回此估算器的參數以及包含的子物件,這些子物件是估算器。

傳回:
params字串到任何值的映射

參數名稱映射到它們的值。

property n_features_in_#

fit期間看到的特徵數量。

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

當呼叫 "transform""fit_transform" 時,設定輸出容器。

set_output 將設定 transformer_list 中所有估算器的輸出。

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

設定 transformfit_transform 的輸出。

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

  • "pandas":DataFrame 輸出

  • "polars":Polars 輸出

  • None:轉換配置保持不變

傳回:
self估算器實例

估算器實例。

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

設定此估算器的參數。

可以使用 get_params() 列出有效的參數鍵。請注意,您可以直接設定 transformer_list 中包含的估算器的參數。

參數:
**kwargsdict

此估算器的參數或 transform_list 中包含的估算器的參數。可以使用名稱和參數名稱以 ' __ ' 分隔來設定轉換器的參數。

傳回:
self物件

FeatureUnion 類別實例。

transform(X, **params)[原始碼]#

由每個轉換器分別轉換 X,並串聯結果。

參數:
X可迭代或類陣列,取決於轉換器

要轉換的輸入資料。

**paramsdict,預設值=None

通過 metadata routing API 將參數路由到子轉換器的 transform 方法。 有關更多詳細資訊,請參閱 中繼資料路由使用者指南

在 1.5 版本中新增。

傳回:
X_t形狀為 (n_samples, sum_n_components) 的類陣列或稀疏矩陣

轉換器結果的 hstacksum_n_components 是轉換器中 n_components (輸出維度) 的總和。