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表示使用所有处理器。有关更多详细信息,请参阅 Glossary。版本 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 版本新增。
- 属性:
另请参阅
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)[源代码]#
使用 X 拟合所有转换器。
- 参数:
- Xiterable or array-like, depending on transformers
输入数据,用于拟合转换器。
- yarray-like of shape (n_samples, n_outputs), default=None
监督学习的目标。
- **fit_paramsdict, default=None
如果
enable_metadata_routing=False(默认值):直接传递给子转换器fit方法的参数。如果
enable_metadata_routing=True:通过元数据路由安全地传递给子转换器fit方法的参数。有关更多详细信息,请参阅 元数据路由用户指南。
1.5版本更改:
**fit_params可以通过元数据路由 API 进行路由。
- 返回:
- selfobject
FeatureUnion 类实例。
- fit_transform(X, y=None, **params)[源代码]#
拟合所有转换器,转换数据并连接结果。
- 参数:
- Xiterable or array-like, depending on transformers
要转换的输入数据。
- yarray-like of shape (n_samples, n_outputs), default=None
监督学习的目标。
- **paramsdict, default=None
如果
enable_metadata_routing=False(默认值):直接传递给子转换器fit方法的参数。如果
enable_metadata_routing=True:通过元数据路由安全地传递给子转换器fit方法的参数。有关更多详细信息,请参阅 元数据路由用户指南。
1.5版本更改:
**params现在可以通过元数据路由 API 进行路由。
- 返回:
- X_tarray-like or sparse matrix of shape (n_samples, sum_n_components)
转换器结果的
hstack。sum_n_components是转换器n_components(输出维度)的总和。
- get_feature_names_out(input_features=None)[源代码]#
获取转换的输出特征名称。
- 参数:
- input_featuresarray-like of str or None, default=None
输入特征。
- 返回:
- feature_names_outstr 对象的 ndarray
转换后的特征名称。
- get_metadata_routing()[源代码]#
获取此对象的元数据路由。
请查阅 用户指南,了解路由机制如何工作。
1.5 版本新增。
- 返回:
- routingMetadataRouter
封装路由信息的
MetadataRouter。
- get_params(deep=True)[源代码]#
获取此估计器的参数。
返回构造函数中提供的参数以及
FeatureUnion的transformer_list中包含的估计器。- 参数:
- deepbool, default=True
如果为 True,将返回此估计器以及包含的子对象(如果它们是估计器)的参数。
- 返回:
- paramsmapping of string to any
参数名称映射到其值。
- set_output(*, transform=None)[源代码]#
设置调用
"transform"和"fit_transform"时的输出容器。set_output将设置transformer_list中所有估计器的输出。- 参数:
- transform{“default”, “pandas”, “polars”}, default=None
配置
transform和fit_transform的输出。"default": 转换器的默认输出格式"pandas": DataFrame 输出"polars": Polars 输出None: 转换配置保持不变
- 返回:
- selfestimator instance
估计器实例。
- set_params(**kwargs)[源代码]#
设置此估计器的参数。
有效的参数键可以使用
get_params()列出。请注意,您可以直接设置transformer_list中包含的估计器的参数。- 参数:
- **kwargsdict
此估计器的参数或
transform_list中包含的估计器的参数。可以通过转换器的名称和参数名称(用‘__’分隔)来设置转换器的参数。
- 返回:
- selfobject
FeatureUnion 类实例。
- transform(X, **params)[源代码]#
通过每个转换器分别转换 X,然后连接结果。
- 参数:
- Xiterable or array-like, depending on transformers
要转换的输入数据。
- **paramsdict, default=None
通过元数据路由 API 安全地传递给子转换器
transform方法的参数。有关更多详细信息,请参阅 元数据路由用户指南。1.5 版本新增。
- 返回:
- X_tarray-like or sparse matrix of shape (n_samples, sum_n_components)
转换器结果的
hstack。sum_n_components是转换器n_components(输出维度)的总和。