决策树(一)——决策树的生成ID3、C4.5、CART

基础概念

什么是信息熵?

熵是度量样本集合纯度最常用的一种指标,代表一个系统中蕴含有多少信息量,信息量越大表明一个系统不确定性越大,就存在越多的可能性,即信息熵越大。

假定当前样本集合D中第k类样本所占的比例为 p k ( k = 1 , 2 , . . . , ∣ y ∣ ) p_k(k=1,2,...,|y|) pk(k=1,2,...,y),则D的信息熵为:
E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent(D)=-\sum_{k=1}^{|y|}p_klog_2p_k Ent(D)=k=1ypklog2pk
信息熵满足下列不等式:
0 ⩽ E n t ( D ) ⩽ l o g 2 ∣ Y ∣ 0\leqslant Ent(D) \leqslant log_2|Y| 0Ent(D)log2Y
Y代表样本D中的类别数

证明信息熵的最值

在这里插入图片描述
在这里插入图片描述

ID3

信息增益: 假定离散属性a有V个可能的取值 { a 1 , a 2 , . . . , a V } \{a^1,a^2,...,a^V\} {a1,a2,...,aV},如果使用特征a来对数据集D进行划分,则会产生V个分支节点,其中第v个节点包含了数据集D中所有在特征a上取值为 a V a^V aV的样本总数,记为 D V D^V DV。再考虑到不同的分支节点所包含的样本数量不同,给分支节点赋予不同的权重,这样对样本越多的分支节点的影响就会越大,因此,就能够计算出特征对样本集合D进行划分所获得的“信息增益”:
G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D,a)=Ent(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)
通俗来讲,信息增益就是确定属性a后整体样本不确定性减少的程度,程度越大,则信息增益越高,程度越小则信息增益越小。

ID3算法的缺点

  1. ID3没有考虑连续特征。
  2. ID3采用信息增益大的特征有限建立决策树的节点,取值比较多的特征比取值少的特征,信息增益大。
  3. ID3算法对于缺失值的情况没有考虑。
  4. 没有考虑过拟合的问题。

例题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

C4.5

增益率: 信息增益偏向于选择取值较多的属性,容易过拟合,基于信息增益的缺点,C4.5算法不直接使用信息增益,而是使用一种叫增益率的方法来选择最优属性进行划分,对于样本集合D中的离散属性a,增益率为:
G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)} Gain_ratio(D,a)=IV(a)Gain(D,a)
IV(a)是属性a的固有值:
I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ IV(a)=-\sum_{v=1}{V}\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|} IV(a)=v=1VDDvlog2DDv

C4.5算法的缺点

  1. C4.5生成的是多叉树,生成决策树的效率较慢。
  2. C4.5只能用于分类。
  3. C4.5由于使用了熵模型,里面有大量的耗时的对数运算。
  4. C4.5又偏向于选择特征取值较少的属性。

为避免ID3与C4.5算法各自对特征数量的偏见,可以采用以下两步降低影响
Step1: 从候选划分属性中找出信息增益高于平均水平的属性。
Step2: 从Step1的结果中找出增益率最高的属性作为划分属性。

例题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CART

基尼值: 用于度量数据集的纯度,Gini(D)反映了从数据集中随机抽取两个样本,其类别标记不一致的概率。因此,Gini(D)越小,则数据集的纯度越高。
假定当前样本集合D中第k类样本所占的比例为 p k ( k = 1 , 2 , . . . ∣ y ∣ ) p_k(k=1,2,...|y|) pk(k=1,2,...y),则D的基尼值为:
G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 ∣ y ∣ p k 2 Gini(D)=\sum_{k=1}^{|y|}\sum_{{k}' \neq k}p_kp_{{k}'}=1-\sum_{k=1}^{|y|}p_k^2 Gini(D)=k=1yk̸=kpkpk=1k=1ypk2

基尼指数: 表示在样本集合中一个随机选中的样本被分错的概率。基尼指数越大,样本的不确定性也就越大。
G i n i _ i n d e x ( D , a ) = ∑ v = 1 ∣ V ∣ ∣ D v ∣ ∣ D ∣ G i n i ( D v ) Gini\_index(D,a)=\sum_{v=1}^{|V|}\frac{|D^v|}{|D|}Gini(D^v) Gini_index(D,a)=v=1VDDvGini(Dv)

选择划分后使得基尼指数最小的属性作为最优划分属性。

注意

  1. CART采用的是二元切割法,最后生成的决策树是一颗二叉树。
  2. 对于属性值为离散的大于2类的情况,则会选择其中一个取值,将依据属性=a与属性 ≠ \neq ̸=a,划分。最终将改属性下的所有属性取值遍历一遍。
  3. 对于连续取值的情况可以依据值的大小排序,从小到大,取中间的数值作为分裂点。
  4. CART不仅能处理分类问题,还能处理回归问题(本文仅针对分类问题做阐述)。

例题

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

  1. ID3 只能处理离散型变量,C4.5和CART都可以处理连续型变量。
  2. ID3 和C4.5只能用于分类任务,CART还可用于回归任务。
  3. ID3和C4.5在生成决策树时,可能产生多叉树,而CART一定是二叉树。

Reference

[1] 《机器学习》p73-p79
[2] 《统计学习方法》 p67-p87
[3] 《百面机器学习》 p61-p66
[4] https://blog.csdn.net/ACdreamers/article/details/44664481
[5] https://blog.csdn.net/baimafujinji/article/details/53269040#commentBox
[6] https://blog.csdn.net/zjsghww/article/details/51638126
[7] https://zhuanlan.zhihu.com/p/34534004

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值