第4章 决策树

前言

        博主初次接触机器学习,记录个人学习历程。内容可能有诸多重复,但是我尽量用自己的话来讲,觉得写得还行就点赞转载。写博客的好处有二:一是总结学习内容,二是记录学习历程与同道这交流。在此,也希望读者能有一点点收获吧!如果不对的地方,还请多多指教!

        上一篇    第3章 线性模型

4.1基本流程

        决策树是一类常见的机器学习方法,是一种基本的分类与回归的方法。顾名思义,决策树就是基于树的结构来进行决策的。如图4.1所示,从树的根结点,到叶子结点(也就是判别结果),其中一般会经过若干个中间结点,每个中间结点对应一个属性测试,例如图中的色泽属性,根蒂属性,敲声属性。其中根结点是包含样本全集的,每经过一个中间结点,则会根据中间结点属性测试的结果划分到子结点中。

        显然,对于每个样本,都有对应的属性集,例如图中的(色泽,根蒂,敲声),那么决策树的判别路径是如何规划的呢?是先判别色泽还是先判别根蒂?当前中间结点还有没有进一步生成子结点的必要?这就涉及到了路径的划分选择以及剪枝问题了。总的来说,一个决策树的基本流程是遵循简单且直观的“分而治之”策略,如图4.2所示。

        从图4.2显然得出,决策树的生成是一个递归过程。什么叫递归过程呢?形象的来讲:决策树在生成过程中,从根结点开始,会一层一层往下延拓,生成更多的中间结点。易知由于样本的种类是有限的,样本的属性类别(色泽,纹理,敲声)等也是有限的,所以这颗决策树的层数(高度)以及每一层的中间结点数当然是有限的,而这个就依靠“递归条件”来限制这颗决策树的生成了。

例如在根节点的时候,经过递归条件判别“样本集是否全部都是一个种类的?” 如果是的话还有继续接下来按各种属性进行分类判别吗? 答案是“没有必要” 。 所以这个决策树的生成过程至此结束!因为我们就是要将样本分出类别来,而样本本来就是属于同一个类别的,所以没有继续分类的必要了。

       在决策树的生成过程中,最重要的步骤之一就是步骤8,划分选择问题,这决定了这颗决策树的判别路径。


 4.2划分选择 

        首先明确决策树学习的目的是为了产生一颗泛化能力强的决策树。从根节点到每个叶子结点,我们都希望经过每个结点之后,分类结果会越来越清晰。例如在根节点时所有样本共有5类,经过第一个中间结点后,衍生了两个子结点,两个子结点的样本类别分别包含3类,换句话来说就是经过第一个中间结点,在一定程度上把部分不同类别的结点分开了,两个子结点中的样本类别纯度变高了。让结点的“纯度”越来越高,就是划分选择问题的准则!

        纯度定义:对于一个分支结点,如果该结点所包含的样本都属于同一类,那么它的纯度为1,而我们总是希望纯度越高越好,也就是尽可能多的样本属于同一类别。那么如何衡量“纯度”呢?由此引入“信息熵”的概念。

        一般来讲,通过不同属性(色泽,纹理,敲声)的属性测试,在一定程度上都可以提升结点的纯度,狭路相逢勇者胜,我们必须从中挑出一个纯度提升效果最优的,那么该如何判别纯度提升效果最优呢?介绍三种判别准则:1.信息增益 2.增益率结合信息增益 3.基尼指数

而实际上,基于不同的准则,其实对泛化性能的影响是有限的,[Raileanu and Stoffel,2004]对信息增益以及基尼指数进行理论分是表明,在泛化性能方面两者仅有2%的不同。但是不同的准则对于决策树的尺寸会有较大影响,这就体现在了训练时间以及测试时间上。

4.3剪枝问题

        现在来考虑一个问题:决策树是不是形态越丰富,分支越多,越复杂,分类越准确呢?

        显然是否定的。

        学习算法中存在着一个需要特别注意的问题:“过拟合”。换句话说就是学习过程中过度的学习了训练集的特点,把训练集自身的一些特点当作所有样本数据都具有的一般性质,也就是学的太过了,有一些不应该继续分支的结点继续进行划分了,导致分支过多过冗余。这样子反而会降低学习算法的泛化能力。剪枝对于决策树的泛化性能的提升是显著的,有实验研究表明[Mingers,1989a],在数据带有噪声时,通过剪枝甚至可以将决策树的泛化性能提高25%

        所以剪枝这一名词也因此得来,因为剪枝的目的就是剪去过多的分支!决策树剪枝的基本策略有“预剪枝”和“后剪枝”,两者的界定就是一个发生在决策树生成过程中,一个是发生在决策树生成后。
 

4.4连续与缺失值

       至此,我们前面讨论的样本都是基于离散属性并且属性数据是完整的。然而实际上,现实世界中还是存在各种连续属性,而样本的属性有可能是会缺失的。所以这个部分主要就是讨论对于连续属性以及样本属性值缺失问题。

4.5多变量决策树

        想象一下,若我们把样本的每个属性都视为坐标空间中的一个坐标轴,则由d个属性描述的样本就对应了d维空间中的一个数据点。对样本的分类就意味着在这个坐标空间中寻找不同类样本之间的分类边界。而我们前面提到的决策树在d维空间中形成的分类边界有一个特点:轴平行,如图4.11所示,这个样本集的属性只包括两个连续属性(密度,含糖率),它的分类边界由若干个与坐标轴平行的分段组成的。
 

         如图4.10以及4.11所示,在图4.10的决策树上有几个分支结点,对应图4.11则有几段关于轴平行的分类边界。这样的分类边界的确取得了很好的解释性,但是这仅仅是二维小样本容量上的应用。如果样本很复杂,是多维的大样本,那么必须通过很多很多段的划分才能取得较好的近似,例如图4.10中的决策树需要4段分类边界。通过多段的分类边界去划分,显然时间开销是很大的,因此假如我们不局限于平行与轴的分类边界,考虑使用斜的划分边界,如图4.12所示,此时就引入了“多变量决策树”。

        “多变量决策树”与“普通决策树”相比,关键在于分支结点的属性测试的区别。“多变量决策树”的属性测试不再是单一的属性测试,而是对多个属性的线性组合进行测试。换句话说,对于分支结点的属性测试,我们不再是为每个结点寻找一个最优划分属性了,而是对每个分支结点建立一个合适的线性分类器,例如图4.10中的数据集,我们通过多变量决策树生成如图4.13所示的决策树,并且其分类边界如图4.14所示。
 

         显然与“普通的决策树分类边界”相比,采用“多变量决策树”能够通过斜的划分边界取得较好的效果。

习题答案

         机器学习(周志华) 参考答案 第四章 决策树


 参考的学习资料:

 相关博客学习内容   参考资料   决策树的理论及实现

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值