第8章 决策树与集成学习
8.1 决策树构建原理(ID3、C4.5、CART)
(1)核心思想
决策树(Decision Tree)是一种 基于规则的监督学习方法。
它通过在特征空间中 逐步划分样本,最终形成一个 树状结构 来进行分类或回归。
每个内部节点表示一个“特征判定条件”,每个叶子节点对应一个“类别”或“预测值”。
直观理解: 就像人类判断事物一样,“如果温度高→再看湿度→如果湿度低→晴天”,形成一棵“判断树”。
(2)构建流程
- 从数据集中选择一个最优特征;
- 根据该特征的不同取值划分数据;
- 对每个子集递归构建子树;
- 直到满足停止条件(如样本纯度高、深度限制等)。
(3)ID3 算法
-
核心指标:信息增益(Information Gain) 用信息论的角度衡量“某个特征对分类的不确定性减少程度”。
[ IG(D, A) = H(D) - H(D|A) ] 其中 (H(D)) 为数据集的熵,(H(D|A)) 为按特征 A 划分后的条件熵。
-
问题:ID3 只能处理离散特征,对连续特征和缺失值支持差。
(4)C4.5 算法
-
改进点:
- 支持连续特征;
- 使用“信息增益率”(Information Gain Ratio);
- 支持缺失值;
- 使用剪枝(Pruning)防止过拟合。
-
信息增益率定义: [ GainRatio(D, A) = \frac{IG(D, A)}{H_A(D)} ] 其中 (H_A(D)) 为特征 A 的“分裂信息熵”。
(5)CART 算法
- Classification And Regression Tree:既可用于分类,也可用于回归。
-
核心指标:
- 分类任务:基尼指数(Gini Index);
- 回归任务:均方误差(MSE)。
-
特点:
- 使用二叉树结构;
- 连续特征按阈值二分;
- 剪枝方法采用 代价复杂度剪枝(Cost-Complexity Pruning)。
(6)优缺点
| 优点 | 缺点 |
|---|---|
| 直观易解释,可视化友好 | 容易过拟合 |
| 可处理非线性关系 | 对数据噪声敏感 |
| 可处理离散与连续特征 | 树不稳定(小数据扰动可能导致结构大变) |
8.2 随机森林与特征重要性
(1)随机森林(Random Forest)简介
随机森林是 Bagging(自助采样法)+ 决策树 的集成模型。 它通过构建多棵互相独立的树,再让它们进行投票或平均预测,从而提高泛化性能。
(2)核心机制
- 样本随机性:每棵树使用不同的 Bootstrap 样本;
- 特征随机性:每个节点分裂时随机选择部分特征;
- 集成预测:分类取多数投票,回归取平均值。
(3)优点
- 大幅降低过拟合;
- 对高维数据、缺失数据、离群点鲁棒;
- 可计算“特征重要性”。
(4)特征重要性计算方法
- 基于分裂增益:统计特征在所有树中带来的信息增益之和;
- 基于置换(Permutation Importance):打乱某个特征的取值,看模型性能下降幅度。
(5)典型应用
随机森林是工业界最实用、最稳健的机器学习模型之一,常用于:
- 信贷风险评估;
- 医学诊断;
- 客户流失预测;
- 特征筛选。
8.3 Boosting、Bagging、XGBoost、LightGBM
(1)Bagging 与 Boosting 的区别
| 对比维度 | Bagging | Boosting |
|---|---|---|
| 训练方式 | 并行 | 串行(逐步改进) |
| 目标 | 降低方差 | 降低偏差 |
| 代表算法 | 随机森林 | AdaBoost、XGBoost、LightGBM |
(2)AdaBoost(Adaptive Boosting)
- 每一轮训练一个弱分类器(如浅层决策树);
- 赋予被错分样本更高的权重;
- 最终用加权投票融合所有分类器。
思想核心:让模型聚焦于“前一轮没学好的样本”。
(3)XGBoost(Extreme Gradient Boosting)
- 基于梯度提升(Gradient Boosting)的高效实现;
- 引入 二阶导信息,更快收敛;
- 具有 剪枝、正则化、列抽样、并行化 等优化。
目标函数: [ Obj = \sum_i l(y_i, \hat{y}_i) + \sum_k \Omega(f_k) ] 其中 (\Omega(f_k)) 是树的复杂度正则项。
(4)LightGBM
- 微软开源,进一步优化 XGBoost 的速度和内存占用;
- 采用 Histogram-based 分裂法(将连续特征分桶);
- 使用 Leaf-wise 策略(更深的生长方向);
- 对大规模、高维数据表现优异。
(5)CatBoost
- Yandex 提出的 Boosting 框架;
- 针对分类特征进行了特别优化;
- 使用对称树结构(balanced tree),训练更稳定;
- 避免了“目标泄漏”(target leakage)。
8.4 集成方法的偏差-方差机制分析
(1)偏差-方差分解回顾
模型误差通常可分解为三部分: [ E_{total} = Bias^2 + Variance + Noise ]
- 偏差(Bias):模型拟合能力不足;
- 方差(Variance):模型对样本扰动敏感;
- 噪声(Noise):数据中不可消除的随机误差。
(2)Bagging 的作用
- 降低方差;
- 提高稳定性;
- 对高方差模型(如决策树)尤其有效。
(3)Boosting 的作用
- 降低偏差;
- 提升拟合能力;
- 对弱学习器组合后可形成强模型。
(4)集成学习的本质
“弱者联合可以成为强者”——通过组合多个不完美模型,形成一个强大且泛化良好的整体。
这正是现代机器学习中“模型融合(Model Ensemble)”与“多专家协作(Mixture of Experts)”思想的理论根基。
✅ 总结
| 方法 | 特点 | 优点 | 缺点 | 应用场景 |
|---|---|---|---|---|
| 决策树 | 规则可解释 | 可视化、易解释 | 容易过拟合 | 特征分析、教学 |
| 随机森林 | Bagging 集成 | 稳定、高精度 | 模型大、解释性弱 | 工业生产模型 |
| AdaBoost | 串行提升 | 精度高 | 噪声敏感 | 小样本分类 |
| XGBoost | 二阶提升+正则化 | 高性能、稳定 | 参数多 | Kaggle 常胜算法 |
| LightGBM | 基于直方图 | 速度快、资源低 | 可解释性弱 | 大数据任务 |
