机器学习中的管道:有效地构建和评估模型
本文介绍了机器学习中管道(Pipeline)的概念及其重要性。管道是将数据预处理步骤和模型构建步骤串联在一起的工具,它可以有效地提高模型构建和评估的效率。
使用管道的两个主要原因:
- 正确地进行交叉验证: 管道允许对整个数据处理流程进行交叉验证,而不仅仅是模型本身。这在数据预处理步骤对模型结果有重要影响的情况下尤为重要。
- 网格搜索和随机搜索: 管道允许对模型参数和预处理步骤的参数进行联合搜索,这使得我们可以找到更优的模型和数据预处理组合。
文章重点介绍了以下内容:
- OneHotEncoder: 用于将分类特征转换为数值特征。
- ColumnTransformer: 用于对不同类型的特征应用不同的预处理步骤。
- Scikit-learn 0.20及以上版本: 文章使用Scikit-learn 0.20版本,因为该版本引入了ColumnTransformer,并且OneHotEncoder的实现方式与之前的版本略有不同。
文章使用泰坦尼克号数据集作为示例,演示了如何使用管道、OneHotEncoder和ColumnTransformer来构建和评估模型。
总结:
管道是机器学习中不可或缺的工具,它可以提高模型构建和评估的效率,并找到更优的模型和数据预处理组合。
为了将分类特征纳入机器学习模型,您需要使用“虚拟”或“独热”编码将其数值化。 但如何使用 scikit-learn 正确地做到这一点呢? 在本视频中,您将学习如何使用 OneHotEncoder 和 ColumnTransformer 编码分类特征,并在一步内准备您的特征矩阵。 您还将学习如何在管道中包含此步骤,以便您可以同时交叉验证模型和预处理步骤。 最后,您将学习为什么要在预处理数据集时使用 scikit-learn(而不是 pandas)。
议程:0:00 简介0:22 为什么应该使用管道?2:30 本节课的预览3:35 加载和准备数据集6:11 交叉验证一个简单模型10:00 使用 OneHotEncoder 编码分类特征15:01 使用 ColumnTransformer 选择要预处理的列19:00 创建一个两步管道19:54 交叉验证管道21:44 对新数据进行预测23:43 本节课的回顾24:50 为什么在预处理时应该使用 scikit-learn(而不是 pandas)?