特征联合#

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 (str, transformer) 元组列表

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

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

0.22 版本变更:弃用 None 作为转换器,建议使用“drop”。

n_jobsint,默认值=None

并行运行的任务数。 None 表示 1(除非在 joblib.parallel_backend 上下文中)。 -1 表示使用所有处理器。更多详情请参见术语表

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

transformer_weightsdict,默认值=None

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

verbosebool,默认值=False

如果为 True,则在每个转换器拟合完成后打印经过的时间。

verbose_feature_names_outbool,默认值=True

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

1.5 版本新增。

属性:
named_transformersBunch

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

1.2 版本新增。

n_features_in_int

拟合过程中看到的特征数量。

feature_names_in_形状为 (n_features_in_,) 的 ndarray

拟合过程中看到的特征名称。

另请参见

创建联合

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

示例

>>> 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(X, y=None, **fit_params)[source]#

使用 X 拟合所有转换器。

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

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

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

监督学习的目标。

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

  • 如果 enable_metadata_routing=True:安全地将参数路由到子转换器的 fit 方法。更多详情请参见 元数据路由用户指南

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

返回值:
self对象

FeatureUnion 类实例。

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

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

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

要转换的输入数据。

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

监督学习的目标。

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

  • 如果 enable_metadata_routing=True:安全地将参数路由到子转换器的 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_featuresstr 的数组状对象或 None,默认值=None

输入特征。

返回值:
feature_names_outstr 对象的 ndarray

转换后的特征名称。

get_metadata_routing()[source]#

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

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

1.5 版本新增。

返回值:
routingMetadataRouter

一个MetadataRouter,封装了路由信息。

get_params(deep=True)[source]#

获取此估计器的参数。

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

参数:
deepbool, default=True

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

返回值:
paramsstring 到 any 的映射

参数名称与其值的映射。

property n_features_in_#

拟合过程中看到的特征数量。

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

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

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

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

配置transformfit_transform的输出。

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

  • "pandas": DataFrame 输出

  • "polars": Polars 输出

  • None: 变换配置保持不变

返回值:
self估计器实例

估计器实例。

set_params(**kwargs)[source]#

设置此估计器的参数。

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

参数:
**kwargsdict

此估计器的参数或transform_list中包含的估计器的参数。可以使用变换器的名称和参数名称(用“__”分隔)来设置变换器的参数。

返回值:
self对象

FeatureUnion 类实例。

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

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

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

要转换的输入数据。

**paramsdict,默认值=None

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

1.5 版本新增。

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

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