决策树算法(ID3算法详解)

1 导论–什么是决策树

本文整体阅读时长约10分钟。如果只想对决策树有个概念性的了解,建议只阅读各级标题即可。

决策树算法是一种采用树形结构解决分类问题的算法。其树形结构如下图所示,主要包含根节点,叶结点,及两者之间的中间结点,可以看出,根节点划分开始直至全部为叶结点结束。
在这里插入图片描述

2 决策树学习流程

2.1 特征(属性)选择

选择哪些特征作为分类的标准是决策树算法的关键,因为特征选择的好坏直接决定了分类的效果是否理理想。因此,在存在的众多特征(属性)中,如何找到与分类最相关、次相关的特征是核心。一般地,决策树算法会根据:信息增益,作为准则来进行特征的确定。即对根节点计算所有特征的信息增益,选择信息增益最大的特征作为最开始的节点特征。

2.2 决策树生成

在进行特征确定之后,就可以根据最相关属性进行分类:即从该节点出发,根据该特征的不同取值建立子节点;对每个子节点使用相同的方式生成新的子节点,直到信息增益很小或者没有特征可以选择为止。这样,决策树就生成完毕了。

2.3 决策树剪枝(防止过拟合)

决策树在生成过程中,为了尽量分类正确,节点划分过程有时会不断重复,造成分支过多,有可能会将训练样本分类太好,而泛化能力减弱,即出现过拟合。因此,有必要在决策树生成后进行剪枝处理。

3 案例实现----3种经典决策树算法

3.1 ID3算法详解

3.1.1 分类依据(增益率)

决策树是根据信息增益来进行特征选择的,信息增益定义为
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) - \Sigma_{v=1}^{V} \frac{|D^v|}{|D|} Ent(D^v)
其中D为总的样本,a为属性,v为在属性a中的v类样本,信息增益越大,表明该属性对分类的相关性越大。Ent()表示信息熵(entropy),公式如下:
E n t ( D ) = Σ k = 1 D p k l o g 2 p k . Ent(D) = - \Sigma_{k=1}^{D} p_k log_2 {p_k}.
k表示在样本D中的第k类样本, p k p_k 表示第k类样本所占样本总体的概率。类比于现实中的熵,可以理解为,信息熵越小,表明纯度越高。

3.1.2 分类流程

按照第2节中决策树学习的流程,有了上述的分类依据,我们便可对根节点进行分类,其实套用公式即可。

  1. 先求取每个属性a下所对应分类的信息熵 E n t ( D v ) Ent(D^v) (此时计算的是在属性a中的所占比例),乘上此时a属性分类下各样本所占总体样本的比例并加和,随后得到 G a i n ( D , a ) Gain(D,a)
  2. 然后就进一步计算 G a i n ( D , b ) Gain(D,b) , G a i n ( D , c ) Gain(D,c) 等a,b,c各属性的增益,相互比较,得到增益率最大的那个属性即作为本次的划分属性。
  3. 然后在可继续分类的那个子节点下重复上述1和2的过程(此时可以不用计算上面刚确定的那个属性的增益率),一直到不可再分为止,即全部为叶结点为止。
  4. 此时决策树大体就生成好了,结合验证集,通过剪枝或后剪枝法对一些节点进行剪枝操作。然而,预剪枝预防过拟合,却带来了欠拟合风险;后剪枝则在决策树完全生成后进行,并且自底向上逐一排查,训练开销大。

3.2 C4.5算法

在ID3算法上的改进,由于ID3算法会偏向于样本数目多的属性,因此ID3引进了一个因子来抵消它,但会引来偏好数目少的样本。因此,在应用中,先从候选属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。其具体公式见最后附图。

3.3 CART算法

和之前选择增益率最大的不同,CART算法是通过基尼指数的最小值来选择属性,基尼指数越小,其纯度越高。以上所有的讲解小结在最后附图中。
在这里插入图片描述
参考文档: 周志华,《机器学习》,清华大学出版社。