区别
简单描述
- pipeline用于对特征处理、数据转换、回归或分类等多个步骤进行串联,功能是实现多个estimator的串行处理。
- featureunion用于对特征的处理,功能是实现多个transformer的并行处理,最终输出它们的结果的并集。每个transformer的输入都是全部的原始特征。
- ColumnTransformer用于对特征的处理,功能是针对不同的列做不同的处理,最终输出各自结果的合集。与featureunion不同的是,它各个transformer的输入是原始特征的一部分。
可以结合下图来帮助理解,可能图与对应的实现方式不太一致,但是可以帮助我们理解这三个函数的作用。图示
pipeline
featureunion
columntransformer
三者结合实现复杂的特征处理
简单说明
- 特征处理:分别使用columntransformer对特征进行处理、PCA进行处理。
- 特征组合:使用featureunion对columntransformer、PCA的结果进行组合。
- 使用pipeline将以上的结果与分类模型进行组合,形成从特征选择、数据处理、回归的一体化流程。
代码实现
1 | from sklearn.compose import ColumnTransformer |