决策树

00:00
6 min Intermediate 2026/6/14

决策树算法原理、ID3/C4.5/CART算法对比、信息增益、剪枝策略。

1. 决策树基本原理

决策树通过递归分裂特征空间,构建树形决策结构,每个内部节点表示一个特征判断,叶节点表示预测结果。

1.1 树结构

              根节点
             /       \
        特征A≤3?    特征A>3
         /    \       /    \
    特征B≤5?  叶:0  特征C≤2? 叶:1
     /  \           /   \
   叶:0  叶:1     叶:1   叶:0
组成说明
根节点包含全部训练样本
内部节点特征测试条件
分支测试结果的路径
叶节点类别标签或回归值

1.2 学习过程

决策树学习本质是递归选择最优特征和分裂点

BuildTree(D, features):
    if D中所有样本同类:
        return 叶节点(该类)
    if features为空 or D样本数 < 阈值:
        return 叶节点(多数类)
    选择最优特征 f* 和分裂点 t*
    D_left = {D | f* ≤ t*}
    D_right = {D | f* > t*}
    return Node(f*, t*, BuildTree(D_left), BuildTree(D_right))

2. 特征选择准则

2.1 信息增益(ID3)

信息熵度量数据集的纯度:

其中 为第 类的比例。熵越大,数据越不纯。

信息增益:按特征 分裂后的熵减少量:

选择信息增益最大的特征进行分裂。

缺点:偏向选择取值多的特征。

2.2 信息增益率(C4.5)

固有值(Intrinsic Value)

信息增益率

C4.5 选择信息增益率最大的特征,惩罚取值多的特征

2.3 基尼指数(CART)

基尼指数度量数据集的不纯度:

按特征 的某个取值 二分后的基尼指数:

CART 选择使基尼指数最小的特征和分裂点。

2.4 三种准则对比

准则算法分裂方式偏好树类型
信息增益ID3多路分裂取值多的特征分类树
信息增益率C4.5多路分裂修正偏好分类树
基尼指数CART二叉分裂无明显偏好分类+回归

基尼指数 vs 熵

基尼指数计算不需要对数运算,效率更高。

3. 剪枝策略

3.1 预剪枝

在构建过程中提前停止树的生长:

策略说明
最大深度限制树的深度
最小样本数节点最少样本数
最小信息增益分裂的最小增益阈值
最小叶节点样本数叶节点最少样本数

3.2 后剪枝

先生成完整树,再从底部开始剪枝:

代价复杂度剪枝(CART)

其中 为训练误差, 为叶节点数, 为复杂度参数。

  • :不剪枝
  • :只保留根节点
  • 通过交叉验证选择最优

悲观剪枝(C4.5)

使用连续性修正估计泛化误差。

3.3 剪枝对比

维度预剪枝后剪枝
计算效率高(不构建完整树)低(需构建完整树)
模型质量可能欠拟合通常更好
实现难度简单较复杂
推荐快速原型生产环境

4. CART回归树

CART 回归使用平方误差最小准则:

其中 为按特征 的分裂 划分的两个区域

最优输出区域内的

5. 决策树优缺点

5.1 优点

  • 解释性强决策逻辑直观可视
  • 无需特征缩放量纲不敏感
  • 处理混合类型:数类别特征
  • 处理缺失部分算法内置缺失值处理
  • 训练时间复杂度

5.2 缺点

  • 过拟合风险太深容易记住噪声
  • 不稳定:数据微小变化可能导致完全不同的
  • 贪心算法:局部最优不保证全局最优
  • 偏向特征:ID3的信息增益偏好
  • XOR问题线性不可分问题需要很深的

5.3 改进方向

问题解决方案
过拟合剪枝、随机森林
不稳定Bagging、随机森林
贪心Boosting迭代优化
表达能力有限集成学习

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式