C4.5决策树-为什么可以选用信息增益来选特征

本文介绍了C4.5决策树算法中使用信息增益来选择特征的原因。信息熵作为衡量分类不确定性的指标,信息增益大的属性能更有效地减少数据的熵,增强分类确定性。然而,连续值属性可能导致过大的信息增益,造成决策树过于庞大。C4.5通过信息增益率解决了这个问题,避免了对取值较多属性的偏好。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要理解信息增益,首先要明白熵是什么,开始很不理解熵,其实本质来看熵是一个度量值,这个值的大小能够很好的解释一些问题。
这里写图片描述

这里写图片描述

这里写图片描述

从二分类问题来看,可以看到,信息熵越是小的,说明分类越是偏斜(明确),可以理解为信息熵就是为了消除分类不确定性的,决策树本就是根据一个个问题的答案去尽可能明确的找出规律去告诉别人这条数据的类别,如果说类被均匀的分到两边,相当于你问别人,明天会小雨吗,别人告诉你可能会下可能不会小,这对你的判断并没有屌用。在后面子分支属性的选择中,一个属性的信息增益越大,表明属性对样本的熵减少的能力更强,这个属性使得数据由不确定性变成确定性的能力越强。

但所以如果是取值更多的属性,比如顾客ID这种连续值属性,基本一个ID一条数据,更容易使得数据更“纯”(尤其是连续型数值),其信息增益更大,决策树会首先挑选这个属性作为树的顶点。结果训练出来的形状是一棵庞大且深度很浅的树,这样的划分是极为不合理的。

所以C4.5使用了信息增益率,在信息增益的基础上除了一项split information,来惩罚值更多的属性。

Gainratio=δSplitInfo
### 决策树信息增益率计算为负的原因 信息增益率的定义是通过引入分裂信息来调整信息增益,从而减少对具有较多取值属性的偏袒。具体来说,信息增益率为: \[ \text{Gain Ratio}(A) = \frac{\text{Gain}(D, A)}{\text{SplitInfo}(A)} \] 其中,$\text{Gain}(D, A)$ 是信息增益,而 $\text{SplitInfo}(A)$ 表示按照属性 $A$ 划分后的不确定性[^4]。 当某些情况下,$\text{SplitInfo}(A)$ 的值非常大,甚至超过了 $\text{Gain}(D, A)$ 时,就会导致信息增益率变为负数。这种情况通常发生在划分后各子集的数据分布极其不均匀的情况下,即某个子集中几乎包含了所有的样本,其他子集几乎没有样本[^3]。 --- ### 解决方案 为了应对信息增益率可能为负的问题,可以采取以下几种策略: #### 1. **设定阈值** 在实际应用中,可以择忽略那些信息增益率小于零的属性。这意味着如果某属性的信息增益率低于零,则认为它不适合用于当前节点的划分。 #### 2. **修正公式** 为了避免信息增益率出现负值,可以在计算过程中加入一个小常数作为平滑项。例如,将公式改为: \[ \text{Gain Ratio}(A) = \max(\epsilon, \frac{\text{Gain}(D, A)}{\text{SplitInfo}(A)}) \] 这里 $\epsilon$ 是一个很小的正值,用来防止比率变成负数或接近于零。 #### 3. **综合考虑多个指标** 除了单纯依赖信息增益率外,还可以结合其他评价标准共同决定最佳分割点。比如,在 C4.5 中采用了启发式方法——优先取高于平均水准的增益率,并从中出最高者;这种方法既保留了信息增益的优点又缓解了其缺陷。 #### 4. **改用替代指标** 对于连续型特征或者类别过多离散型特征,Gini 指标可能是更好的择因为它不会受到上述问题的影响。Gini 值反映了随机抽取两个样本属于不同类别的概率,因此更加稳定可靠。 ```python def gini_index(groups, classes): n_instances = float(sum([len(group) for group in groups])) gini = 0.0 for group in groups: size = float(len(group)) if size == 0: continue score = 0.0 for class_val in classes: p = [row[-1] for row in group].count(class_val) / size score += p * p gini += (1.0 - score) * (size / n_instances) return gini ``` --- ### 总结 综上所述,信息增益率可能出现负值的主要原因是由于 Split Information 过高所致。针对这一现象可通过设置合理阈限、改进原始表达式形式或是融合多维度考量等方式加以规避。另外,在特定场景下选用更适合目标特性的评估准则也是可行之计。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值