cart回归树

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最小二乘回归树生成算法: 1)依次遍历每个特征j,以及该特征的每个取值s,计算每个切分点(j,s)的损失函数, 选择损失函数最小的切分点。
2)使用上步得到的切分点将当前的输入空间划分为两个部分
3)然后将被划分后的两个部分再次计算切分点,依次类推,直到不能继续划分。 4)最后将输入空间划分为M个区域R1,R2,…,RM,生成的决策树为:
例如,当s=1.5时,R1={1},R2={2,3,...,10},c1=5.56,c2=7.50,则
现将s及m(s)的计算结果列表如下:
由上表可知,当x=6.5的时候达到最小值,此时R1={1,2,...,6},R2={7,8,9,10}, c1=6.24,c2=8.9,所以回归树T1(x)为:
三.CART的生成 CART决策树的生成就是递归的构建二叉树,但是针对分类和回归使用的策略是 不一样的,对于回归树,使用的是平方误差最小准则;而对于分类树,使用的是 基尼指数最小化准则。 1.回归树的生成 假设X和Y分别是输入和输出变量,并且Y是连续变量,训练数据集给定,
一个回归树是对应着输入空间(特征空间)的一个划分以及在划分单元上的输 出之,此处假设已将输入空间划分为M个单元R1,R2,R3......Rm,并在每一个单 元Rm上有固定的输出值Cm,那么回归树的模型则可以表示为:
例2:
下面我们将利用上面的数据对年龄进行预测。 首先将j的属性选为职业,则有三种划分情况{“老师”,“学生”}、{“上 班族”}以及{“老师”,“上班族”}、{“学生”},最后一种为{“学生”, “上班族”}、{“老师”} (1)第一种情况R1={“学生”},R2={“老师”,”上班族”}
1 剪枝,形成子树序列
在剪枝,将α从小增大, 产生一系列的区间(ai,ai+1),i=0,1,2......n的最优子树序列{T0,T1......Tn},序 列中的子树是嵌套的,这句的意思是不同α的产生的子树是完整最优子树一 部分。
具体的,从整体树T0开始剪枝,对T0的任意内部结点t,以t为单结点树的损 失函数是
这样一来,对于回归树,问题应该就只剩下如何进行特征空间的划 分了,这里采用的是启发式的方法,选择第j个变量x(j)和它对应的取 值s,作为切分变量和切分点,定义两个区域:
就是利用切分变量和切分点划分成两个区域。
然后寻找最优切分变量j和切分点s,求解以下公式:
当j固定时,可以找到最优的切分点s,然后遍历所有的输入变量,找到最 优的切分点j,构成一个(j,s)对,依次将输入空间划分,重复上述过程, 直到划分完成为止,这样就形成了一颗回归树。
二.算法步骤
CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,左分支是取 值为“是”的分支,右分支是取值为“否”的分支。这样的决策树等价于递归地二 分每个特征,将输入空间即特征空间划分为有限个单元,并在这些单元上确定预测 的概率分布,也就是在输入给定的条件下输出的条件概率分布。
CART算法由以下两步组成:
一.CART算法的基本概念
1.概念
CART算法(classification and regression tree)分类和回归算法,是 一种应用广泛的决策树学习方法,既然是一种决策树学习方法,必然也满 足决策树的几大步骤,即: 特征的选择 决策树的生成 决策树的剪枝 三大步骤,CART算法既可以用于分类还可以用于回归。
用f1(x)拟合训练数据的残差见下表,表中r2i=yi-f1(xi),i=1,2,...,10 第2步求T2(x)方法与求T1(x)一样,只是拟合的数据是上表的残差,可以得到:
继续求得
可以用拟合训练数据的平方损失误差等来作为结束条件。此时 假设此时已经满足误差要求,那么f(x)=f6(x)即为所求的回归树。
2 在所有可能的特征以及所有可能的值里面选择基尼指数最小的特征及其 切分点作为最优的特征及切分点,从结点生成两个子结点,将训练数据集 分配到子结点中去
3 递归的调用1,2 直到满足停止的条件
4 生成分类决策树
3.CART剪枝
CART剪枝算法首先从生成算法产生的决策树T0底端开始不断的剪枝, 直到T0的根结点,形成子树序列{T0,T1,T2,T3......Tn}, T0就是没剪的,T1就是 剪了一个叶结点的,T2就是又剪了一个叶子节点的; 然后通过交叉验证法在独立的验证数据集上对子树序列进行测试,从中选择 最优子树,具体操作如下:
2在剪枝得到的子树序列T0,T1,....Tn中通过交叉验证选取最优子树
利用平方误差准则或者是基尼指数准则,在新的验证集中分别测试子树序 列,选取里面最优的子树进行输出,便是裁剪之后的子树。
例1: 这里N1、N2是R1、R2的样本点数。
求训练数据的切分点,根据所给数据,考虑如下切分点: 1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5。 对各切分点,不难求出相应的R1、R2、c1、c2及
2.算法思想
CART算法采用的是一种二分递归分割的技术,将当前样本分成两个子样 本集,使得生成的非叶子节点都有两个分支。因此CART实际上是一颗二叉 树。
3.CART树的特点
CART不是一颗二叉树
CART既是分类树又是回归树
当CART是分类树的时候,采用GINI值作为分裂节点的依据,当CART作 为回归树的时候,使用样本的最小方差作为分裂节点的依据。
基尼指数表示集合D的不确定性,而基尼指数Gini(D,A)表示经A=a分割后 集合的不确定性,基尼指数越大,集合不确定性就越大,这跟熵的概念类 似。
分类树生成算法总结
• 输入: 训练数据集D,停止计算条件 • 输出:CART 分类树
1.训练数据集为D,计算现有特征对训练数据集的基尼指数,此时对于每一 个特征A,对其可能取得每一个值a,根据此值将训练样本切分为D1和D2两 部分,然后根据下式计算A=a基尼指数
决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大; 决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时损失函数 最小作为剪枝的标准。 CART决策树的生成就是递归地构建二叉决策树的过程。CART决策树既可以用于 分类也可以用于回归。本文我们仅讨论用于分类的CART。对分类树而言,CART 用Gini系数最小化准则来进行特征选择,生成二叉树。 CART生成算法如下: 输入:训练数据集D,停止计算的条件: 输出:CART决策树。
根据训练数据集,从根结点开始,递归地对每个结点进行以下操作,构建二 叉决策树:
设结点的训练数据集为D,计算现有特征对该数据集的Gini系数。此时,对 每一个特征A,对其可能取的每个值a,根据样本点对A=a的测试为“是”或 “否”将D分割成D1和D2两部分,计算A=a时的Gini系数。 在所有可能的特征A以及它们所有可能的切分点a中,选择Gini系数最小的特 征及其对应的切分点作为最优特征与最优切分点。依最优特征与最优切分点, 从现结点生成两个子结点,将训练数据集依特征分配到两个子结点中去。 对两个子结点递归地调用步骤l~2,直至满足停止条件。 生成CART决策树。 算法停止计算的条件是结点中的样本个数小于预定阈值,或样本集的Gini系 数小于预定阈值(样本基本属于同一类),或者没有更多特征。
这个公式将特征空间进行了一定的划分,给一个划分赋予对应的值,那么当一 个新的样本点到来的时候,根据它所属的单元赋予对应的值。
另一方面,当输入空间的划分确定,便可以用平方误差来表示回归 树对训练数据的误差:
利用平方误差最小的准则来求解每个单元上的最优值,直观理解, 根据平方误差最小准则,这个最优值其实就是本单元上所有输入值 对应的y的平均值,因为只有这样才能使得平方误差最小,公式表达 则是:
CART是在给定输入随机变量X的条件下输出随机变量Y的条件概率分 布的学习方法,CART 有个特性就是其假设决策树全部是二叉树,也就是 说其结点只有两种选择,‘是’和‘否’,说专业点就是决策树递归的二 分每个特征,最终得到决策树,通过不断的划分,将特征空间划分为有限 个单元,并在这些单元上确定预测的概率分布。
其中cm为所在区域的输出值的平均。
总结:
此方法的复杂度较高,尤其在每次寻找切分点时,需要遍历当前所有特征的所有 可能取值,假如总共有F个特征,每个特征有N个取值,生成的决策树有S个内部 节点,则该算法的时间复杂度为:O(F*N*S)。
2 分类树的生成 分类树的策略用的是基尼指数,那么首先介绍基尼指数的概念:
对于二分类问题,它的基尼指数中,相加的两项完全一样,即 给定一个训练集, 假设训练集中有K类,C1,C2,C3......Ck 那么其基尼指 数为:
和上式的第二项对应,更进一步,如果训练样本被特征A的是否取某一 个值a而被分成D1和D2两部分,那么在特征A的条件下的基尼指数为:
相当于对根据特征A划分的两个小集合分别求基尼指数然后根据经验概 率取期望得到特征A下的D的基尼指数。
相关文档
最新文档