DataWhale吃瓜教程-Task3学习笔记(CH4-决策树)

4.1-基本流程

1-基本概念

决策树decision tree:基于树的结构来进行的决策。
算法原理:在分类问题上,从逻辑角度,表示基于特征对实例进行分类的过程,可以认为是if-then的集合。从几何角度可以认为是定义在特征空间与类空间上的条件概率分布。
决策树结构:如下图所示的西瓜分类决策树(我感觉更像树的根,可以叫决策根),一颗完整的决策树包含三个部分:
1,根节点:树的最顶端的节点,如色泽。
2,叶子节点:树最底部的那些节点,也就是决策结果,好瓜或者坏瓜。
3,内部节点:除了叶子节点的,都是内部节点,如根蒂,表示属性特征。
在这里插入图片描述

2-基本算法流程

决策树的目标:根据给定的训练数据集构建一个泛化能力强的决策树模型,将样本越分越
基本流程:遵循简单且直观的分而治之的策略。
决策树的三个步骤特征选择,决策树的生成,决策树的修剪
在这里插入图片描述
如上图所示,为决策树学习的基本算法,决策树的生成是一个递归过程,在决策树算法中,有以下三种情况会导致递归返回:
1,当前节点包含的样本全属于同一类别,无需划分;
2,当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;
3,当前结点包含的样本集合为空,不能划分。
情形2,把当前结点标记为叶结点,井将其类别设定为该结点所含样本最多的类别,利用当前结点的后验分布
情形3,把当前结点标记为叶结点,且将其类别设定为其父结点所含样本最多的类别,把父结点的样本分布作为当前结点的先验分布

4.2-划分选择

1-补充知识

-参考自香农信息论
信息熵 information entropy:假设离散随机变量x的取值有 x 1 , x 2 , x 3 , . . . x n x_1,x_2,x_3,...x_n x1,x2,x3,...xn,其发生的概率为 p 1 , p 2 , p 3 , . . . p n p_1,p_2,p_3,...p_n p1,p2,p3,...pn,那么信息熵为:在这里插入图片描述
信息熵用以描述信源的不确定度, 概率越大,可能性越大,但是信息量越小,不确定性越小,熵越小。
举个例子假如说天气预报说明天下雨的概率是 3 / 4 3/4 3/4,那明天下雨的可能性就很大,也就意味着不确定性很小;假如说明天下雨的概率是100%,那就没有不确定性。
条件熵:条件熵 H ( Y ∣ X ) H(Y∣X) H(YX) 表示在已知随机变量X的条件下随机变量Y的不确定性。即:(X,Y)发生的熵,减去X单独发生的熵,就是在X发生的前提下,Y发生新带来的熵,有点类似于贝叶斯公式。
他们的关系公式如下:
H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y|X)=H(X,Y)-H(X) H(YX)=H(X,Y)H(X)
相对熵:又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度。设p(x),q(x)是随机变量X中取值的两个概率分布,则p对q的相对熵为:
D ( P ∣ ∣ Q ) = ∑ x p ( x ) l o g ( p ( x ) / q ( x ) ) D(P||Q)=\sum_xp(x)log(p(x)/q(x)) D(PQ)=xp(x)log(p(x)/q(x))
互信息:两个随机变量X和Y的互信息,定义为X,Y的联合分布和独立分布乘积的相对熵。
I ( X , Y ) = K L ( ( P ( X , Y ) ∣ ∣ P ( X ) P ( Y ) ) I(X,Y)=KL((P(X,Y)||P(X)P(Y)) I(X,Y)=KL((P(X,Y)P(X)P(Y))
几个参数之间的关系如下图所示:具体推导后续填坑。
在这里插入图片描述
将信息论中的内容引入到决策树中,便产生以下算法,不得不说,香农真NB!
信息增益==>信息熵,互信息

2-ID3算法与信息增益

在决策树中,信息熵用来度量样本集合纯度的一种指标。
在这里插入图片描述
E n t ( D ) Ent(D) Ent(D)的值越小,则D的纯度越高。
信息增益:引用互信息的概念。
信息增益公式:
在这里插入图片描述
特征a对训练数据集D的信息增益g(D,a),定义为集合D的经验熵H(D)与特征a给定条件下D的经验条件熵H(D|a)之差:
G a i n ( D , a ) = H ( D ) − H ( D ∣ A ) Gain(D,a)=H(D)-H(D|A) Gain(D,a)=H(D)H(DA)
熵H(D)与条件熵H(D|a)之差成为互信息,决策树学习中的信息增益等价于训练数据集中类与特征的互信息
信息增益即互信息:表示已知一个随机变量的信息后,使得另一个随机变量的不确定性减少的程度。一般而言,信息增益越大,表示一个随机变量使得另一个随机变量的不确定性减少的程度越大,也就意味着样本的纯度越高。
ID3决策树算法就是以信息增益为准则来选择划分特征。

3-C4.5算法与增益率

由于信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,引入了C4.5决策树优化算法,并引入了信息增益率

在这里插入图片描述
在这里插入图片描述
IV(a)称为属性α 的"固有值",属性α 的可能取值数目越多(即V 越大),则IV(α) 的值通常会越大。
C4.5算法由于信息增益偏向于属性多,增益率对可取值数目较少的属性有所偏好。为了更准确,采用先选出信息增益高平均水平的属性,再选择信息增益率最高的。

4-CART算法与基尼指数

CART 决策树使用Gini指数来选择划分属性,基尼指数表示了在样本集合中,一个随机选中的样本被分错的概率。公式如下:
G i n i ( D ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 Gini(D)=\sum_{k=1}^Kp_k(1-p_k)=1-\sum_{k=1}^Kp_k^2 Gini(D)=k=1Kpk(1pk)=1k=1Kpk2
在这里插入图片描述
Gini(D) 反映了从数据集D 中随机抽取两个样本,其类别标记不一致的概率.因此,Gini(D) 越小,则数据集D 的纯度越高。
关于基尼系数的理解,我在写笔记的时候看到了一种通俗易懂的方法,如参考3:
我们都知道信息熵的定义式为:
在这里插入图片描述
那么基尼系数实际上就是用 1 − p i 1-p_i 1pi来代替 − l o g ( p i ) -log(p_i) log(pi),画出二者图像:
在这里插入图片描述
基尼系数对于信息熵而言,就是在01区间内近似的用切线来代替了对数函数。因此,既然信息熵可以表述不确定度,那么基尼系数自然也可以,只不过存在一些误差。

4.3-剪枝处理

剪枝(pruning):是决策树学习算法对付"过拟合"的主要手段。

1-预剪枝

预剪枝(prepruning):在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点。
特点
1,预剪枝使得决策树的很多分支都没有"展开,降低过拟合风险,显著减少了时间开销
2,有些分支的当前划分虽不能提升泛化性能、甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却有可能导致性能显著提高
3,预剪枝基于"贪心"本质禁止这些分支展开,给预剪枝决策树带来了欠拟合的风险。

2-后剪枝

后剪枝(post-pruning):先生成一棵决策树,然后自底向上地对非叶结点进行验证,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
特点
1,通常比预剪枝决策树保留了更多的分支. 一般情形下后剪枝决策树的欠拟合风险很小泛化性能往往优于预剪枝决策树.
2,但后剪枝过程是在生成完全决策树之后进行的,并且要自底向上地对树中的所有非叶结点进行逐一考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都要大得多。

参考:

1,统计学习方法
2,信息论
3,决策树与随机森林(从入门到精通)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值