FeatureUnion#

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

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

此估计器将转换器对象列表并行应用于输入数据,然后连接结果。这有助于将多个特征提取机制组合到一个转换器中。

转换器的参数可以通过其名称和参数名称(以‘__’分隔)进行设置。转换器可以通过将其名称对应的参数设置为另一个转换器来完全替换,设置为‘drop’来移除,或设置为‘passthrough’来禁用(特征将不经转换直接通过)。

请参阅用户指南了解更多信息。

0.13 版本新增。

参数:
transformer_list(字符串,转换器)元组列表

要应用于数据的转换器对象列表。每个元组的前半部分是转换器的名称。转换器可以设置为‘drop’表示忽略,或设置为‘passthrough’表示特征不经更改直接传递。

1.1 版本新增:新增了 "passthrough" 选项。

0.22 版本变更:已弃用将 None 作为转换器,推荐使用‘drop’。

n_jobs整型,默认值为 None

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

v0.20 版本变更:n_jobs 默认值从 1 更改为 None

transformer_weights字典,默认值为 None

每个转换器特征的乘法权重。键是转换器名称,值是权重。如果键不存在于 transformer_list 中,则会引发 ValueError。

verbose布尔型,默认值为 False

如果为 True,则在每个转换器完成拟合时,会打印其所用的时间。

verbose_feature_names_out布尔型,默认值为 True

如果为 True,get_feature_names_out 会在所有特征名称前加上生成该特征的转换器的名称。如果为 False,get_feature_names_out 不会添加任何特征名称前缀,如果特征名称不唯一,则会报错。

1.5 版本新增。

属性:
named_transformersBunch

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

1.2 版本新增。

n_features_in_整型

拟合期间看到的特征数量。

feature_names_in_形状为 (n_features_in_,) 的 ndarray

拟合期间看到的特征名称。

另请参阅

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.04, -0.872],
       [ 1.5       ,  5.72,  0.463]])
>>> # An estimator's parameter can be set using '__' syntax
>>> union.set_params(svd__n_components=1).fit_transform(X)
array([[-1.5       ,  3.04],
       [ 1.5       ,  5.72]])

有关更详细的用法示例,请参阅连接多种特征提取方法

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

使用 X 拟合所有转换器。

参数:
X可迭代对象或类数组对象,取决于转换器

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

y形状为 (n_samples, n_outputs) 的类数组对象,默认值为 None

用于监督学习的目标。

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

  • 如果 enable_metadata_routing=True:通过元数据路由 API 安全地路由到子转换器 fit 方法的参数。更多详细信息请参阅元数据路由用户指南

1.5 版本变更:**fit_params 现在可以通过元数据路由 API 进行路由。

返回:
self对象

FeatureUnion 类实例。

fit_transform(X, y=None, **params)[source]#

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

参数:
X可迭代对象或类数组对象,取决于转换器

要转换的输入数据。

y形状为 (n_samples, n_outputs) 的类数组对象,默认值为 None

用于监督学习的目标。

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

  • 如果 enable_metadata_routing=True:通过元数据路由 API 安全地路由到子转换器 fit 方法的参数。更多详细信息请参阅元数据路由用户指南

1.5 版本变更:**params 现在可以通过元数据路由 API 进行路由。

返回:
X_t形状为 (n_samples, sum_n_components) 的类数组或稀疏矩阵

转换器结果的 hstacksum_n_components 是所有转换器的 n_components(输出维度)之和。

get_feature_names_out(input_features=None)[source]#

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

参数:
input_features字符串类数组或 None,默认值为 None

输入特征。

返回:
feature_names_out字符串对象的 ndarray

转换后的特征名称。

get_metadata_routing()[source]#

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

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

1.5 版本新增。

返回:
routingMetadataRouter

封装路由信息的 MetadataRouter 对象。

get_params(deep=True)[source]#

获取此估计器的参数。

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

参数:
deep布尔型,默认值为 True

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

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

参数名称映射到其值。

set_output(*, transform=None)[source]#

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

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

参数:
transform{“default”, “pandas”, “polars”},默认值为 None

配置 transformfit_transform 的输出。

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

  • "pandas":DataFrame 输出

  • "polars":Polars 输出

  • None:转换配置不变

返回:
self估计器实例

估计器实例。

set_params(**kwargs)[source]#

设置此估计器的参数。

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

参数:
**kwargs字典

此估计器的参数或 transform_list 中包含的估计器的参数。转换器的参数可以通过其名称和参数名称(以‘__’分隔)进行设置。

返回:
self对象

FeatureUnion 类实例。

transform(X, **params)[source]#

通过每个转换器分别转换 X,并连接结果。

参数:
X可迭代对象或类数组对象,取决于转换器

要转换的输入数据。

**params字典,默认值为 None

通过元数据路由 API 路由到子转换器的 transform 方法的参数。更多详细信息请参阅元数据路由用户指南

1.5 版本新增。

返回:
X_t形状为 (n_samples, sum_n_components) 的类数组或稀疏矩阵

转换器结果的 hstacksum_n_components 是所有转换器的 n_components(输出维度)之和。