决策树CART以及剪枝

上一篇文章写了C4.5和ID3,这一篇介绍另外一种常用的决策树CART,CART是后续学习GBDT,Xgboost需要用到的。

参考资料:

决策树剪枝:https://blog.csdn.net/wjc1182511338/article/details/76793164?locationNum=6&fps=1

《统计学习方法》

决策树学习资料:https://blog.csdn.net/sb19931201/article/details/52491430

CART(classfication and regression tree)分类回归树,既可以用于分类也可以用于回归,

CART假设决策树是二叉树(二叉树,每个结点至多有两个子结点),左边是“是”,右边是“否”,这样的决策树相当于递归的二分每一个特征。

CART树包括两部分呢:树的生成和树的剪枝

1.首先介绍树的生成

CART用于分类用基尼系数最小化准则,用于回归是平方误差最小化

1.1回归树的生成:

决策树CART以及剪枝_第1张图片

解释一下:(1)中的切分变量j即特征,选择哪个特征进行切分,切分点s即切分的阈值,比如我选择切分变量是个数(特征),切分点是3(s),那么大于3的是在区域,小于等于3的在一个区域,进行最小化选择最优

1.2.分类树:

首先介绍下基尼系数:

 

决策树CART以及剪枝_第2张图片

决策树CART以及剪枝_第3张图片

注意:注意看CART的停止条件

2 CART剪枝

CART剪枝包括两部分,剪枝获得子树序列,对子树序列进行交叉验证,选择最优子树。

 

决策树CART以及剪枝_第4张图片

在看CART剪枝前,其实你需要理解的是CART剪枝和ID3以及C4.5不同,CART剪枝是不知道α的

对于(3)是的理解,在计算整体的损失函数时,这个内部节点以外的值都没变,只有这个内部节点的局部损失函数改变了,因此我们本需要计算全局的损失函数,但现在只需要计算内部节点剪枝前和剪枝后的损失函数。换句话说因为剪枝的时候,对于剪枝那个结点,外部的误差是不会变的,所以剪枝的时候仅仅考虑剪枝结点的子树,若剪枝,那么就剩下该结点为根结点(对于的t),如果不剪枝(即Tt)

可以看看如下公式理解一下

决策树CART以及剪枝_第5张图片

对于α,只要α 大于这个值时,一定有Cα(t)

  1. 关于(3)中公式的理解,博主Mrtriste写的很好,我们可以这么理解,分母是叶子结点较少的数量,分子是误差减小的数量,比值是误差减小率,如果误差减小率很小,那么还不如不剪枝呢。
  2. 关于(3)中公式为什么剪去g(t)最小的Tt

g(t)代表每个叶子节点带来的误差减小量,如果g(t)越小,也就是增加叶子带来的误差减小量越小,也就是增加这个叶子节点的作用越小,花那么大的功夫增加叶子节点,误差才减小那么一点点,还不如不要,因此优先剪去g(t)最小的t

后面应该都比较好理解,关键是明白:在计算整体的损失函数时,这个内部节点以外的值都没变,只有这个内部节点的局部损失函数改变了,因此我们本需要计算全局的损失函数,但现在只需要计算内部节点剪枝前和剪枝后的损失函数。

在计算α时,结点t是常量。

 

你可能感兴趣的:(树)