西瓜书第四章--决策树

4.1 基本流程

        顾名思义,决策树是基于树结构来进行决策的一种机器学习算法。一般来说,一颗决策树由一个根节点、若干个内部节点和若干个叶节点组成,其中叶节点对应最终决策结果,其他节点对应一个属性测试(即条件判断)。

        决策树学习的目的:产生一颗泛化能力强,处理未见示例强的决策树模型。其基本流程如下:

西瓜书第四章--决策树_第1张图片

           可以看出,决策树学习的关键是第8行,从众多的属性中选择最优划分属性。那么这个过程怎么实现呢?实现过程见4.2。值得注意的是,不管是任何一个指标,其最终结果都是要让结点的纯度越来越高。

4.2 划分选择(即评估指标这些)

        在介绍具体的参数指标之前,先对涉及到的一些基本概念进行梳理。

  • 熵:一种事物的不确定性叫做熵。
  • 信息:信息是用来消除随机不定性的东西,获取信息的过程一般是熵减小的过程。
  • 噪音:不能消除某人对某件事情不确定性的事物。
  • 数据:数据是由信息和噪音组成。因此数据不一定是有效的。

西瓜书第四章--决策树_第2张图片

接下来将介绍具体的参数指标。

4.2.1 信息增益

       “信息熵”是用来衡量样本集合纯度的一种常用指标。假定当前样本集合D中第k

类样本所占比例为pk,则D的信息熵定义为:

西瓜书第四章--决策树_第3张图片

 

 该值越小,表示纯度越高。

          假定离散属性a有V个可能的取值,若使用a对样本集D进行划分,便会得到V个分支节点,其中第v个分支节点包含了D中所有在属性a中取值为a^v的样本,记为D^{v}。接下来对不同分支节点赋予权重\left | D^{v} \right |/\left | D \right |,即样本数越多的分支节点影响越大。我们便可计算出使用属性a对样本D划分所获得的“信息增益”:

西瓜书第四章--决策树_第4张图片

            一般来说,信息增益越大,意味着使用属性a来划分所获得的“纯度提升”越大。著名的ID3决策树学习算法就是以信息增益为准则来选择划分属性的。

4.2.2 增益率

          实际上,信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好带来的不利影响,我们引入“增益率”来选择划分属性,常见的算法有C4.5决策树算法。增益率定义如下:

西瓜书第四章--决策树_第5张图片

            其中IV(a)是属性a的固有值,只有一个取值。且一般属性的可能取值越多,其值一般越大。其计算公式如下:

             值得注意的是,增益率准则对于可取值数目较少的属性有所偏好,因此C4.5算法并不是直接选择增益率最大的作为最优划分属性,而是结合信息增益,先找出信息增益高于平均水平的属性,再从中选择增益率最高的。

4.2.3 基尼指数

           基尼指数也是用来衡量数据集D纯度的度量标准之一。著名的算法有CART决策树。基尼指数的计算公式如下:

西瓜书第四章--决策树_第6张图片

             从公式上直观来理解,可以看出基尼指数反映了从数据集中随机抽取两个样本,其类别标记不一样的概率。因此基尼值越小越好。

              属性a的基尼指数定义为:

西瓜书第四章--决策树_第7张图片

             最终我们选择基尼指数最小的属性作为最优划分属性。

             补充:CART算法是假设决策树为二叉树,既能用做分类也能用作回归,决策树的生成式递归的构建二叉树的过程,对回归树采用平方误差最小化准则,对分类树采用基尼指数最小化准则,进行特征选择,从而生成二叉树。

4.3 剪枝处理

        在学习过程中,决策树可能会把训练集自身的一些特点作为所有数据都具有的一般性质而导致过拟合,而剪枝是决策树学习算法中用来对付“过拟合”的主要手段,其主要包括“预剪枝”和“后剪枝”,具体介绍如下:

4.3.1 预剪枝

          预剪枝是在树生成过程中采取的一种策略。在分支过程中,预剪枝会对划分前后的泛化性能进行估计,如果划分后的泛化性能要高于划分之前,则应该进行这个划分,否则不用划分,即秉承着能不分就不分的原则。

          注:结点标签的判断是遵循少数服从多数原则,例如,在某一节点上,好瓜:坏瓜=2:1,则说明好瓜的数量>=坏瓜,该结点被判断为好瓜,以此再和真实标签对比,即可求出其泛化性能。

         可以看出,预剪枝不仅降低了过拟合的风险,而且显著减小了决策树的训练和测试时间开销;但同时,有些分支的划分虽不能提升泛化性能,但在其基础上进行的后续划分却有可能导致性能显著提升,且预剪枝基于“贪心”本质禁止这些分支展开,也带来了欠拟合的风险。

 

 4.3.2 后剪枝

           后剪枝和预剪枝策略恰恰相反,后剪枝是先生成一颗完整的决策树,再从叶节点向前(从后到前)依次以泛化性能为基础来考察每一个节点,若删除该节点能使泛化性能提高,则删除,否则不删,秉承着“能保留就保留”的原则。

            可以看出,后剪枝比预剪枝决策树保留了更多的分支,一般情况下,后剪枝决策树欠拟合的风险很小,泛化性能往往优于预剪枝决策树。但由于后剪枝是在生成决策树之后再从后向前对所有非叶节点进行逐一考察,因此其训练时间比预剪枝要长很多。

4.4 连续与缺失值

4.4.1 连续值处理 

           上述提到的属性均为离散型,那么对于连续型数据应该如何处理使其应用到决策树模型上呢?此时,连续属性离散化技术便派上用场了,最简单的策略是采用二分法将连续型数据划分为两个区间,这也是C4.5决策树常用的处理机制。

            划分点怎么选择的呢?

             给定样本集D和连续属性a,假定a在D上出现了n个不同的取值,将这个值按照大小排序,并基于t可将D划分为子集D_{t}^{-}D_{t}^{+},候选划分点集合如下:

西瓜书第四章--决策树_第8张图片

               这样我们便可遍历所有的Ta,找出能使信息增益最大/基尼指数最小的划分点。 

 

4.4.2 缺失值处理

          在现实任务中常会遇到不完整的样本,即样本的某些属性值缺失。若仅使用无缺失值的样本进行学习,会导致信息的极大浪费。因此,我们如何在某些属性值缺失的情况下划分属性选择呢?

         常见的是通过引入一个\rho来表示无缺失值样本在整体样本中所占的比例来解决的。先用没有缺失值的部分样本进行计算(如信息增益),计算得到结果后便采用\rho来乘以该信息增益。(可以这样理解,加入部分缺失样本后,样本中的信息量减小了,不确定性增加了,因此信息增益的值肯定变小。)

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(西瓜书)