树模型描述:
从根节点开始,使用某种特征选取准则,如信息增益,选取剩余特征作为节点,树不一定是二叉树,每一层的节点个数为父节点特征的distinct数,每个节点对应的样本数小于父节点对应的样本数,当节点特征对应的信息增益小于某个值或者没有剩余特征时,选择该节点对应样本中最大的类别作为叶节点,停止这个分支的构建。
例题:
参考《统计学习方法》李航 例5.3
损失函数:
一棵构建完成的树,其损失函数定义为:
T为叶节点,H为对应叶节点上的经验熵,越小越好,k为该叶节点对应样本集中的类别数:
所以,这个损失函数C形式上与经典线性回归的形式一样,由误差和复杂度(叶节点数量)组成,使他们两个都尽可能小,其优化方式不能按传统线性回归来优化,这里介绍剪枝法优化。
剪枝:
考虑一组叶节点回退之前和之后的整体树的损失值,C(before)和C(after),若剪枝后损失更小,则剪枝,重复这个过程。
回归树(二叉切分):
基本思想:
在剩余的特征变量中寻找最优的特征和该特征下的切分点,对数据集进行空间划分,最后将输入空间划分为M个,每个空间下的最优输出值y等于该空间样本输出的均值(求导可得)。
分类树(二叉切分):
基本思想:
类似于经典树模型的生成,区别在于选择最优特征时,还要考虑最优切分点(二叉切分数据),结束条件与经典树模型类似。
分类树与回归树的剪枝:
我们知道,每剪掉一个分支,复杂度更小,参数a相对更大。对于一颗树,设根节点为t。
t单节点的损失为:(每个节点对于一批样本)
t树的损失为:
a接近0时,C(T)小于C(t)(无复杂度约束),a为无穷大时,C(T)大于C(t)(复杂度降到最低,即单节点),中间必有使得两者相等的a值,为:
剪枝过程为:
从下而上(层级),依次裁剪a最小的子树,将剩余树依次标记为T0,T1,……,因为整体树越裁剪复杂度越小,整体树损失函数的a则越大,最后用交叉验证从标记序列中选择最优的树T。