学习笔记十三:决策树划分

1. 划分选择的重要性

核心问题:

决策树学习的关键是如何选择最优划分属性。

目标:

随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的 "纯度"(purity)越来越高。

划分准则:

不同的划分准则会导致不同的决策树结构,常用的划分准则包括:

  • 信息增益(Information Gain)
  • 增益率(Gain Ratio)
  • 基尼指数(Gini Index)

2. 信息增益

2.1 信息熵

定义:

信息熵(information entropy)是度量样本集合纯度最常用的一种指标。

公式:

假定当前样本集合 D 中第 k 类样本所占的比例为 pᵏ(k = 1, 2, ..., |Y|),则 D 的信息熵定义为:

Ent(D)=−∑k=1∣Y∣pklog⁡2pkEnt(D) = -\sum_{k=1}^{|Y|} p_k \log_2 p_kEnt(D)=−k=1∑∣Y∣pklog2pk

计算约定:

计算信息熵时约定:若 p = 0,则 p log₂ p = 0。

性质:

  • Ent(D) 的最小值为 0
  • Ent(D) 的值越小,则 D 的纯度越高
  • 当所有样本属于同一类别时,Ent(D) = 0(纯度最高)
  • Ent(D) 的最大值为 log₂ |Y|
  • 当各类别样本数量相等时,Ent(D) 达到最大值(纯度最低)

2.2 信息增益

定义:

信息增益 (information gain)表示使用属性 a 对样本集 D 进行划分所获得的纯度提升。

公式:

假定离散属性 a 有 V 个可能的取值 {a¹, a², ..., aᵛ},若使用 a 来对样本集 D 进行划分,则会产生 V 个分支结点,其中第 v 个分支结点包含了 D 中所有在属性 a 上取值为a^v 的样本,记为 Dᵛ。我们可根据上面公式计算出 Dᵛ 的信息熵,再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重 |Dᵛ|/|D|,即样本数越多的分支结点的影响越大,于是可计算出用属性 a 对样本集 D 进行划分所获得的信息增益为:

Gain(D,a)=Ent(D)−∑v=1V∣Dv∣∣D∣Ent(Dv)Gain(D, a) = Ent(D) - \sum_{v=1}^{V} \frac{|D^v|}{|D|} Ent(D^v)Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)

解释:

  • 信息增益 = 划分前的信息熵 - 划分后的加权平均信息熵
  • 权重 |Dᵛ|/|D| 表示样本数越多的分支结点影响越大
  • 信息增益越大,意味着使用属性 a 来进行划分所获得的"纯度提升"越大

划分属性选择:

在候选属性集合 A 中,选择使得信息增益最大的属性作为最优划分属性。

ID3算法:

著名的ID3决策树学习算法就是以信息增益为准则来选择划分属性。

2.3 信息增益计算示例

以西瓜数据集2.0为例(包含17个训练样例,|Y| = 2):

根结点信息熵:

根结点包含所有样例,其中正例占 p₁ = 8/17,反例占 p₂ = 9/17,计算可得根结点的信息熵为 0.998。

属性"色泽"的信息增益:

属性"色泽"有3个可能取值:{青绿, 乌黑, 浅白}

  • D¹(色泽=青绿):6个样本,3个正例,3个反例,信息熵为 1.000
  • D²(色泽=乌黑):6个样本,4个正例,2个反例,信息熵为 0.918
  • D³(色泽=浅白):5个样本,1个正例,4个反例,信息熵为 0.722

因此,属性"色泽"的信息增益为 0.109。

其他属性的信息增益:

  • Gain(D, 根蒂) = 0.143
  • Gain(D, 敲声) = 0.141
  • Gain(D, 纹理) = 0.381
  • Gain(D, 脐部) = 0.289
  • Gain(D, 触感) = 0.006

显然,属性"纹理"的信息增益最大,因此被选为划分属性。

3. 增益率

3.1 信息增益的不足

问题:

信息增益准则对可取值数目较多的属性有所偏好。例如,如果使用"编号"作为划分属性,每个样本都有唯一的编号,信息增益会达到最大值,但这样的划分显然没有意义。

原因:

可取值数目较多的属性,其每个分支结点包含的样本数较少,信息熵较小,导致信息增益较大。

3.2 增益率

定义:

增益率 (gain ratio)是信息增益的改进,通过引入固有值(intrinsic value)来减少对可取值数目较多属性的偏好。

属性 a 的固有值 记为 IV(a),属性 a 的增益率 记为 Gain_ratio(D, a),它等于信息增益除以固有值。

性质:

  • 属性 a 的可能取值数目越多(即 V 越大),则 IV(a) 的值通常会越大
  • 增益率准则对可取值数目较少的属性有所偏好

C4.5算法:

著名的C4.5决策树学习算法使用增益率来选择划分属性。具体做法是:

  • 先从候选划分属性中找出信息增益高于平均水平的属性
  • 再从这些属性中选择增益率最高的

4. 基尼指数

4.1 基尼值

定义:

CART决策树使用"基尼指数"(Gini index)来选择划分属性。

数据集 D 的纯度可用基尼值 来度量,记为 Gini(D)。

直观意义:

Gini(D) 反映了从数据集 D 中随机抽取两个样本,其类别标记不一致的概率。

性质:

  • Gini(D) 越小,则数据集 D 的纯度越高
  • 当所有样本属于同一类别时,Gini(D) = 0(纯度最高)
  • 当各类别样本数量相等时,Gini(D) 达到最大值(纯度最低)

4.2 基尼指数

定义:

属性 a 的基尼指数 记为 Gini_index(D, a),它是各分支结点基尼值的加权平均。

划分属性选择:

在候选属性集合 A 中,选择使得划分后基尼指数最小的属性作为最优划分属性。

CART算法:

CART决策树(Classification and Regression Tree)使用基尼指数来选择划分属性。

5. 三种划分准则的比较

5.1 信息增益 vs 增益率 vs 基尼指数

划分准则 算法 特点 适用场景
信息增益 ID3 对可取值数目较多的属性有偏好 属性取值数目相近时使用
增益率 C4.5 对可取值数目较少的属性有偏好 属性取值数目差异较大时使用
基尼指数 CART 计算简单,性能与信息增益相近 分类和回归任务都适用

5.2 选择建议

  • 信息增益:简单直观,但当属性取值数目差异较大时,可能偏向取值多的属性
  • 增益率:通过引入固有值来平衡,但可能偏向取值少的属性,通常与信息增益结合使用
  • 基尼指数:计算效率高,在CART算法中表现良好,适用于大规模数据

6. 总结

决策树划分是决策树学习的核心问题。划分选择的目标是选择最优划分属性,使得划分后结点的纯度越来越高。

三种主要的划分准则:

  1. 信息增益(ID3算法):基于信息熵,衡量划分前后的纯度提升
  2. 增益率(C4.5算法):信息增益的改进,通过引入固有值减少对多值属性的偏好
  3. 基尼指数(CART算法):基于基尼值,计算简单,性能与信息增益相近

核心要点:

  • 划分选择的目标是提高结点纯度
  • 不同的划分准则有不同的特点和适用场景
  • 在实际应用中,需要根据数据特点和任务需求选择合适的划分准则
  • 信息增益对可取值数目较多的属性有偏好,增益率通过引入固有值来平衡,基尼指数计算效率高
相关推荐
zy_destiny1 小时前
深度学习实战-基于YOLOv8的玉米雄穗目标检测:从数据集下载到训练部署全流程实录
yolo·目标检测·机器学习
禹凕2 小时前
机器学习之Selenium(Machina Learning about Selenium)
爬虫·python·selenium·测试工具·机器学习
一直在努力的小宁3 小时前
【阅读笔记】具身智能的真机数采,到了分水岭
人工智能·深度学习·机器学习·agent·具身智能·vlm·vln
YH行业报告分析4 小时前
2026 AI法律合同审查平台市场洞察:NLP与机器学习如何推动企业合规与合同流程智能化?
人工智能·机器学习·自然语言处理
田里的水稻4 小时前
FA_融合和滤波(FF)-误差状态卡尔曼滤波(ESKF)
人工智能·机器学习·机器人·自动驾驶
Leo.yuan6 小时前
企业可信Data Agent怎么建:可信分析智能体(Traceable Analytic Agent)的分析链路与验证机制
大数据·人工智能·机器学习
YOLO数据集集合7 小时前
树木检测数据集 | 树木检测 树种分类 航拍林业 森林监测9131期
人工智能·算法·机器学习·分类·数据挖掘·林业·树种分类
空奈qwq7 小时前
ANN 全连接神经网络入门指南:从神经元到深度学习的第一步
人工智能·python·深度学习·神经网络·算法·机器学习
Java的搬运工9 小时前
【无标题】
python·机器学习·docker·fastapi·模型部署·mlops·ai工程化
小小张说故事10 小时前
SHAP 可解释性入门:模型为什么这么判?Python 实战 + 4 个最常见的误读
后端·python·机器学习