决策树

    本文主要对有关决策树所学知识进行总结,其中包括简介、几个相关的算法介绍(ID3、C4.5、CART)和决策树的剪枝。

一、决策树模型简介

    决策树的抉择过程,可以看作是一个if else的判断过程,通过判断不断向下分支最终使问题形象为一棵树。决策树学习本质上是从训练数据集中归纳出一组分类规则,我们需要的是一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。

    1、决策树的结构
    决策树整体由结点和有向边组成。其中节点分为根节点、内部节点和叶节点。决策树最顶点是根节点,包含所有的样本;每个内部节点表示一个特征/属性,根据这些特征将样本集分为多个子集;叶节点表示最终分完之后的类,即最终的决策结果。因此使用决策树进行决策即为从根节点开始数据经过内部节点最终到达叶节点之后,叶结点的类别即为最终的决策结果。从根节点到叶节点的每一条路径都够成一条规则,其中内部节点是对应规则的一个个条件,叶节点对应规则最终的结论。
    2、决策树的优点:
    (1)推理过程易理解,可用if else表示推理过程
    (2)推理过程完全依赖于属性变量的取值特点
    (3)可以忽略掉决策过程中没有贡献的属性变量,可以减少变量的数目,还可以判断出属性变量的优先级。

二、相关算法

    要实现决策树分类,首先需要构建决策树,下面介绍几个构建决策树的决策树学习算法。
    决策树学习的大致过程可以总结为:首先递归选择最优特征,然后根据选择出的特征对训练数据集进行分类,与此同时被选择的特征作为决策树中的一个结点,直至训练数据的子集被基本正确分类或无合适特征可选。之后对决策树进行优化即决策树的剪枝,这一步是为了避免学习得到的模型过拟合,对获得的树进行自下至上的剪枝,从而提高模型的泛化能力。
    这里先引入特征选择的两个准则,信息增益和信息增益比。

    1、信息增益
    Shannon在1948年提出的信息论理论,其中提出熵:信息量大小的度量,即表示随机变量不确定性的度量。

    从上图可以看,从左到右,信息的不确定性越来越高,最左边拿出球为红球的概率为1,不确定性没有,则他对应的熵就极低,而最右边各为一半,那它的熵也就是他的不确定性是最高的。


    上边两幅图为利用熵进而算出的信息增益的计算过程。而算法ID3的学习思想,即为选择具有最大信息增益的属性进行划分。

    2、ID3算法
    ID3算法的基本思想是以信息熵为度量,用于决策树节点的选择。每次优先选择信息量最多的属性,即信息增益最大的属性,这样能使熵值迅速变小,可以构造出一棵熵值下降最快的决策树。
    算法思想:
    (1)自根节点开始进行判断,建立结点N,如果数据集中数据均属于一类,则为叶节点,return;或者如果数据集中没有其他属性可以考虑,则也为树叶。
    (2)否则,根据计算得到的信息增益选出信息增益最大的特征作为结点。
    (3)结点选定后,从该结点对应特征分出子数据集分别对应特征的不同取值,每个子数据集形成下一分支各自的数据集,再递归以上操作建立子树,最终形成一棵树。
    3、信息增益比
    由于以信息增益作为划分训练数据集的特征存在偏向于选择取值较多的特征的问题,因此之后引入了信息增益比这一判别准则。信息增益比是在计算时对信息增益进行处理,类似神经网络学习过程中的正则化参数,在特征取值过多时,将其除以一个较大的数减小对应的信息增益。

    上图即为信息增益比的计算公式,可以看到,在原Gain(D,a)信息增益的基础上除了一个IV参数,这个IV参数就相当于对于取值过多的特征的一个惩罚参数,取值越多,IV越大,就能起到减少因特征取值多而被优先选取的问题。C4.5就采用了信息增益比进行决策树学习。
    关于C4.5算法,在作业实现时只对选择分类函数处做了修改,其他过程与ID3算法基本没有区别,过程不再介绍。

    4、CART树
    CART:分类与回归树(Classification And Regression Tree)
    CART构建的树和其他算法最大区别就是他构建的是二叉树,实现的是一个不断进行的二分。CART不仅可以做分类,还可以做回归。在做回归树时,使用的准则为平方误差最小准则;做分类树时使用的准则为基尼指数最小化准则。
    (1)回归树的划分
    选择一个特征j的一个取值s作为切分特征和切分点,定义如下两个区域。然后遍历变量j寻找最优切分特征和最优切分点,即平方误差最小处。


    之后再对划分出的两个区域重复上述划分,直到结束,就得到一个回归树。
    (2)分类树的划分
    分类树采用的划分准则为基尼系数,首先介绍基尼系数的计算公式。

    对于数据集D,假设训练集中有k类,C1、C2、C3…Ck,那么其基尼指数为:

    如果对于训练集,在特征A下从a处将数据集划分为D1、D2。则特征A条件下的基尼指数即为:

    基尼系数表示集合D的不确定性,而基尼系数D(D,A)表示经过A=a的分割之后集合的不确定性。基尼系数越大,集合的不确定性就越大。
    分类树的划分过程:
    ① 对于每一个特征A,对其可能取得的每一个值a,将训练数据集划分为D1和D2,然后计算对应的基尼系数Gini(D,A)。然后选择基尼系数最小的特征值A和切入点a将原数据集划分为两个子数据集。
    ② 重复上述过程直至满足停止条件。最终生成分类决策树。

    (3)CART的剪枝
    剪枝主要分为两步,首先是剪枝得到多个子树序列,然后利用独立的验证数据集进行测试,从中选择最优子树。
    具体过程如下图:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值