https://zhuanlan.zhihu.com/p/110873375dom
在本教程中,你将学习如何使用工做流pipelines来整理建模代码。学习
工做流pipelines
工做流pipelines是一种简单的方法,能够保持数据预处理和建模代码的结构化。具体来讲,工做流pipelines打包了预处理和建模步骤,所以你能够轻松的调用。区块链
许多数据科学家在没有使用工做流pipelines的状况下将模型混合在一块儿,但使用工做流pipelines有一些重要的好处。其中包括:
编码
- 清洁代码:在预处理的每一个步骤中计算数据可能会变得混乱。使用工做流pipelines,你无需在每一个步骤手动跟踪你的训练和验证数据。
- 更少的错误:误用步骤或忘记预处理步骤的机会较少。
- 更容易生产:将模型从原型转换为可大规模部署的设备可能会很是困难。咱们不会在这里讨论许多相关问题,但工做流pipelines能够提供帮助。
- 更多模型验证选项:你将在下一个教程中看到一个示例,其中包含交叉验证。
案例
在这个案例里,咱们将查看澳大利亚墨尔本的房价数据。spa
下载并上传3d
点击这里 下载 数据集rest
咱们再把csv文件上传到vitu的数据集空间里 orm


咱们的模型将使用诸如房间数量和土地面积等信息来预测房价。blog
咱们不会关注数据加载步骤。 相反,你能够想象您已经拥有X_train,X_valid,y_train和y_valid中的训练和验证数据。教程


咱们使用下面的head()方法来查看训练数据。 请注意,数据包含分类数据和缺乏值的列。 有了工做流pipelines,很容易处理这两个!




咱们分三步构建完整的工做流pipelines
第1步:定义预处理步骤
与工做流pipelines将预处理和建模步骤捆绑在一块儿的方式相似,咱们使用ColumnTransformer类将不一样的预处理步骤捆绑在一块儿。 代码以下:
- 在数值数据列中补缺失值
- 估算缺失值并将一位有效编码应用于分类数据。


第2步:定义模型
接下来,咱们使用熟悉的RandomForestRegressor类定义随机森林模型。


第3步:建立和评估工做流pipelines
最后,咱们使用Pipeline类来定义捆绑预处理和建模步骤的工做流pipelines。 有几点须要注意:
- 经过pipeline,咱们预处理训练数据并将模型整合到一行代码中。 (相比之下,若是没有pipeline,咱们必须在不一样的步骤中进行补缺失值,一位有效编码和模型训练。若是咱们必须处理数值和分类变量,这就变得特别麻烦!)
- 经过pipeline,咱们将X_valid中的未处理特征提供给predict()命令,而且pipeline在生成预测以前自动预处理特征。 (可是,若是没有pipeline,咱们必须记住在进行预测以前预处理验证数据。)

