最全详细图解 策树原理(上)

决策树

1.定义

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy = 系统的凌乱程度,使用算法ID3, C4.5和C5.0生成树算法使用熵。这一度量是基于信息学理论中熵的概念。
在这里插入图片描述
要想彻底的了解决策树原理,我们需要了解信息论的一些知识,让我们一起来看看吧:

2.信息论简介

是研究信息的产生、获取、变换、传输、存贮、处理识别及利用的学科。信息论还研究信道的容量、消息的编码与调制的问题以及噪声与滤波的理论等方面的内容。信息论还研究语义信息、有效信息和模糊信息等方面的问题。信息论有狭义和广义之分。狭义信息论即申农早期的研究成果,它以编码理论为中心,主要研究信息系统模型、信息的度量、信息容量、编码理论及噪声理论等。广义信息论又称信息科学,主要研究以计算机处理为中心的信息处理的基本理论,包括评议、文字的处理、图像识别、学习理论及其各种应用。广义信息论则把信息定义为物质在相互作用中表征外部情况的一种普遍属性,它是一种物质系统的特性以一定形式在另一种物质系统中的再现。广义信息论包括了狭义信息论的内容,但其研究范围却比通讯领域广泛得多,是狭义信息论在各个领域的应用和推广,因此,它的规律也更一般化,适用于各个领域,所以它是一门横断学科。广义信息论,人们也称它为信息科学。

如果我们关心数据的信息量,难么我们就需要一个度量方法。决策树生成算法就是利用该度量方法来衡量数据划分的优缺,从而生成一个“判定序列”。具体而言它会不断地寻找数据的划分方法,使得在该划分下能够获得的信息量最大。

3.不确定性

在决策树的生成中,获得的信息量的度量方法是从反方向来定义的:若一种划分能使数据的“不确定性”减少的越多,就意味着该划分能获得更多的信息。
关键问题就在于应该如何度量数据的不确定性(或说 不纯度Impurity),常见的度量标准有两个: 信息熵(Entropy)和 基尼系数(Gini Index )

3.1 信息熵

1948年,香农将统计物理中熵的概念,引申到信道通信的过程中,从而开创了”信息论“这门学科。香农定义的“熵”又被称为“香农熵” 或 “信息熵”, 即
在这里插入图片描述
其中i标记概率空间中所有可能的样本, 表示该样本的出现几率,K是和单位选取相关的任意常数。可以明显看出“信息熵”的定义和“热力学熵”(玻尔兹曼公式)的定义只相差某个比例常数。数学上,可以证明“香农熵”的定义,具有以下良好性质:
连续性
该度量应该是连续的,即,若样本概率值有微小变化,由此引起的熵变化也是微小的。
对称性
样本重新排序后,该度量应保持不变,即
在这里插入图片描述

极值性
当所有样本等几率出现的情况下,熵达到最大值(所有可能的事件等概率时不确定性最高)
在这里插入图片描述
对于样本等几率分布而言,样本数越大,熵值越大(可能的事件越多,不确定性越高)
在这里插入图片描述
  
可加性
  
熵的值与过程如何被划分无关。它描述了一个系统与其子系统熵的关系。如果子系统之间的相互作用是已知的,则可以通过子系统的熵来计算一个系统的熵。例如:给定一个有n个样本的均匀分布集合,分为k个箱子(子系统),每个里面有 b1, …, bk 个样本,合起来的熵应等于系统的熵与各个箱子的熵的和,每个箱子的权重为在该箱中样本的总概率。即,对于正整数bi其中b1 + … + bk = n来说,
在这里插入图片描述
其中S的脚标,标记对应概率空间的样本点个数。
事实上,香农证明如果要求度量满足这些性质,则可以完全确定“信息熵”的定义表达式。(摘自百度百科)

3.2基尼系数

1)公式
在这里插入图片描述
k:数据集中样本类型数量;
Pi:第 i 类样本的数量占总样本数量的比例

2)实例计算基尼系数
3 种情况计算基尼系数:

技术分享图片
基尼系数的性质与信息熵一样:度量随机变量的不确定度的大小;
G 越大,数据的不确定性越高;
G 越小,数据的不确定性越低;
G = 0,数据集中的所有样本都是同一类别;

3)只有两种类别的数据集
技术分享图片
x:两类样本中,其中一类样本数量所占全部样本的比例;
当 x = 0.5,两类样本数量相等时,数据集的确定性最低;

3.3信息的增益

在定义完不确定性的度量标准后,我们就可以看看什么叫“获得信息”,即信息的增益。直观的说,信息的增益是针对随机变量y和描述该变量的特征来定义的
定义: 以某特征划分数据集前后的熵的差值

  在熵的理解那部分提到了,熵可以表示样本集合的不确定性,熵越大,样本的不确定性就越大。因此可以使用划分前后集合熵的差值来衡量使用当前特征对于样本集合D划分效果的好坏。

  划分前样本集合D的熵是一定的 ,entroy(前),
  使用某个特征A划分数据集D,计算划分后的数据子集的熵 entroy(后)
                               **信息增益 =  entroy(前) -  entroy(后)**
      书中公式:

在这里插入图片描述
做法:计算使用所有特征划分数据集D,得到多个特征划分数据集D的信息增益,从这些信息增益中选择最大的,因而当前结点的划分特征便是使信息增益最大的划分所使用的特征。
信息增益的理解:
对于待划分的数据集D,其 entroy(前)是一定的,但是划分之后的熵 entroy(后)是不定的,entroy(后)越小说明使用此特征划分得到的子集的不确定性越小(也就是纯度越高),因此 entroy(前) - entroy(后)差异越大,说明使用当前特征划分数据集D的话,其纯度上升的更快。而我们在构建最优的决策树的时候总希望能更快速到达纯度更高的集合,这一点可以参考优化算法中的梯度下降算法,每一步沿着负梯度方法最小化损失函数的原因就是负梯度方向是函数值减小最快的方向。同理:在决策树构建的过程中我们总是希望集合往最快到达纯度更高的子集合方向发展,因此我们总是选择使得信息增益最大的特征来划分当前数据集D。
**缺点:**信息增益偏向取值较多的特征
原因:当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的,因此信息增益更大,因此信息增益比较 偏向取值较多的特征。
解决方法 : 信息增益比( C4.5算法 )
信息增益比 = 惩罚参数 * 信息增益
书中公式:
在这里插入图片描述
注意:其中的HA(D),对于样本集合D,将当前特征A作为随机变量(取值是特征A的各个特征值),求得的经验熵。
(之前是把集合类别作为随机变量,现在把某个特征作为随机变量,按照此特征的特征取值对集合D进行划分,计算熵HA(D))
在这里插入图片描述
信息增益比本质: 是在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。
惩罚参数:数据集D以特征A作为随机变量的熵的倒数,即:将特征A取值相同的样本划分到同一个子集中(之前所说数据集的熵是依据类别进行划分的)
在这里插入图片描述
缺点:信息增益比偏向取值较少的特征
原因: 当特征取值较少时HA(D)的值较小,因此其倒数较大,因而信息增益比较大。因而偏向取值较少的特征。
使用信息增益比:基于以上缺点,并不是直接选择信息增益率最大的特征,而是现在候选特征中找出信息增益高于平均水平的特征,然后在这些特征中再选择信息增益率最高的特征。

4.决策树的生成

如果读者学过数据结构,那么一提到树结构,一定会想到结点。决策树的行为可概括为如下两步:

  • 将样本空间划分为若干个互不相交的子空间
  • 给每个子空间贴一个类别标签

4.1 三种基本算法

  1. ID3 算法可以说是“最朴素”的决策算法,它给出了对离散型数据分类的解决方案
  2. C4.5 算法 在其基础上进一步发展,给出了对混合数据分类的解决方案
  3. CART 算法 则更进一步,给出了对数据回归的解决方案
    虽然它们功能越来越强大,但是它们的核心思想都是一致的:算法 通过不断划分数据集来生成决策树,其中每一步的划分能够使当前信息增益达到最大。

可以这样来看待决策树:模型的损失就是数据集的不确定性,模型的算法就是最小化该不确定性:同时和许多其他模型一样,要想从整个参数空间中选择最优参数是个NP难问题,所以我们要采用启发式的方法,近似求解这个最优化问题。具体而言,我扪每次会选取一个局部最优解(每次选取一个特征对数据集进行划分使得信息增益最大化),并把这些局部解合成最优解(合成一个划分规则的序列)

  1. ID3 算法
    输入:训练集D={(x1,y1),…,(xn,yn)}
    过程:
    (1)将数据集D赋给一个Node
    (2)若D中的所有样本同属于类别ck,则该Node不再继续生成,并将其类别标记为ck类
    (3)若xi 已经没有特征可选,则将此时D中样本个数最多的类别ck作为该Node的类别
    (4)否则,按照互信息定义的信息增益:
    在这里插入图片描述
    来计算第j维特征的信息增益,然后选择使得信息增益最大的特征xj
    作为划分标准,即:
    j*=argmax g(y,xj)
    (5)若xj满足停止条件,则不在继续生成并将此时D中样本个数最多的类别ck作为类别标记--------预剪枝
    (6)否则,依xj的所有可能取值{a1,…,am}将数据集D划分为{D1,…,Dm},同时将x1,…,xn的第j维去掉,使他们成为n-1维的特征向量C
    (7)对每个Dj从(1)开始调用算法
    输出:原始数据对应的Node

2.C4.5

  1. 与ID3算法基本相同,唯一不同的是,是基于信息增益比来划分数据的,虽然不会像ID3算法那样倾向于选择类别较多的特征,但却倾向于类别较少的特征,于是就有了 启发式方法:先选择出互信息比平均互信息要高的特征,然后从这些特征中选出信息增益比最高的。

3.CART算法
可用于分类和回归问题。设代表单个样本的个属性,表示所属类别。CART算法通过递归的方式将维的空间划分为不重叠的矩形。划分步骤大致如下

(1)选一个自变量,再选取的一个值,把维空间划分为两部分,一部分的所有点都满足,

另一部分的所有点都满足,对非连续变量来说属性值的取值只有两个,即等于该值或不等于该值。

(2)递归处理,将上面得到的两部分按步骤(1)重新选取一个属性继续划分,直到把整个维空间都划分完。

CART 算法 使用基尼指数进行数据的划分

5.剪枝处理

剪枝是决策树学习算法对付过拟合的主要手段

5.1预剪枝
指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化能力的提升,则停止划分并将当前结点标记为叶结点;
在划分前,若不进行划分,则根据算法,该节点将被标记为叶结点,其类别标记为训练样例数最多的类别,用验证集验证求出其精度C1,之后 划分然后 再次求出 其在验证集上的精度,若后者大于前者,则用该属性划分得以确定。
预剪枝虽然降低了过拟合的风险,显著减少了决策树的训练时间和测试时间开销,但是另一方面,有些分支的当前划分虽不能提升泛化性能,甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却有可能导致性能显著提高;
预剪枝基于“贪心策略”本质禁止这些分支展开,给预剪枝决策树带来了欠拟合的风险

5.2后剪枝
后剪枝先从训练集生成一棵完整的决策树,然后比较不同结点剪枝前后在验证集上的精度,当后者大于等于前者时(等于是因为更模型精简,即奥卡姆剃刀准则),进行剪枝。
后决策树通常比预剪枝决策树保留了更多的分支,一般情形下,后剪枝决策树欠拟合风险很小,泛化能力往往优于预剪枝决策树,但训练时间开销比未剪枝决策树和预剪枝决策树都要大得多。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DFCED

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值