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∣pklog2pkEnt(D) = -\sum_{k=1}^{|Y|} p_k \log_2 p_kEnt(D)=−k=1∑∣Y∣pklog2pk
计算约定:
计算信息熵时约定:若 p = 0,则 p log₂ p = 0。
性质:
Ent(D)的最小值为 0Ent(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.000D²(色泽=乌黑):6个样本,4个正例,2个反例,信息熵为 0.918D³(色泽=浅白):5个样本,1个正例,4个反例,信息熵为 0.722
因此,属性"色泽"的信息增益为 0.109。
其他属性的信息增益:
Gain(D, 根蒂) = 0.143Gain(D, 敲声) = 0.141Gain(D, 纹理) = 0.381Gain(D, 脐部) = 0.289Gain(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. 总结
决策树划分是决策树学习的核心问题。划分选择的目标是选择最优划分属性,使得划分后结点的纯度越来越高。
三种主要的划分准则:
- 信息增益(ID3算法):基于信息熵,衡量划分前后的纯度提升
- 增益率(C4.5算法):信息增益的改进,通过引入固有值减少对多值属性的偏好
- 基尼指数(CART算法):基于基尼值,计算简单,性能与信息增益相近
核心要点:
- 划分选择的目标是提高结点纯度
- 不同的划分准则有不同的特点和适用场景
- 在实际应用中,需要根据数据特点和任务需求选择合适的划分准则
- 信息增益对可取值数目较多的属性有偏好,增益率通过引入固有值来平衡,基尼指数计算效率高