版权声明:本文为博主原创文章,未经博主允许不得转载https://blog.youkuaiyun.com/pxhdky/article/details/84203421
在上一篇博客【机器学习】决策树详解(ID3、C4.5)中,我们详细描述了决策树的原理、划分准则、生成、剪枝、连续值处理、缺失值处理,这篇博客我们主要讲述决策树算法中的CART算法。
1. CART算法
分类与回归树(Classification and regression tree,CART)模型既可用于分类,也可用于回归。
CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,左分支是取值为“是”的分支,右分支是取值为“否”的分支,这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有限个单元,并在这些单元上确定预测的概率分布,也就是在输入给定的条件下输出的条件概率分布。
2. CART生成
CART生成就是递归地构建二叉决策树的过程,对回归树用平方误差最小化准则,对决策树用基尼系数最小化准则,进行特征选择,生成二叉树。
与ID3和C4.5不同的是,CART构建的是二叉树,所以在划分选择时,ID3和C4.5只需要选择最优划分特征,而CART不仅需要选择最优划分特征,还需要选择特征的最优划分点。
一棵回归树对应着输入空间的一个划分以及在划分单元上的输出值。假设已经把输入空间划分为个单元
,并且在每个单元
上有一个固定的输出值
。于是回归树模型可以表示为:
(1)
其中,。
当输入空间的划分确定时,可以用平方误差来表示回归树对于训练数据的预测误差,用平方误差最小的准则求解每个单元上的最优输出值。
对于一个固定的切分变量,切分点
按照特征
的值将输入空间划分为两个区域
,
。如果
是连续特征,则将输入空间划分为
和
。如果
是离散特征,则将输入空间划分为
和
。
2.1回归树生成
为了寻找最优切分变量和最优切分点
,需要遍历所有变量
,并对每一个切分变量
扫描其所有切分点,找到该变量的最优切分点
,以构成
对。然后在所有的
对中找到最优的
对,也就是求解以下公式:
(2)
找到最优切分变量和最优切分点
之后,区域
、
的最优输出值
就是
上所有输入样本
对应的输出
的均值,即:
(3)
接下来,对每个区域都重复上述划分过程,直到满足停止条件为止,这样就生成了一棵回归树。这样的回归树通常称为最小二乘回归树(最小二乘回归树)。
2.2分类树生成
分类树和回归树唯一的区别在于,分类树采用基尼系数作为划分准则,对的求解公式也就变成了:
(4)
3. CART算法流程
输入:训练集,特征集
,阈值
。
过程:函数
1.生成结点;
2.如果中样本全部具有相同输出值
,则置
的输出值为
;并返回
;
3.如果或者
中所有样本在
上取值都相同,则将
置为叶结点,其输出为
中样本数最多的类或者
中所有样本的平均值,返回
;
4. (与上篇中提到的ID3和C4.5相比,只有这一步有区别)否则,遍历中所有变量,并对每一个切分变量扫描所有其切分点,将输入空间划分为两个区域
,
,找到该变量的最优切分点
,构成一个
对。然后在所有的
对中找到最优的
对。
(1)对于回归树而言,求解:
根据选定的最优划分两个子区域,并决定相应的输出值:
(2)对于分类树而言,求解:
根据选定的最优划分两个子区域,并将类别标记为其样本数最多的类。
5.如果特征的不确定性提升(如信息增益,信息增益比)小于阈值
,则将
置为叶结点,返回
;
6.否则,每个子区域对应构建一个子结点,其输出为样本数最多的类或者所有样本的平均值,返回结点
及其子结点构成的树;
7.最后,对两个分支结点,以为训练集,
为特征集,递归调用
,得到子树
,其并将结合到
上。
输出:一棵以为根结点的回归树
或者分类树。
参考文献:
1.《统计学习方法》第五章决策树——李航