西瓜书学习笔记---第四章 决策树

一、决策学习的基本流程

1.1 决策树的基本定义

决策树主要由根节点、内部节点以及叶子结点组成,除了叶子节点对应分类结果之外,根节点和内部节点都分别对应一个属性测试,每个节点中都可以包含若干样本集合,这些样本会根据所在节点的测试结果被划分到子节点中,且决策树的最终目的就是学得一个泛化能力很强的

1.1.1 根节点

包含全部的训练样本,而且从根节点出发到每个叶子结点这一路径代表了一个完整的预测流程

1.1.2 内部节点

内部节点会包含全部样本的子集,且内部节点可以利用单个属性来作为属性测试的依据,也可以在内部节点中训练出分类器来提高泛化能力

1.1.3 叶子节点

叶子节点所包含的就是最后的预测结果,比如二分类任务,叶子的值就为0/1,且叶子节点是可以包含样本集或者 不包含也可以

1.1.4 决策树的图示

西瓜问题的一颗决策树

1.1.5 决策树算法的训练流程

经典决策树的学习算法
当出现以下三种情况时,决策树是无法进行划分的

  1. 当前节点所包含的样本类别相同,此时没有划分的必要
  2. 属性集为空,即属性集完成划分任务了,或者所有样本在所有属性上的取值是相同的,无需划分
  3. 节点中无训练样本,不能划分

NOTE: 当遇到第二种情况时,直接将此节点变成叶子结点,在类别的确定上,根据此节点中样本类别比例占比最多的来划分,比如样本中好瓜的数量比坏瓜多,就将其设为好瓜结点;
在第三种情况也是将其设置为叶子结点,但是在确定类别时要根据其父节点来确定,具体方法同第二种情况

二、划分属性选择

最优划分属性是决策树算法执行成功的关键

2.1 相关概念

1. 信息熵
主要用来度量样本集合中的纯度大小。信息熵越大,说明数据集D的纯度越低。假设数据集D中第k类样本所占的比例为pk,则可得到下面的信息熵计算公式,其中|y|代指样本的种类个数,Ent(D)代表数据集D的信息熵
信息熵计算公式
Note:信息熵的最大值为log2|y|,最小值为0
2. 信息增益
信息增益主要是用来衡量一个属性是否可以被作为划分属性来进行决策树的下一步划分,是一个非常重要的衡量指标。一般来说,求得的信息增益值越大,说明此属性越适合作为划分属性。计算方式如下,其中a表示划分属性,Dv表示在样本集D中在属性a上取值取值为av的样本的集合,v和属性a的取值个数相等:
信息增益计算公式
具体计算案例去看西瓜书p76
3. 增益率
增益率出现的原因是信息增益在公式计算结果方面对属性取值较多的属性是有偏向的,所以出现了增益率这个概念用来衡量属性的划分效果瑞和,公式的符号表示和计算信息增益是相同的:
增益率计算公式
Note:

  1. IV(a)是属性a的固有值,属性a能够取得的数目越多,固有值就越大
  2. 增益率其实在计算结果上是偏向于可取值数目较少的属性的,所以著名的决策树算法C4.5并没有直接将其作为划分衡量指标,它所使用的方法是先计算出各属性的信息增益,然后计算平均值,挑选出大于平均信息增益水平的属性,然后再通过增益率来筛选最终的划分属性

4. 基尼指数
这一概念首先被用在了CART决策树叶算法上[Breiman et al., 1984],此算法中数据集的纯度不用信息熵来表示,而是使用基尼值,如下式:
基尼值
从公式中能够看出,基尼值所计算的是在一次抽样中,两个不同样本同时出现的概率,所以基尼指数越小,不同样本同时出现的概率就越小,也就代表数据集的纯度越高,所以进一步引出了关于属性a的基尼指数计算公式:
基尼指数计算
Note: 在选择最优划分属性时,选择基尼指数最小的作为划分属性

2.2 案例计算

参照西瓜书的案例,写的很详细

三、剪枝处理

由于机器学习算法有过拟合的可能性,所以决策树的过拟合也是无法避免的,如果决策树的数据集在训练过程中被划分过于细致,就会导致决策树的分支增多,会让决策树从训练样本中学到一些特别的属性,最终会导致过拟合使得泛化能力下降,而剪枝则是缓解决策树算法中过拟合的有效方法

3.1 预剪枝

3.1.1 主要过程:

在决策树进行划分时,对每个结点在划分之前先进性一下子评估,判断此次结点的划分能否给决策树的泛化能力带来提升

3.1.2 计算过程

详细过程见西瓜书p81

3.1.3 预剪枝的优缺点

  1. 优点
    可以有效降低过拟合风险,而且较少的分支可以让决策树的训练以及测试时间所耗费更短
  2. 缺点
    可能会让一些在后续划分能够提升决策树泛化能力的分支无法展开,这就会给决策树带来欠拟合的风险

3.2 后剪枝

3.2.1 主要过程:

先使用训练集去生成一个决策树,然后从底层的非叶子节点开始来进行评估,计算将该非叶节点换成叶子节点之后能否为决策树带来泛化提升

3.2.2 计算过程

西瓜书p82以及南瓜书对应章节

3.2.3 后剪枝的优缺点

  1. 优点
    由于是自底向上的剪枝操作,所以会尽可能多的保留分支,也就基本上不会导致欠拟合,所以经过后剪枝处理的决策树的泛化能力通常要比预剪枝的强
  2. 缺点
    自底向上的对非叶节点进行性能影响测试,导致后剪枝的开销要大很多

四、连续与缺失值

4.1 决策树对于连续值的处理

主要思想
将连续属性进行离散化处理

4.1.1 二分法进行连续值离散化

方法描述
有数据集D和连续属性a,比如西瓜的密度和甜度这种连续属性,a在数据D上有若干取值,记为{α1,α2, . . , an }.基于划分点t可以把D分为包含正负样本的两个子集,即t为阈值。对于划分点t,我们可以取这样一个集合
T的集合
即每个t都是相邻两个属性取值的平均值,这样就可以将t等同为离散情况下的属性值来进行划分。基于此将信息增益计算公式改为下面公式,取使得信息增益最大的t作为划分点。
基于T的信息增益

4.1.2 具体计算

计算过程见西瓜书p85和南瓜书对应章节

4.2 缺失值的处理

两个主要问题

  1. 如何在属性值缺失的情况下进行划分属性选择
  2. 给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分

4.2.1 相关定义

定义
其中,对属性 α, ρ 表辰无缺失值样本所占的比例 , Pk 表示无缺失值样本中,第 k 类所占的比例 rv 则表示无缺失值样本中在属性 α 上取值av的样本所占的比例.

4.2.2 处理缺失值情况的推广信息增益公式

推广信息增益公式
公式中符号的定义如前面公式相同

4.2.3 两个问题的解决

  1. 第一个问题的解决
    先找出原数据集在选定的属性上没有缺失值的样本子集D1,问题1可以通过对D1中的样本来进行信息增益的计算
  2. 第二个问题
    如果样本在划分属性上的取值是不缺失的,那就保持权重不变,(权重即在前面的定义中的w,且初始为1),并将其划入对应类别的子节点
    如果样本在划分属性上的值缺失,那就把此样本划入到所以的子节点中,然后更新其权值,使其变为rv*w,其本质就是将此样本以不同的概率进行划分到各子节点中

4.2.4 计算过程

见西瓜书p88和南瓜书对应章节

五、多变量决策树

5.1 决策树的分类边界

样本的属性可以看做空间中的一个坐标轴,样本则对应映射成为N维空间中的一个数值点,所以对于整个数据集的分类任务等价于找到一个合适的分类边界。而决策树的分类边界由于自身的判定特点,每一条分类边界都和坐标轴平行,如下图
分类边界
上图所得出的分类边界是基于如下这颗决策树的
决策树
所以能够看到决策树的分类边界可以和属性有着很好的对应,但是当判定过程复杂时,使用这种表达方式就造成开销巨大

5.2 斜划分边界的多变量决策树

描述
在多变量决策树中,非叶节点的内部可以不仅是属性,还可以是一个训练器,比如一个神经网络,或者一个感知机,又或者一个线性分类器,这些模型可以通过在这些非叶节点所包含的数据集训练出来,所以在多变量决策树中,学习任务就变成了对分类器的训练
例子
下图是一个简单的线性分类器构成的决策树
多变量决策树
这是它的分类边界
多变量决策树的分类边界
能够看出来,多变量决策树可以有效地改善单变量决策树分类边界和坐标轴平行的情况

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值