机器学习之CART树

CART树

  • 1、Cart树介绍
  • 2、Cart树生成
  • 3、回归树
  • 4、分类树
    • 4.1 分类树原理
    • 4.2 分类树算法步骤
    • 4.3 案例
  • 5、Cart树总结

1、Cart树介绍

分类回归树(CART,Classification And Regression Tree)算法是一种决策树分类方法。
它采用一种二分递归分割的技术,分割方法采用基于最小距离的基尼指数估计函数,将当前的样本集分为两个子样本集,使得生成的的每个非叶子节点都有两个分支。因此,CART算法生成的决策树是结构简洁的二叉树。
其核心思想与ID3和C4.5相同,主要的不同处在于CART在每一个节点上都采用二分法,即每个节点都只能有两个子节点,最后构成的是二叉树。
Cart算法步骤:
1.决策树的生成:基于训练数据集生成决策树,生成的决策树要尽量大。
2.决策树的剪枝:用验证数据集对以生成的树进行剪枝并选择最优子树。这时用损失函数最小作为剪枝标准。

2、Cart树生成

决策树的生成就是递归地构建二叉决策树的过程,对回归树用平方误差最小准则,对分类树用基尼指数最小化原则,进行特征选择,生成二叉树。

3、回归树

如果目标是连续变量,则是Regression Tree回归树。CART树是二叉树,不像多叉树那样形成过多的数据碎片。
对于连续变量X(x1…xn)如何处理?
首先将值排序,分别取其两相邻值的平均值点作为分隔点,将树一分成左枝和右枝,不断扫描,进而判断最佳分割点。特征值小于分裂值就走左子树,或者就走右子树。

下面从数学层面做推导:
假设X与Y分别为输入和输出变量,并且Y是连续变量,给定训练数据集:
在这里插入图片描述

考虑如何生成回归树。
一个回归树对用着一个特征空间的一个划分及在划分单元上的是输出值。假设已输入特征空间划分为M个单元R1,R2…Rm,并且在每个单元上有一个固定的输出类别Cm,于是我们把回归树表示为:
在这里插入图片描述

损失函数:
在这里插入图片描述

表示回归树对于训练数据的预测误差,用平方误差最小的准则求解每个单元上的最优输出值。我们考虑特征空间的第m个单元上的的最优值,它是上的所有输入实例对应输出的的均值:(连续值通常的最优值都是取均值)
在这里插入图片描述

问题是怎么样对输入空间进行划分,我们采用启发式的方法;选择第j个变量和它取的值s,作为切分变量(splitting variable)和切分点(splitting point),并定义两个区域:
在这里插入图片描述
然后我们需要寻求切分变量j和最有优切分点s,求解如下方程:
在这里插入图片描述
对固定输入变量j可以寻找最优切分点s:
在这里插入图片描述
遍历所有的输入变量,找到最优的切分变量j,构成一个对(j,s),依次将输入空间划分为两个区域。
接着对每个区域重复上述过程,直到满足停止条件为主。这样就生成了一颗回归树,也称为最小二乘回归树(least square regression tree)。
为什么是平均值?
均方误差的目标函数最优值(取定值)是均值
机器学习之CART树_第1张图片

4、分类树

4.1 分类树原理

如果目标变量是离散变量,则是classfication Tree分类树。
分类树是使用树结构算法将数据分成离散类的方法。
(1) 分类树两个关键点:
将训练样本进行递归地划分自变量空间进行建树
用验证数据进行剪枝。
(2)对于离散变量X(x1…xn)处理:
分别取X变量各值的不同组合,将其分到树的左枝或右枝,并对不同组合而产生的树,进行评判,找出最佳组合。如果只有两个取值,直接根据这两个值就可以划分树。取值多于两个的情况就复杂一些了,如变量年纪,其值有“少年”、“中年”、“老年”,则分别生产{少年,中年}和{老年},{上年、老年}和{中年},{中年,老年}和{少年},这三种组合,最后评判对目标区分最佳的组合。因为CART二分的特性,当训练数据具有两个以上的类别,CART需考虑将目标类别合并成两个超类别,这个过程称为双化。这里可以说一个公式,n个属性,可以分出(2^n-2)/2种情况。

4.2 分类树算法步骤

CART分类树生成算法:
输入:训练数据集D,停止计算的条件;
输出:CART决策树
根据训练数据集,从根节点开始,递归地对每个节点进行以下操作,构建二叉决策树:
(1)设结点的训练数据集为D,计算现有特征对该数据集的基尼指数,此时对每一个特征A,对其可能取得每个值a,根据样本点对A=a的测试为“是”或“否”将D分割成D1和D2两部分,利用集合的基尼指数公式计算A=a的基尼指数。
在这里插入图片描述
(2)在所有可能的特征A(切分变量)以及他们的所有可能的切分点a中,选择基尼指数最小的特征及其对应的切分点作为最优特征与最优切分点。依照最优特征和最优切分点,从现结点生成两个子节点,将训练数据集依特征分配到两个子节点中去。
(3)对两个子节点递归地调用(1),(2),直到满足停止条件。
(4)生成CART决策树。

4.3 案例

机器学习之CART树_第2张图片
应用上述数据集,应用CART算法生成决策树。
分析:首先计算各特征的基尼指数,选择最优特征以及其最优切分点。我们以A1,A2,A3,A4表示年龄、有工作、有自己的房子和信贷4个特征,并以1,2,3表示年龄的值为青年、中年、老年,以1、2表示有工作和有自己的房子的值为是和否,以1、2、3表示信贷情况的值为非常好、好和一般。
求特征A1的基尼指数:
在这里插入图片描述
优于Gini(D,A1=1)和Gini(D,A1=3)相等,且最小,所以A1=1和A1=3都可以选作最优切分点。
求特征A2和A3的基尼指数:
在这里插入图片描述
由于A2和A3只有一个切分点,所以他们就是最优切分点。
求解特征4的基尼指数:
在这里插入图片描述
Gini(D,A4=3)最小,所以A4=3为A4的最优切分点。
在A1,A2,A3,A4几个特征中,Gini(D,A3=1)=0.27最小,所以选择A3为最优特征,A3=1为其最优切分点。于是根节点生成两个子节点,一个是叶节点,对另一个结点继续使用以上方法在A1,A2,A3中选择最优特征及其最优切分点,结果是A2=1,依次计算得知,所有结点都是叶节点。
该例子按照CART算法和ID3算法生成的决策树完全一致的。下图我们只拿A3和A2作为最优划分来切分数据集。
机器学习之CART树_第3张图片

5、Cart树总结

创建分类树递归过程中,CART每次都选择当前数据集中具有最小Gini信息增益的特征作为结点划分决策树。ID3算法和C4.5算法虽然在对训练样本集的学习中可以尽可能多地挖掘信息,但其生成的决策树分支多、规模较大,CART算法的二分法可以简化决策树的规模(叶子结点个数),提高生成决策树的效率。对于连续特征,CART也是采取和C4.5同样的方法处理。为了避免过拟合(Overfitting),CART决策树需要剪枝(后剪枝)。预测过程当然也就十分简单,根据产生的决策树模型,延伸匹配特征值到最后的叶子节点即得到预测的类别。

你可能感兴趣的:(机器学习)