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

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 进行划分所获得的纯度提升。

公式

假定离散属性 aV 个可能的取值 {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个可能取值:{青绿, 乌黑, 浅白}

  • (色泽=青绿):6个样本,3个正例,3个反例,信息熵为 1.000
  • (色泽=乌黑):6个样本,4个正例,2个反例,信息熵为 0.918
  • (色泽=浅白):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算法):基于基尼值,计算简单,性能与信息增益相近

核心要点

  • 划分选择的目标是提高结点纯度
  • 不同的划分准则有不同的特点和适用场景
  • 在实际应用中,需要根据数据特点和任务需求选择合适的划分准则
  • 信息增益对可取值数目较多的属性有偏好,增益率通过引入固有值来平衡,基尼指数计算效率高
相关推荐
ai小陈42 分钟前
PyTorch Profiler性能分析实战:定位GPU训练中的慢算子
人工智能·深度学习·机器学习·ai·性能优化·gpu算力
罗西的思考1 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 ---(1)--- 总体
人工智能·算法·机器学习
来让爷抱一个2 小时前
2026 语义缓存实战:把命中契约写进SPEC,MonkeyCode 云端跑通
人工智能·机器学习·缓存
xiao5kou4chang6kai43 小时前
AI-XGBoost机器学习与生态—植被与土地利用识别、土壤碳氮空间预测、生物多样性驱动机制、土壤微生物功能预测、生态退化与风险识
人工智能·机器学习·生态·xgboost·地学
liliangcsdn3 小时前
因子权重矩阵处理-因子权重收缩Shrinkage算法的探索
开发语言·python·机器学习
差不多的周周6 小时前
《MotionLLM:从人体运动和视频理解人类行为》论文核心部分详解
人工智能·深度学习·机器学习·计算机视觉·语言模型·音视频
硅谷秋水6 小时前
超越模仿:通过离线策略Q-规划实现机器人策略的自我改进
人工智能·深度学习·机器学习·机器人
面朝大海,春不暖,花不开7 小时前
翻译自 英语
人工智能·机器学习
欧特克_Glodon8 小时前
OpenCV计算机视觉开发入门与实践<三十七>:OpenCV中的机器学习
c++·opencv·机器学习·计算机视觉
2601_962099088 小时前
在Python中使用LSTM和PyTorch进行时间序列预测
pytorch·机器学习·lstm·时间序列预测·数据预处理