机器学习项目中最冗长的步骤通常是数据清洗和预处理,Scikit-learn
库中的Pipeline
和 and ColumnTransformer
通过一次封装替代逐步运行transformation步骤,从而减少冗余代码量。
1. Pipeline vs. ColumnTransformer
训练模型前,需要将数据集分为训练集和测试集。每个子集都需要经过数据清洗和预处理步骤,因而会造成代码冗余。
Pipeline
是一个将所有数据操作步骤串成流程的工具,能够简洁地搭建模型训练工作流(下图)。
ColumnTransformer
将分别转换不同组别的列,然后在合并到一起。
2. 用例
示例代码如下:
https://gitee.com/rysben/public/blob/master/datasets/HR_Analytics/pipeline.ipynb
参考
How to Improve Machine Learning Code Quality with Scikit-learn Pipeline and ColumnTransformer