gpt4 book ai didi

scikit-learn - featureUnion 与 columnTransformer?

转载 作者:行者123 更新时间:2023-12-01 07:50:21 25 4
gpt4 key购买 nike

sklearn 中的 FeatureUnion() 和 ColumnTransformer() 有什么区别?

如果我想构建一个包含混合数据类型(分类、数字、非结构化文本)的特征的监督模型,我应该使用哪个我需要组合单独的管道?

来源:https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.FeatureUnion.html

来源:https://scikit-learn.org/stable/modules/generated/sklearn.compose.ColumnTransformer.html

最佳答案

根据 sklearn 文档:

FeatureUnion: Concatenates results of multiple transformer objects. This estimator applies a list of transformer objects in parallel to the input data, then concatenates the results. This is useful to combine several feature extraction mechanisms into a single transformer.

ColumnTransformer: Applies transformers to columns of an array or pandas DataFrame. This estimator allows different columns or column subsets of the input to be transformed separately and the features generated by each transformer will be concatenated to form a single feature space. This is useful for heterogeneous or columnar data, to combine several feature extraction mechanisms or transformations into a single transformer.


因此,FeatureUnion 将不同的转换器 应用于整个输入数据 ,然后通过连接它们来组合结果。
另一方面,ColumnTransformer 将不同的转换器应用于整个输入数据 的 不同子集,并再次连接结果。
对于您提出的情况,ColumnTransformer 应该是第一步。然后,一旦所有列都转换为数字,使用 FeatureUnion,您可以进一步转换它们,例如,结合 PCA 和 SelectKBest
最后,您当然可以将 FeatureUnion 用作 ColumnTransformer,但是您必须在每个分支中包含一个列/类型选择器,而不是仅将感兴趣的列馈入管道中的下一个转换器,如下所述:https://ramhiser.com/post/2018-04-16-building-scikit-learn-pipeline-with-pandas-dataframe/
然而,ColumnTransformer 正是这样做的,而且方式更简单。

关于scikit-learn - featureUnion 与 columnTransformer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55604249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com