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 版本新增。
- 属性:
另请参阅
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) 的类数组或稀疏矩阵
转换器结果的
hstack
。sum_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]#
获取此估计器的参数。
返回构造函数中给定的参数以及
FeatureUnion
的transformer_list
中包含的估计器。- 参数:
- deep布尔型,默认值为 True
如果为 True,则返回此估计器及其包含的作为估计器的子对象的参数。
- 返回:
- params字符串到任意类型的映射
参数名称映射到其值。
- set_output(*, transform=None)[source]#
设置调用
"transform"
和"fit_transform"
时的输出容器。set_output 会设置
transformer_list
中所有估计器的输出。- 参数:
- transform{“default”, “pandas”, “polars”},默认值为 None
配置
transform
和fit_transform
的输出。"default"
:转换器的默认输出格式"pandas"
:DataFrame 输出"polars"
:Polars 输出None
:转换配置不变
- 返回:
- self估计器实例
估计器实例。