首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
4.1 分类变量
4.1.1 One-Hot 编码(虚拟变量)
4.1.2 数字可以编码分类变量
4.2 分箱、离散化、线性模型与树
4.3 交互特征与多项式特征
4.4 单变量非线性变换
4.5 自动化特征选择
4.5.1 单变量统计
4.5.2 基于模型的特征选择
4.5.3 迭代特征选择
4.6 利用专家知识
5.1 交叉验证
5.1.1 scikit-learn 中的交叉验证
5.1.2 交叉验证的优点
5.1.3 分层k 折交叉验证和其他策略
5.2 网格搜索
5.2.1 简单网格搜索
5.2.2 参数过拟合的风险与验证集
5.2.3 带交叉验证的网格搜索
5.3 评估指标与评分
5.3.1 牢记目标
5.3.2 二分类指标
5.3.3 多分类指标
5.3.4 回归指标
5.3.5 在模型选择中使用评估指标
6.1 用预处理进行参数选择
6.2 构建管道
6.3 在网格搜索中使用管道
6.4 通用的管道接口
6.4.1 用make_pipeline 方便地创建管道
6.4.2 访问步骤属性
6.4.3 访问网格搜索管道中的属性
6.5 网格搜索预处理步骤与模型参数
6.6 网格搜索选择使用哪个模型
7.1 用字符串表示的数据类型
7.2 示例应用:电影评论的情感分析
7.3 将文本数据表示为词袋
7.3.1 将词袋应用于玩具数据集
7.3.2 将词袋应用于电影评论
7.4 停用词
7.5 用tf-idf 缩放数据
7.6 研究模型系数
7.7 多个单词的词袋(n元分词)
7.8 分词、词干提取与词形还原
7.9 主题建模与文档聚类
8.1 处理机器学习问题
8.2 从原型到生产
8.3 测试生产系统
8.4 构建你自己的估计器
8.5 下一步怎么走
8.5.1 理论
8.5.2 其他机器学习框架和包
8.5.3 排序、推荐系统与其他学习类型
8.5.4 概率建模、推断与概率编程
8.5.5 神经网络
8.5.6 推广到更大的数据集
当前位置:
首页>>
技术小册>>
Python机器学习基础教程(下)
小册名称:Python机器学习基础教程(下)
### 第4章 数据预处理与建模基础 #### 4.2 分箱、离散化、线性模型与树 在机器学习的实践中,数据预处理是构建高效、准确模型的关键步骤之一。本章将深入探讨数据预处理中的两大重要技术——分箱(Binning)与离散化(Discretization),并随后介绍线性模型与树模型的基本概念及其在机器学习中的应用。 ##### 4.2.1 分箱(Binning) **定义与目的** 分箱,也称为桶化或区间划分,是一种将连续型数据划分为若干个离散的区间(或称为“桶”)的技术。其目的通常包括改善模型的可解释性、减少异常值对模型的影响、提高模型对数据的适应性以及在某些情况下提升模型的性能。 **分箱方法** 1. **等宽分箱**:将数据的取值范围等分为N个区间,每个区间的宽度相同。这种方法简单直观,但可能不适用于数据分布不均匀的情况。 2. **等频分箱**(或称为等深分箱):确保每个区间包含相同数量的数据点。这种方法能更好地反映数据的分布情况,但可能导致某些区间的宽度差异很大。 3. **基于聚类的分箱**:利用聚类算法(如K-means)将数据点分成若干组,每组作为一个区间。这种方法能够自动适应数据的分布特征,但需要选择合适的聚类算法和参数。 4. **基于决策树的分箱**:利用决策树算法对数据进行分割,树的每个叶子节点代表一个区间。这种方法能够自动处理非线性关系和交互作用,但需要防止过拟合。 **应用场景** - 信用评分模型中,年龄、收入等连续变量常通过分箱处理以提高模型的可解释性和准确性。 - 在处理具有大量异常值或极端值的数据集时,分箱有助于减少这些值对模型训练的影响。 ##### 4.2.2 离散化(Discretization) **定义与区别** 离散化是一个更广泛的概念,它不仅包括将连续数据转换为离散区间的过程(即分箱),还包括将已经是离散但取值范围过大或过于复杂的变量进一步简化的过程。例如,将城市的名称根据地理位置或经济水平划分为几个类别。 **方法与步骤** 1. **识别需要离散化的变量**:基于业务理解和数据特性,选择那些对模型性能或可解释性有显著影响的连续或高基数离散变量。 2. **选择离散化方法**:根据数据特性和业务需求,选择合适的离散化方法,如等宽、等频分箱,基于规则的离散化,或基于模型的离散化(如决策树)。 3. **评估离散化效果**:通过交叉验证、模型性能评估等手段,检查离散化后变量对模型性能的影响,确保离散化过程没有引入额外的偏差或损失太多信息。 **注意事项** - 离散化可能导致信息丢失,因此应谨慎选择离散化的粒度。 - 离散化后的变量应易于理解和解释,以符合业务需求。 ##### 4.2.3 线性模型 **基本概念** 线性模型是机器学习中最简单也最基础的一类模型,其形式通常为 $y = \beta_0 + \beta_1x_1 + \beta_2x_2 + ... + \beta_nx_n + \epsilon$,其中 $y$ 是目标变量,$x_i$ 是自变量(特征),$\beta_i$ 是系数,$\epsilon$ 是误差项。线性模型假设目标变量与自变量之间存在线性关系。 **常见类型** - **线性回归**:用于预测连续型目标变量。 - **逻辑回归**:虽然名字中有“回归”,但实际上是用于二分类问题的广义线性模型。 **优点与局限** - **优点**:模型简单、易于解释、计算效率高。 - **局限**:假设线性关系,难以处理复杂的数据关系(如非线性关系、交互作用)。 ##### 4.2.4 树模型 **基本概念** 树模型是一类基于树结构进行决策或预测的模型,主要包括决策树、随机森林、梯度提升树(如XGBoost、LightGBM)等。树模型通过递归地将数据集划分为若干个子集来构建模型,每个子集对应树中的一个节点。 **工作原理** - **决策树**:从根节点开始,根据某个特征的值将数据集划分为两个或多个子集,并递归地在每个子集上重复此过程,直到满足停止条件(如子集纯度足够高、达到预设的深度等)。 - **随机森林**:通过构建多个决策树并集成它们的预测结果来提高模型的稳定性和准确性。每个决策树在构建过程中都会随机选择部分特征和部分数据。 - **梯度提升树**:通过迭代地构建多个弱学习器(通常是决策树),每个学习器都尝试纠正前一个学习器的错误,从而逐步逼近最优解。 **优点与局限** - **优点**:能够处理非线性关系、交互作用和高维数据;模型可解释性较好(特别是决策树和随机森林)。 - **局限**:对于某些复杂问题可能过拟合;计算成本较高(特别是梯度提升树)。 ##### 总结 本章介绍了数据预处理中的分箱与离散化技术,以及线性模型与树模型的基本原理和应用。分箱和离散化是改善数据质量、提高模型性能的重要手段,而线性模型与树模型则代表了机器学习中最基本也最实用的两类模型。在实际应用中,应根据数据的特性和业务需求选择合适的预处理方法和模型类型,以达到最佳的建模效果。
上一篇:
4.1.2 数字可以编码分类变量
下一篇:
4.3 交互特征与多项式特征
该分类下的相关小册推荐:
机器学习算法原理与实战
Python编程轻松进阶(四)
Python编程轻松进阶(五)
Python合辑12-面向对象
实战Python网络爬虫
剑指Python(磨刀不误砍柴工)
Python合辑1-Python语言基础
Python自动化办公实战
Python合辑6-字典专题
Python数据分析与挖掘实战(上)
Python合辑7-集合、列表与元组
Python与办公-玩转Excel