CART
分类与回归树(classification and regression tree)既可以用在分类,也可用在回归,是在给定输入随机变量 条件下输出随机变量 的条件概率分布的学习方法。同样的,CART需要生成和剪枝(pruning)。
1.CART是二叉树,每个非叶子节点都有两个孩子。等于递归地构建二叉决策树。可用作回归或分类。
2.对回归树,用平方误差最小化,对分类树,用基尼指数最小化。
很想说虽然使用这些模型或者之后的集成方法,在实操中我们只要调库喂数据就能够完成,底层的工作机理完全不会展示出来,但是我认为了解这些原理是非常有必要的。
生成CART
1. Regression Tree
对于数据集{
},其中
是连续变量,我们考虑如何实现回归树。一个Regression Tree对应着特征空间的一个划分以及在划分单元上的输出值,假设我们将输入空间划分为
单元
,并且在每个单元上都有一个固定的输出值
,这样回归树模型就可表示为
即对于输入模型的输出。
当输入空间的划分确定时,可以用平方误差来表示训练误差,即
用平方误差最小化的准则来求解每个单元上的最优输出值,对
至于这些region怎么划分,用的是启发式的方法。以下便是最小二乘回归树的生成方法:
1. 选择最优切分变量 和切分点 ,求解
遍历变量
,对固定的切分变量
扫描切分点
,使上式达到最小值。
2. 用选定的 划分区域,并决定相应的输出值:
3. 并继续对两个子区域递归调用1和2,直到满足停止条件。
4. 划分为 个决策区域,生成回归树
是划分变量,即是算法开始要选择划分
的数据的特征。
就是想在这个区域中所划分的boundary,即切分点。
具体的切分思路我看了李航的统计学习方法后感觉未免有点啰嗦了,尤其是上面那么多
的式子是在是看得人头疼;但是看示例吧,又觉得不得要领。
特征的切分可以用这个简单的例子来看,大家可以把训练集看做一张excel表格,横排是实例,纵列是特征或属性:
1 2 3
2 3 8
6 4 10
那么如果我想从特征0(第一列)以切分点为3,那么我就可以分为
1 2 3
2 3 8
和
6 4 10
这两个区域。因为上面两个实例,其特征0对应的值小于3,下面的实例大于3嘛。这就是一种划分。可见特征和切分点的组合也可以是很多很多的,CART要找到最优的划分特征和划分点,划分之后再递归地….最优的话,遍历所有输入变量来找最优切分特征和最优切分点…也就是上面步骤1的那个超长的式子.其中
都是该区域内对应的数据集的
的平均值。
找到最优划分之后,集合就如同上面那个只有三个特征和三个实例额数据集那样,划分成了两个部分。我们只需递归的进行划分即可,直到满足条件为止。到最后,每个划分区域的值都是对应的平均值。最后我们就得到了开头的回归树模型。
2. Classification Tree
先介绍下基尼指数吧,它和信息增益、信息增益率同为分类时决定如何分裂的一种指标。TODO