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) 的最优子树。不断增大 α ,得到新的区间,直到得到根结点树。
如何得到最优解
利用独立的验证数据集,对子树序列中子树分别计算平方方差损失或者基尼系数,其中值最小的就是最优解。