1.CART
分类与回归树(classification and regression tree)是决策树算法的一种,既可以用于分类,也可以用于回归。CART假设决策树是二叉树,其结点特征取值只有“是”和“不是”,这样的决策树相当于递归的二分每个特征,CART算法:
(1)决策树生成:通过训练数据集生成 决策树,越大越好。
(2)决策树剪枝:使用验证数据集对决策树进行剪枝,选出最优的子树,同样是损失函数最小化为目标。
2.CART回归
一个回归树对应着对输入空间(特征空间)的划分以及划分的单元上的输出。
回归树的生成:
输入随机变量X,Y,Y是连续变量,输入数据集
输入空间可划分为有限个区域R1,R2,⋯,RM,x∈Rm上的输出为cm,所以回归树模型可表示为:
用平方方差sumxi∈Rm(yi−f(xi))2来表示回归树对于训练数据的预测误差,求平方方差最小来求每个区域上最优的输出。易知,Rm上的最优输出c^m=ave(yi|xi∈Rm).
输入空间可以划分,那么如何划分呢?采用启发式算法,对于变量x(j)和它的值s,定义两个区域
求解,
当j给定时,可以求出最优的切分点
3.CART分类
算法大致与ID3及C4.5相同,但是不仅要选取特征,还要选取特征最优二值划分点,两者准则为基尼指数极小化。
基尼指数:假设样本有K类,样本属于第
基尼指数表示数据集D的不确定度,基尼指数越大,不确定度越大,与熵类似。
4.CART剪枝
CART剪枝是一种全局搜索最优的方式,从生成的决策树T0底端开始不断向上剪枝,直到剩下单结点树,形成一个子树序列{T0,T1,⋯,Tn},然后通过交叉验证的方法在独立的验证数据集上对子树集进行测试,得出最优的子树。
如何得到子树序列
Breiman等人证明,可以用递归的方法对树进行剪枝,将α从小增大,α0<α1<⋯<αn<+∞,产生一系列的区间[αi,αi+1),i=0,1,⋯,n,剪枝得到的子树序列对应于区间[αi,αi+1)上的最优子树序列{T0,T1,⋯,Tn}
具体地,从树T0开始剪枝,以t为根结点的树损失函数
t是单结点树
当α=0或α很小时,
当α逐渐增大,直至有一个α满足
此时,定义g(t)=α=Cα(Tt−Cα(t))|Tt|−1,此时t和
因此,对树T0每一个内部结点t计算
进行剪枝,剪枝后的子树为T1并令α1=g(t),则T1是区间[α1,α2)的最优子树。不断增大α,得到新的区间,直到得到根结点树。
如何得到最优解
利用独立的验证数据集,对子树序列中子树分别计算平方方差损失或者基尼系数,其中值最小的就是最优解。