FeatureUnion#

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

将多个转换器对象的结果连接起来。

该估计器将输入数据并行应用于一系列转换器对象,然后将结果连接起来。这对于将多个特征提取机制组合成一个转换器非常有用。

可以使用转换器的名称和参数名称用双下划线分隔来设置转换器的参数。可以通过将其名称的参数设置为另一个转换器来完全替换转换器,通过设置为’drop’来移除,或通过设置为’passthrough’来禁用(特征未经转换传递)。

更多信息请参阅 用户指南

Added in version 0.13.

Parameters:
transformer_list包含(str, transformer)元组的列表

要应用于数据的转换器对象列表。每个元组的前半部分是转换器的名称。转换器可以是’drop’以忽略它,或者是’passthrough’以不变地传递特征。

Added in version 1.1: 添加了 "passthrough" 选项。

Changed in version 0.22: 弃用了 None 作为转换器,改为使用’drop’。

n_jobsint, default=None

并行运行的作业数。 None 意味着1,除非在 joblib.parallel_backend 上下文中。 -1 意味着使用所有处理器。有关更多详细信息,请参阅 Glossary

Changed in version 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 将不会添加任何特征名称前缀,并且在特征名称不唯一时会出错。

Added in version 1.5.

Attributes:
named_transformersBunch

类似字典的对象,具有以下属性。 只读属性,用于按用户给定的名称访问任何转换器参数。键是转换器名称,值是转换器参数。

Added in version 1.2.

n_features_in_int

特征在 fit 过程中看到的数量。

feature_names_in_ndarray of shape ( n_features_in_ ,)

名称在 fit 期间看到的特征。

See also

make_union

用于简化特征联合构造的便捷函数。

Examples

>>> 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...]])
>>> # 可以使用 '__' 语法设置估计器的参数
>>> 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。

Parameters:
X可迭代或类似数组,取决于转换器

输入数据,用于拟合转换器。

y形状为 (n_samples, n_outputs) 的数组,默认=None

监督学习的目标。

**fit_params字典,默认=None
  • 如果 enable_metadata_routing=False (默认): 参数直接传递给子转换器的 fit 方法。

  • 如果 enable_metadata_routing=True : 参数安全地路由到子转换器的 fit 方法。有关更多详细信息,请参阅 Metadata Routing User Guide

Changed in version 1.5: **fit_params 可以通过元数据路由 API 进行路由。

Returns:
self对象

FeatureUnion 类实例。

fit_transform(X, y=None, **params)#

拟合所有转换器,转换数据并连接结果。

Parameters:
X可迭代对象或数组形式,取决于转换器

要转换的输入数据。

y形状为 (n_samples, n_outputs) 的数组形式,默认=None

监督学习的目标。

**params字典,默认=None
  • 如果 enable_metadata_routing=False (默认): 直接传递给子转换器 fit 方法的参数。

  • 如果 enable_metadata_routing=True : 安全路由到子转换器 fit 方法的参数。有关更多详细信息,请参阅 Metadata Routing User Guide

Changed in version 1.5: **params 现在可以通过元数据路由 API 进行路由。

Returns:
X_t数组形式或稀疏矩阵,形状为 (n_samples, sum_n_components)

转换器结果的 hstacksum_n_components 是转换器上 n_components (输出维度)的总和。

get_feature_names_out(input_features=None)#

获取变换后的输出特征名称。

Parameters:
input_features字符串数组或None,默认=None

输入特征。

Returns:
feature_names_out字符串对象的ndarray

变换后的特征名称。

get_metadata_routing()#

获取此对象的元数据路由。

请查看 用户指南 以了解路由机制的工作原理。

Added in version 1.5.

Returns:
routingMetadataRouter

MetadataRouter 封装的 路由信息。

get_params(deep=True)#

获取此估计器的参数。

返回在构造函数中给出的参数以及包含在 FeatureUniontransformer_list 中的估计器。

Parameters:
deepbool, default=True

如果为True,将返回此估计器和包含的作为估计器的子对象的参数。

Returns:
params字符串到任意类型的映射

参数名称映射到它们的值。

property n_features_in_#

特征在 fit 过程中看到的数量。

set_output(*, transform=None)#

设置在调用 "transform""fit_transform" 时的输出容器。

set_output 将设置 transformer_list 中所有估计器的输出。

Parameters:
transform{“default”, “pandas”, “polars”}, default=None

配置 transformfit_transform 的输出。

  • "default" : 转换器的默认输出格式

  • "pandas" : DataFrame 输出

  • "polars" : Polars 输出

  • None : 转换配置不变

Returns:
self估计器实例

估计器实例。

set_params(**kwargs)#

设置此估计器的参数。

可以使用 get_params() 列出有效的参数键。请注意,您可以直接设置 transformer_list 中包含的估计器的参数。

Parameters:
**kwargsdict

此估计器的参数或 transform_list 中包含的估计器的参数。可以使用其名称和参数名称用 ‘__’ 分隔来设置转换器的参数。

Returns:
selfobject

FeatureUnion 类实例。

transform(X, **params)#

Transform X separately by each transformer, concatenate results.

Parameters:
Xiterable or array-like, depending on transformers

Input data to be transformed.

**paramsdict, default=None

Parameters routed to the transform method of the sub-transformers via the metadata routing API. See Metadata Routing User Guide for more details.

Added in version 1.5.

Returns:
X_tarray-like or sparse matrix of shape (n_samples, sum_n_components)

The hstack of results of transformers. sum_n_components is the sum of n_components (output dimension) over transformers.