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_transformers
Bunch
類似字典的物件,具有以下屬性。唯讀屬性,可通過使用者給定的名稱存取任何轉換器參數。鍵是轉換器名稱,值是轉換器參數。
在 1.2 版本中新增。
n_features_in_
int在fit期間看到的特徵數量。
feature_names_in_
ndarray of shape (n_features_in_
,)在fit期間看到的特徵名稱。
- named_transformers
另請參閱
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...]])
有關使用方式的更詳細範例,請參閱串聯多個特徵提取方法。
- 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) 的類陣列或稀疏矩陣
轉換器結果的
hstack
。sum_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)[原始碼]#
取得此估算器的參數。
返回在建構子中給定的參數,以及
FeatureUnion
的transformer_list
中包含的估算器。- 參數:
- deepbool,預設值=True
如果為 True,將返回此估算器的參數以及包含的子物件,這些子物件是估算器。
- 傳回:
- params字串到任何值的映射
參數名稱映射到它們的值。
- set_output(*, transform=None)[原始碼]#
當呼叫
"transform"
和"fit_transform"
時,設定輸出容器。set_output
將設定transformer_list
中所有估算器的輸出。- 參數:
- transform{“default”, “pandas”, “polars”}, 預設值=None
設定
transform
和fit_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) 的類陣列或稀疏矩陣
轉換器結果的
hstack
。sum_n_components
是轉換器中n_components
(輸出維度) 的總和。