机器学习-决策树--基础知识总结

1.决策树定义
父节点和子节点是相对的,说白了子节点由父节点根据某一规则分裂而来,然后子节点作为新的父亲节点继续分裂,直至不能分裂为止。而根节点是没有父节点的节点,即初始分裂节点,叶子节点是没有子节点的节点,如下图所示:
在这里插入图片描述
2.决策树的构建流程:
在这里插入图片描述

这就引出了最重要的问题:
1.数据如何分割
2.怎么选择分割依据的属性
3.什么时候停止分裂

对于1:假设已经选择了一个分割属性,如何分割
若是离散型: 按照属性值对应一个分裂节点
在这里插入图片描述
若是连续型:一般是按照属性进行排序,再分成若干区间,如[0,10]、[10,20]、[20,30]…,一个区间对应一个节 点,若数据的属性值落入某一区间则该数据就属于其对应的节点。
在这里插入图片描述

对于2:分裂属性的选择
决策树采用贪婪思想进行分裂,就是选择可以得到最优分裂结果的属性进行分裂。
在这里插入图片描述

决策树采用 信息增益 和 信息增益率 作为依据
1.信息增益:说白了息增益代表了在一个条件下,信息复杂度(不确定性)减少的程度。
在这里插入图片描述
信息增益 = 熵 - 条件熵

其中Gain表示节点的复杂度,Gain越高,说明复杂度越高。

越大,分的越纯
在这里插入图片描述
(1)熵
在这里插入图片描述
越小,分的越纯
(2)基尼值
在这里插入图片描述
越小,分的越纯

2.信息增益率:
本质: 是在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。
在这里插入图片描述
为什么比信息增益好呢?是因为信息增益倾向于选择分支比较多的分裂属性。
举个栗子:满足什么情况才去玩高尔夫,假设用Day做分裂属性,显然,每一天都可以将样本分开,也就是形成了一颗叶子数量为10,深度只有两层的树,用公式算出来的信息增益是0.9403,增益确实很大,实际来看显然这种属性的分割没意义,类似的还有身份证号等属性。
在这里插入图片描述
导致这种偏差的原因就是特征可以选取的值过多,解决办法自然想出对树分支过多进行惩罚。
在这里插入图片描述

3.停止分裂条件 (先剪枝)
最极端的情况是当节点分裂到只剩下一个数据点时自动结束分裂,但这种情况下树过于复杂。
(1)最小节点数
当节点的数据量小于一定数量时,停止分裂。因为数据量较少时,再做分裂容易强化噪声数据的作用

(2)熵或基尼值小于阈值
过小说明已经纯度已经非常大了,可以极端认为节点分裂出A 100个 B 0个,没有分的必要了
(3)深度到达指定条件

(4)所有属性都用完了,没有可属性可以用来分裂了

                           **剪枝**

剪枝是指将一颗子树的子节点全部删掉,根节点作为叶子节点,以下图为例:
在这里插入图片描述
剪枝修剪分裂前后分类误差相差不大的子树,能够降低决策树的复杂度,降低过拟合出现的概率。

后剪枝:
1.错误率降低剪枝(ID3)
如果一棵子树修剪前后错误率没有下降,就可以认为该子树是可以修剪的。
需要用新的数据集,原因是如果用旧的数据集,不可能出现分裂后的错误率比分裂前错误率要高的情况。由于使用新的数据集没有参与决策树的构建,能够降低训练数据的影响,降低过拟合的程度,提高预测的准确率。

2.悲观剪枝(C4.5)
如果决策树的精度在剪枝前后没有影响的话(剪枝后的误差小于剪枝前精度的上限),则进行剪枝。

3.代价复杂度剪枝(CART)
代价复杂度选择节点误差率增益值最小的非叶子节点
决策树自由生长的时候,误判成本可以降的很低,但是因为树“枝繁叶茂”(过拟合)。所有我们希望在误判成本和复杂度之间追求一个平衡。

   ID3

(1)采用信息增益进行分裂,分裂的精确度可能没有采用信息增益率进行分裂高

(2)不能处理连续型数据,只能通过离散化将连续性数据转化为离散型数据

(3)不能处理缺省值

(4)没有对决策树进行剪枝处理,很可能会出现过拟合的问题

 C4.5

(1)C4.5是采用信息增益率选择分裂的属性,解决了ID3选择属性时的偏向性问题;

(2)C4.5能够对连续数据进行处理,采用一刀切的方式将连续型的数据切成两份,在选择切割点的时候使用信息增益作为择优的条件;
理论上来讲,N条数据就有N-1个切割点,为了选取最优的切割垫,要计算按每一次切割的信息增益,计算量是比较大的,那么有没有简化的方法呢?有,在相邻两个属于不同类的位置尝试加分割点
(3)C4.5采用悲观剪枝的策略,一定程度上降低了过拟合的影响。

*** *******CART
CART,又名分类回归树,是在ID3的基础上进行优化的决策树,学习CART记住以下几个关键点:

(1)CART既能是分类树,又能是回归树;

(2)当CART是分类树时,选择能够最小化分裂后节点GINI值的分裂属性;当CART是回归树时,采选择能够最小化两个节点样本方差的分裂属性。

(3)CART是一棵二叉树。每一次分裂只会产生两个节点。
对于连续性的数据,直接采用与C4.5相似的处理方法

对于离散型属性,理论上有多少个离散值就应该分裂成多少个节点。怎么办呢?很简单,只要将其中一个离散值独立作为一个节点,其他的离散值生成另外一个节点即可。
举一个简单的例子:如果某离散属性一个有三个离散值X,Y,Z,则该属性的分裂方法有{X}、{Y,Z},{Y}、{X,Z},{Z}、{X,Y},分别计算每种划分方法的基尼值或者样本方差确定最优的方法。

在这里插入图片描述在这里插入图片描述

cart流程图:
在这里插入图片描述

参考链接:
https://www.cnblogs.com/yonghao/p/5061873.html#4126813
https://blog.csdn.net/olenet/article/details/46433297
https://blog.csdn.net/guo1988kui/article/details/78427409

猜你喜欢

转载自blog.csdn.net/weixin_43167121/article/details/88077894
今日推荐