决策树

参考链接:
https://www.jianshu.com/p/d153130b813f
https://blog.csdn.net/am290333566/article/details/81187562
https://sefiks.com/2018/08/27/a-step-by-step-cart-decision-tree-example/
https://www.jianshu.com/p/794d08199e5e
https://www.zhihu.com/question/22697086

我觉得明白决策树算法主要有三个点:
1决策树生成的整体过程(递归、三个停止条件)
2最优划分节点选择(三个算法ID3\C4.5\CART)
3剪枝(预剪枝、后剪枝)

  • 1、决策树生成的整体过程

模仿人做决策的过程,根据每个属性从上到下划分,从根节点划分到子节点再到叶节点。属性(a1,a2,……,an)作为节点,某个属性ai的属性值(离散的几个取值)为这个节点(ai属性)分支的个数,叶节点表示数据所属类。
如果画到图里面就是用一些平行于坐标轴的线划分不同的数据。

图1在这插入图片描述

生成决策树的过程是递归的过程,每次选择最优划分属性(每次选择的方法都一样,所以是相同的子问题,可以采取递归的方式),只到达到停止条件。无法再降低熵的情况下停止创建分支。
成为叶节点(最后一层)有三种方式(递归的三个停止条件):

(1)子节点的样本属于同一类Ci(第二行),那这枝叶节点就标记为Ci
在这里插入图片描述
(2)该子节点没有样本了(第11行),那这枝叶节点就标记父节点(或整个数据集)中样本最多的类Cimax
在这里插入图片描述
(3) 特征用完了,不能继续往下找子节点了(第5行)。特征用完有两种情况,1是数据所属类仍然不统一,那就选多数的作为叶节点。2是数据所属的类都相同,那就直接将叶节点标记为这类。
在这里插入图片描述

  • 2、选择最优划分属性(图第)
    这三种方式选择最优划分属性的衡量标准不同,ID3是用信息增益,C4.5是用信息增益率,CART是用GINI系数(二叉树)。无法继续降低熵后停止。

2.1ID3算法
每次输入数据集都是抛弃了父节点的兄弟节点后的子集。每次递归都可以看成子节点为根节点,不停往下划分。后面说的子节点也是每次递归的根节点。
(1)计算根节点的信息熵,表示根节点的信息量,分母为当前数据子集的样本数目,分子为Ci的数目
(2)每个属性的信息熵,表示这个属性的信息量,分母为某个属性a的取值(x1,x2,x3)中xi的数目,分子为xi的属于Ci的数目。
(3)相减,得到信息增益,选择信息增益最大的,代表这个属性可以使当前数据子集的不纯度下降最多。
选信息增益大的作为下一个节点
缺点:优先选择xi多的属性
2.2C4.5
为解决ID3的缺点,将(3)改进,用信息增益除以属性分类引起的信息。
属性分类引起的信息计算方式为:分母为总数,分子为取值xi的数目。
选择信息增益大于平均值的属性,在从中选出信息增益率最大的。
2.3CART
(1)生成
采用GINI系数确定最优划分属性和最优切分点,每次生成一个二叉树
(2)剪枝
采用CART剪枝(后面的第3节剪枝介绍)
用GINI系数选择
衡量了属性每个取值的类别的不同的程度,越大越不同。选择小的作为划分属性
在这里插入图片描述
在这里插入图片描述
注意:在CART方法里,由于是二分类。当属性A的取值ai大于2个时候,计算GINI系数时,数据集只分ai和不是ai两种,于图中有所不同。详情见李航统计方法一书。
3、剪枝
决策树容易过拟合。决策树过于复杂。可以在训练集上达到100%的准确率,但测试集表现差,容易过拟合,为了提高泛化能力,需要剪枝。

3.1预剪枝
在无法降低熵的情况下停止创建分支。设置一个阈值,信息增益小于阈值则停止。但这样效果不好
(1)设置阈值,信息增益小于就停止创建分支
(2)直接限制树的层数,到达层数停止创建分支
(3)限制叶节点数据集的个数
3.2后剪枝
CART剪枝和普通的剪枝有所不同。
普通剪枝
人为规定alpha=x1,剪去一部分,这部分都是x能剪掉的,如果alpha=x2,那剪去的又是另一部分。
在这里插入图片描述

CART剪枝
基本思路,依次剪掉所有枝,得到很多个子树,在数据集上交叉验证,选一个准确率最好的。但这样子树太多了,效率低。
优化方法是,一次剪去一部分树,这部分树就是以alpha的值分类的。alpha取值为[x1,x2]可以剪去一部分树,alpha取值为[x2,x3]又可以剪去一部分树。下图给的算法是alpha只取一个值,也就是alpha=x1时,剪去一部分,alpha=x2时,剪去一部分。书中说每个子树对应一个参数alpha,下图(4)条也说明剪去g(t)=alpha的枝。
下图中g(t)表示剪和不剪树的误差增益,C(T)表示树的拟合程度,剪枝拟合程度一定会下降,那理应选择剪去之后拟合程度下降最小的枝去剪。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值