李航统计学习方法-决策树

                                         决策树

        决策树(decision tree)是一种基本的分类与回归方法。本章主要讨论用于分类的决 策树。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它 可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分 布。其主要优点是模型具有可读性,分类速度快。学习时,利用训练数据,根据损失函数 最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。决策树 学习通常包括3个步骤:特征选择、决策树的生成和决策树的修剪。这些决策树学习的思 想主要来源于由Quinlan在1986年提出的ID3算法和1993年提出的C4.5算法,以及由 Breiman等人在1984年提出的CART算法。 本章首先介绍决策树的基本概念,然后通过ID3和C4.5介绍特征的选择、决策树的生 成以及决策树的修剪,最后介绍CART算法

       决策树模型与学习

    定义5.1(决策树) 分类决策树模型是一种描述对实例进行分类的树形结构。决策 树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。 用决策树分类,从根结点开始,对实例的某一特征进行测试,根据测试结果,将实例 分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归地对实例进行 测试并分配,直至达到叶结点。最后将实例分到叶结点的类中。 图5.1是一个决策树的示意图。图中圆和方框分别表示内部结点和叶结点。

   李航统计学习方法-决策树_第1张图片

  可以将决策树看成一个if-then规则的集合。将决策树转换成if-then规则的过程是这样 的:由决策树的根结点到叶结点的每一条路径构建一条规则;路径上内部结点的特征对应 着规则的条件,而叶结点的类对应着规则的结论。决策树的路径或其对应的if-then规则集 合具有一个重要的性质:互斥并且完备。这就是说,每一个实例都被一条路径或一条规则 所覆盖,而且只被一条路径或一条规则所覆盖。这里所谓覆盖是指实例的特征与路径上的 特征一致或实例满足规则的条件。

      决策树还表示给定特征条件下类的条件概率分布。这一条件概率分布定义在特征空间 的一个划分(partition)上。将特征空间划分为互不相交的单元(cell)或区域 (region),并在每个单元定义一个类的概率分布就构成了一个条件概率分布。决策树的 一条路径对应于划分中的一个单元。决策树所表示的条件概率分布由各个单元给定条件下 类的条件概率分布组成。假设X为表示特征的随机变量,Y为表示类的随机变量,那么这 个条件概率分布可以表示为P(Y|X)。X取值于给定划分下单元的集合,Y取值于类的集 合。各叶结点(单元)上的条件概率往往偏向某一个类,即属于某一类的概率较大。决策 树分类时将该结点的实例强行分到条件概率大的那一类去。 图5.2(a)示意地表示了特征空间的一个划分。图中的大正方形表示特征空间。这个 大正方形被若干个小矩形分割,每个小矩形表示一个单元。特征空间划分上的单元构成了 一个集合,X取值为单元的集合。为简单起见,假设只有两类:正类和负类,即Y取值为 +1和–1。小矩形中的数字表示单元的类。图5.2(b)示意地表示特征空间划分确定时,特 征(单元)给定条件下类的条件概率分布。图5.2(b)中条件概率分布对应于图5.2(a) 的划分。当某个单元c的条件概率满足P(Y=+1|X=c)>0.5时,则认为这个单元属于正类, 即落在这个单元的实例都被视为正例。图5.2(c)为对应于图5.2(b)中条件概率分布的 决策树。

 

   李航统计学习方法-决策树_第2张图片

李航统计学习方法-决策树_第3张图片 

决策树学习,假设给定训练数据集D={(X1,Y1),(X2,Y2)……} 其中 为输入实例(特征向量),n为特征个 数,yi∊{1,2,…,K}为类标记,i=1,2,…,N,N为样本容量.学习的目标是根据给定的训练 数据集构建一个决策树模型,使它能够对实例进行正确的分类。

        决策树学习本质上是从训练数据集中归纳出一组分类规则。与训练数据集不相矛盾的 决策树(即能对训练数据进行正确分类的决策树)可能有多个,也可能一个也没有。我们 需要的是一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。从另一个角度 看,决策树学习是由训练数据集估计条件概率模型。基于特征空间划分的类的条件概率模 型有无穷多个。我们选择的条件概率模型应该不仅对训练数据有很好的拟合,而且对未知 数据有很好的预测。

         决策树学习用损失函数表示这一目标。如下所述,决策树学习的损失函数通常是正则 化的极大似然函数。决策树学习的策略是以损失函数为目标函数的最小化。 当损失函数确定以后,学习问题就变为在损失函数意义下选择最优决策树的问题。因 为从所有可能的决策树中选取最优决策树是NP完全问题,所以现实中决策树学习算法通 常采用启发式方法,近似求解这一最优化问题。这样得到的决策树是次最优(suboptimal)的。

        决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分 割,使得对各个子数据集有一个最好的分类的过程。这一过程对应着对特征空间的划分, 也对应着决策树的构建。开始,构建根结点,将所有训练数据都放在根结点。选择一个最 优特征,按照这一特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好 的分类。如果这些子集已经能够被基本正确分类,那么构建叶结点,并将这些子集分到所 对应的叶结点中去;如果还有子集不能被基本正确分类,那么就对这些子集选择新的最优 特征,继续对其进行分割,构建相应的结点。如此递归地进行下去,直至所有训练数据子 集被基本正确分类,或者没有合适的特征为止。最后每个子集都被分到叶结点上,即都有 了明确的类。这就生成了一棵决策树。

          以上方法生成的决策树可能对训练数据有很好的分类能力,但对未知的测试数据却未 必有很好的分类能力,即可能发生过拟合现象。我们需要对已生成的树自下而上进行剪 枝,将树变得更简单,从而使它具有更好的泛化能力。具体地,就是去掉过于细分的叶结 点,使其回退到父结点,甚至更高的结点,然后将父结点或更高的结点改为新的叶结点。 如果特征数量很多,也可以在决策树学习开始的时候,对特征进行选择,只留下对训 练数据有足够分类能力的特征。 可以看出,决策树学习算法包含特征选择、决策树的生成与决策树的剪枝过程。由于 决策树表示一个条件概率分布,所以深浅不同的决策树对应着不同复杂度的概率模型。决 策树的生成对应于模型的局部选择,决策树的剪枝对应于模型的全局选择。决策树的生成 只考虑局部最优,相对地,决策树的剪枝则考虑全局最优。 决策树学习常用的算法有ID3、C4.5与CART,下面结合这些算法分别叙述决策树学 习的特征选择、决策树的生成和剪枝过程。

    特征选择

     特征选择在于选取对训练数据具有分类能力的特征。这样可以提高决策树学习的效 率。如果利用一个特征进行分类的结果与随机分类的结果没有很大差别,则称这个特征是 没有分类能力的。经验上扔掉这样的特征对决策树学习的精度影响不大。通常特征选择的 准则是信息增益或信息增益比。 首先通过一个例子来说明特征选择问题。 例5.1 [1] 表5.1是一个由15个样本组成的贷款申请训练数据。数据包括贷款申请人的4 个特征(属性):第1个特征是年龄,有3个可能值:青年,中年,老年;第2个特征是有 工作,有2个可能值:是,否;第3个特征是有自己的房子,有2个可能值:是,否;第4个 特征是信贷情况,有3个可能值:非常好,好,一般。表的最后一列是类别,是否同意贷 款,取2个值:是,否。

李航统计学习方法-决策树_第4张图片

      希望通过所给的训练数据学习一个贷款申请的决策树,用以对未来的贷款申请进行分 类,即当新的客户提出贷款申请时,根据申请人的特征利用决策树决定是否批准贷款申 请。 特征选择是决定用哪个特征来划分特征空间。 图5.3表示从表5.1数据学习到的两个可能的决策树,分别由两个不同特征的根结点构 成。图5.3(a)所示的根结点的特征是年龄,有3个取值,对应于不同的取值有不同的子 结点。图5.3(b)所示的根结点的特征是有工作,有2个取值,对应于不同的取值有不同 的子结点。两个决策树都可以从此延续下去。问题是:究竟选择哪个特征更好些?这就要 求确定选择特征的准则。直观上,如果一个特征具有更好的分类能力,或者说,按照这一 特征将训练数据集分割成子集,使得各个子集在当前条件下有最好的分类,那么就更应该 选择这个特征。信息增益(information gain)就能够很好地表示这一直观的准则。

       李航统计学习方法-决策树_第5张图片

李航统计学习方法-决策树_第6张图片

李航统计学习方法-决策树_第7张图片

   定义5.2(信息增益) 特征A对训练数据集D的信息增益g(D,A),定义为集合D的经 验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即

     

熵H(Y)与条件熵H(Y|X)之差称为互信息(mutual information)。决策树学习 中的信息增益等价于训练数据集中类与特征的互信息

李航统计学习方法-决策树_第8张图片

 定义5.3(信息增益比) 特征A对训练数据集D的信息增益比gR (D,A)定义为其信息 增益g(D,A)与训练数据集D的经验熵H(D)之比:

    

    决策树的生成

     ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策 树。具体方法是:从根结点(root node)开始,对结点计算所有可能的特征的信息增益, 选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点;再对子结点 递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择 为止。最后得到一个决策树。ID3相当于用极大似然法进行概率模型的选择

    李航统计学习方法-决策树_第9张图片

    李航统计学习方法-决策树_第10张图片

李航统计学习方法-决策树_第11张图片

           决策树的剪枝

  决策树生成算法递归地产生决策树,直到不能继续下去为止。这样产生的树往往对训 练数据的分类很准确,但对未知的测试数据的分类却没有那么准确,即出现过拟合现象。 过拟合的原因在于学习时过多地考虑如何提高对训练数据的正确分类,从而构建出过于复 杂的决策树。解决这个问题的办法是考虑决策树的复杂度,对已生成的决策树进行简化。 在决策树学习中将已生成的树进行简化的过程称为剪枝(pruning)。具体地,剪枝 从已生成的树上裁掉一些子树或叶结点,并将其根结点或父结点作为新的叶结点,从而简 化分类树模型。

       决策树的剪枝往往通过极小化决策树整体的损失函数(loss function)或代价函数 (cost function)来实现。设树T的叶结点个数为||T,t是树T的叶结点,该叶结点有Nt个样 本点,其中k类的样本点有Ntk个,k=1,2,…,K,Ht(T)为叶结点t上的经验熵,a≥0为参数, 则决策树学习的损失函数可以定义为

李航统计学习方法-决策树_第12张图片

式(5.14)中,C(T)表示模型对训练数据的预测误差,即模型与训练数据的拟合程度,|T| 表示模型复杂度,参数a≥0控制两者之间的影响。较大的a促使选择较简单的模型(树), 较小的a促使选择较复杂的模型(树)。a=0意味着只考虑模型与训练数据的拟合程度, 不考虑模型的复杂度。 剪枝,就是当a确定时,选择损失函数最小的模型,即损失函数最小的子树。当a值确 定时,子树越大,往往与训练数据的拟合越好,但是模型的复杂度就越高;相反,子树越 小,模型的复杂度就越低,但是往往与训练数据的拟合不好。损失函数正好表示了对两者 的平衡。 可以看出,决策树生成只考虑了通过提高信息增益(或信息增益比)对训练数据进行 更好的拟合。而决策树剪枝通过优化损失函数还考虑了减小模型复杂度。决策树生成学习 局部的模型,而决策树剪枝学习整体的模型。 式(5.11)或式(5.14)定义的损失函数的极小化等价于正则化的极大似然估计。所 以,利用损失函数最小原则进行剪枝就是用正则化的极大似然估计进行模型选择。 图5.6是决策树剪枝过程的示意图。

下面介绍剪枝算法:

    李航统计学习方法-决策树_第13张图片

李航统计学习方法-决策树_第14张图片

                 CART算法

   分类与回归树(classification and regression tree,CART)模型由Breiman等人在1984 年提出,是应用广泛的决策树学习方法。CART同样由特征选择、树的生成及剪枝组成, 既可以用于分类也可以用于回归。以下将用于分类与回归的树统称为决策树。 CART是在给定输入随机变量X条件下输出随机变量Y的条件概率分布的学习方法。 CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,左分支是取值为“是”的 分支,右分支是取值为“否”的分支。这样的决策树等价于递归地二分每个特征,将输入空 间即特征空间划分为有限个单元,并在这些单元上确定预测的概率分布,也就是在输入给 定的条件下输出的条件概率分布。 CART算法由以下两步组成: (1)决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大; (2)决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时用损 失函数最小作为剪枝的标准

     李航统计学习方法-决策树_第15张图片

遍历所有输入变量,找到最优的切分变量j,构成一个对(j,s)。依此将输入空间划分为两个 区域。接着,对每个区域重复上述划分过程,直到满足停止条件为止。这样就生成一棵回 归树。这样的回归树通常称为最小二乘回归树(least squares regression tree),现将算法 叙述如下:

    算法5.5(最小二乘回归树生成算法)

    输入:训练数据集D;

     输出:回归树f(x)。

     在训练数据集所在的输入空间中,递归地将每个区域划分为两个子区域并决定每个子 区域上的输出值,构建二叉决策树:

      李航统计学习方法-决策树_第16张图片

   李航统计学习方法-决策树_第17张图片

   李航统计学习方法-决策树_第18张图片

图5.7显示二类分类问题中基尼指数Gini(p)、熵(单位比特)之半 H(p)和分类误差率 的关系。横坐标表示概率p,纵坐标表示损失。可以看出基尼指数和熵之半的曲线很接 近,都可以近似地代表分类误差率。

李航统计学习方法-决策树_第19张图片

           CART剪枝

    CART剪枝算法从“完全生长”的决策树的底端剪去一些子树,使决策树变小(模型变 简单),从而能够对未知数据有更准确的预测。CART剪枝算法由两步组成:首先从生成 算法产生的决策树T0底端开始不断剪枝,直到T0的根结点,形成一个子树序列{T0,T1 , …,Tn};然后通过交叉验证法在独立的验证数据集上对子树序列进行测试,从中选择最优 子树。

    李航统计学习方法-决策树_第20张图片

   李航统计学习方法-决策树_第21张图片

     李航统计学习方法-决策树_第22张图片

李航统计学习方法-决策树_第23张图片

   

你可能感兴趣的:(李航统计学习方法,决策树)