好吃的西瓜-第四章

1 基本流程

一个决策树包含一个根结点、若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集,从根结点到每个叶结点的路径对应了一个判定测试序列。

决策树的生成是一个递归过程,在决策树基本算法中,有三种情形会导致递归返回:

  1. 当前节点包含的样本全属于同一类别,无需划分;
  2. 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;把当前结点标记为叶结点,并将其类别设定为该结点所含样本最多的类别,利用了当前结点的后验分布
  3. 当前结点包含的样本集合为空,不能划分,把当前结点标记为叶结点,但将其类别设定为其父节点所含样本最多的类别,这里是将父结点的样本分布作为当前结点的先验分布。

2 划分选择

2.1 信息增益、增益率、基尼指数三种方法的比较

信息增益准则是比较常用的一种方法,但是它对取值数目较多的属性有所偏好,会对决策树的划分产生一定的不利影响

增益率很好地规避了这种由于偏好产生的影响,使用了一种启发式的算法,先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

基尼系数:选择基尼系数最小的最为结点

2.2 过拟合现象产生的原因

为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多,这是就可能因训练样本学得太好了,以至于把训练集自身的一些特点当作所有数据都具有的一般性质而产生过拟合

2.3 解决方案:预剪枝和后剪枝

预剪枝:对每个结点在华分钱都进行一次评估,如果当前结点的划分并不能带来决策树泛化性能提升,停止划分(泛化性能在验证机上进行测试,主要是精度的对比)

后剪枝:先生成一颗未剪枝的数,然后自底向上对非叶结点进行考察,若该结点对应的子树替换为叶结点能带来决策树泛化性能的提升,则将该子树替换为叶结点。

2.4 疑问:这个剪枝前和剪枝后的精度如何计算呢?

首先明确不管是预剪枝还是后剪枝的前提都是要把一个完整的树生成的。

精度的计算是在验证集上计算的

如何剪枝呢?以“脐部”为例,如果它的子节点上有一个属性值,将该属性值设为叶子结点,也就是“好瓜”or“坏瓜”,感觉脐部的具体属性来判断的,比如如果将脐部为稍凹的,就继续按根蒂划分,那么此时就看稍凹的是好瓜多还是坏瓜多,哪个多就设置为哪一个,然后在根据划分的结果,基于验证集的数据样本计算其精度。

2.5 关于预剪枝和后剪枝的比较

时间开销方面

预剪枝:训练时间开销降低,测试时间开销降低

后剪枝:训练时间开销增加,测试时间开销降低

过/欠拟合风险

预剪枝:过拟合风险降低,欠拟合风险增加

后剪枝:过拟合风险降低,欠拟合风险基本不变

泛化性能:后剪枝通常优于预剪枝

3 连续与缺失值

在实际工程应用中往往会存在数据的缺失和连续信号的情况,遇到这种情况我们应该:

(1)将连续的属性离散化:那么这个属性就变成了二分类问题,设定一个阈值,>k折划分为好瓜,反之亦然。

(2)针对数据缺失问题

思考:如何进行划分属性选择?给定划分属性,若样本在该属性上的值缺失,如何进行划分?

解决方案:样本赋权,权重划分

(3)决策平面

单变量决策树:在每个非叶节点仅考虑一个划分属性产生“轴平行”分类面

多变量决策树:每个非叶节点不仅考虑一个属性,例如:“斜决策树”不是为每一个非叶节点寻找最优划分属性,而是建立一个线性分类器。

4 多变量决策树

决策树所形成的分类边界有一个明显的特点:轴平行,即它的分类边界由若干个与坐标轴平行的分段组成。
多变量决策树,就是能实现“斜划分”甚至更复杂划分的决策树。非叶结点是对属性的线性组合进行测试。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值