Advantages of the different impurity metrics?


分类决策树中,我们的目标函数是最大化每次切分数据带来的信息增益:

其中 $f$ 是决策问题基于的特征;$D_p$ 和 $D_j$ 分别是父节点数据集和第 $j$ 个子节点数据集; $I$ 不纯度衡量指标; $N$ 是数据集总大小,$N_j$ 是第 $j$ 个子节点上数据集大小。

分类树衡量切分数据集方案好坏的的标尺,最常用的是基尼不纯度(gini impurity)和信息熵(entropy)。另外,有些地方也会用 Classification Error ($I_E$)。

信息熵的定义如下:

for all “non-empty” classes
共有 C 种分类,且每个类型对于的数据集不全为空的数据集中

$p(i|t)$ 是 $t$ 节点上属于分类 $i$ 的数据集所占的比例;如果一个节点上所有数据属于单个类型,该节点上数据集的信息熵是 0;如果一个节点上的所有数据均匀分布于不同类型,该节点上数据集的信息熵是最大;

基尼不纯度可被当做衡量最小化数据切分错误的概率的指标。

实际应用中,使用基尼系数还是信息熵作为衡量指标,生成的决策树差别不会太大,因此时间应该更多的花在不同剪枝策略的实验上。

上图可见,Classification Error 对节点上某个类型所占比例的变化不是很敏感,因此不太适合作为目标函数,用来衡量剪枝效果倒是可以。

假设数据集 $D_p$ 中 40条数据属于类型1,1条数据属于类型2,对比A、B 两种切分数据集的方案。

可发现,使用 Classification Error 作为目标函数时,A()、B 两种方案的信息增益一样,都是 $IG_E = 0$,无法衡量出哪个方案更好。

使用 Gini Impurity 作为目标函数时,正确衡量(和不纯度变化一致)出 A(0.125)方案信息增益比B(0.1666)方案小。

使用 entropy 作为目标函数时,也正确衡量(和不纯度变化一致)出 B(0.31)方案信息增益比 A(0.19)方案大。

因此,

  • 信息熵对数据集的不纯度更加敏感(原因见上图 ),因此决策树的生长会更加“精细”,对于高维数据或者噪音很多的数据,很容易过拟合;
  • 信息熵的计算比基尼系数缓慢一些,因为基尼系数的计算不涉及对数。

Author: ahmatjan
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source ahmatjan !
  TOC