西瓜书之决策树

本文介绍了决策树的基本流程,包括信息熵、信息增益、增益率和基尼指数的概念,用于属性选择。讨论了信息增益可能导致的偏向性和增益率的修正。此外,还涵盖了剪枝策略,如预剪枝和后剪枝的优缺点。对于连续值和缺失值的处理方法也进行了阐述,最后提到了多变量决策树及其轴平行的特性。
摘要由CSDN通过智能技术生成

主要学习目标

我们主要的学习目的是简单看一遍西瓜书里面的内容,尽可能的对各个模型都有一定的了解,在本节课程当中,我会给大家分享机器学习相关的的内容,我主要是在学习吴恩达老师最新的机器学习的视频,但是学完之后还是觉得较为空泛,所以在此,借机会再重新复习
在这里插入图片描述

基本流程

首先简单介绍一下决策树的作用,其主要的作用是分类,以二分类为例,会对实例是否为正例进行判断,如果是正例则分为正例,反之则为反例,可以简单理解为if-else的判断语句
决策树的目的是产生一棵泛化能力强,即处理未见示例能力强的决策树
在这里插入图片描述

划分选择

要求选择出最优的划分属性

信息增益

信息熵的定义为
Ent ⁡ ( D ) = − ∑ k = 1 ∣ Y ∣ p k log ⁡ 2 p k \operatorname{Ent}(D)=-\sum_{k=1}^{|\mathcal{Y}|} p_{k} \log _{2} p_{k} Ent(D)=k=1Ypklog2pk
Ent ⁡ ( D ) \operatorname{Ent}(D) Ent(D)越小,说明 D D D的纯度越高
信息熵表示的是不确定性可以理解为集合当中的样本的纯度
假定 a a a V V V个可能的取值, D v D^v Dv表示的是第 v v v个分支结点包含了 D D D中所有在属性 a a a上取值为 a v a^v av的样本,令 ∣ D v ∣ ∣ D ∣ \frac{\left|D^{v}\right|}{|D|} DDv表示占比,可以得到条件熵的概念
∑ v = 1 V ∣ D v ∣ ∣ D ∣ Ent ⁡ ( D v ) \displaystyle\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Ent}\left(D^{v}\right) v=1VDDvEnt(Dv)
从而得到信息增益的概念
Gain ⁡ ( D , a ) = Ent ⁡ ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ Ent ⁡ ( D v ) \operatorname{Gain}(D, a)=\operatorname{Ent}(D)-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Ent}\left(D^{v}\right) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)
信息熵的作用就在于计算得到我每一个值,每一个属性的信息增益的大小然后对数据进行划分,在划分的过程当中,信息增益越大,表明选择属性 a a a的纯度越高,选择该属性进行划分的可能性也就越大

增益率

信息增益的准则极有可能导致计算得到的决策树不平衡,也许在训练集上可以表现较好的结果,但是在引入新的数据之后可能会存在无法进行有效预测的情况
因此,为避免信息增益准则对可取值数目较多的属性有所偏好,减少这样的行为说造成的不利影响,引入增益率的概念
Gain-ratio  ( D , a ) = Gain ⁡ ( D , a ) IV ⁡ ( a ) \text {Gain-ratio }(D, a)=\frac{\operatorname{Gain}(D, a)}{\operatorname{IV}(a)} Gain-ratio (D,a)=IV(a)Gain(D,a)
其中
IV ⁡ ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ log ⁡ 2 ∣ D v ∣ ∣ D ∣ \operatorname{IV}(a)=-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \log _{2} \frac{\left|D^{v}\right|}{|D|} IV(a)=v=1VDDvlog2DDv
表示的是属性 a a a的固有值,属性 a a a越多,那么 IV ⁡ ( a ) \operatorname{IV}(a) IV(a)也会越大

增益率注意事项

增益率会存在对数目少的属性有所偏好,所以采用在候选划分属性中选择增益高于平均水平的属性,再选择增益率最高的

基尼指数

在基于提高纯度,对纯度进行判断的考虑,引入基尼指数的概念,对数据集 D D D的划分可以写成 Gini ⁡ ( D ) = ∑ k = 1 ∣ Y ∣ ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 ∣ Y ∣ p k 2 \begin{aligned} \operatorname{Gini}(D) &=\sum_{k=1}^{\mid \mathcal{Y |}} \sum_{k^{\prime} \neq k} p_{k} p_{k^{\prime}} \\ &=1-\sum_{k=1}^{|\mathcal{Y}|} p_{k}^{2} \end{aligned} Gini(D)=k=1Yk=kpkpk=1k=1Ypk2
Gini ⁡ ( D ) \operatorname{Gini}(D) Gini(D)越小,说明数据集的纯度越高,基尼指数可以用于分类和回归
基尼指数的定义如下
 Gini-index  ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ Gini ⁡ ( D v ) \text { Gini-index }(D, a)=\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|}\operatorname{Gini}\left(D^{v}\right)  Gini-index (D,a)=v=1VDDvGini(Dv)

剪枝

简直主要使用的是预剪枝和后剪枝,剪枝是为了尽可能提高泛化性能

预剪枝

预剪枝的优点在于

  • 可以减少训练时间的开销以及测试时间的开销
  • 避免了过拟合
    缺点则在于
  • 本质上是根据贪心算法来禁止开支,有可能导致欠拟合的问题

后剪枝

后剪枝的优点在于

  • 欠拟合风险小
  • 泛化性能往往高于预剪枝
    缺点在于
  • 训练之间较长
  • 是在训练完成之后采用自底向上的方法进行分析

连续与缺失值

连续值处理

对于连续值来说,我们采用的方法就是连续值进行离散化的方法
n − 1 n-1 n1个元素选择候选划分点(对于为什么要取 n − 1 n-1 n1,个人人为是在划分的时候采用的是对该区间值采取中值,如果取 n n n个则有的值不能保证取到中值,降低了数据的准确度)
T a = { a i + a i + 1 2 ∣ 1 ⩽ i ⩽ n − 1 } T_{a}=\left\{\frac{a^{i}+a^{i+1}}{2} \mid 1 \leqslant i \leqslant n-1\right\} Ta={2ai+ai+11in1}
则可以对划分点的选取得到如下的更改
Gain ⁡ ( D , a ) = max ⁡ t ∈ T a Gain ⁡ ( D , a , t ) = max ⁡ t ∈ T a Ent ⁡ ( D ) − ∑ − r ∣ D t λ ∣ ∣ D ∣ Ent ⁡ ( D t λ ) , \begin{aligned} \operatorname{Gain}(D, a) &=\max _{t \in T_{a}} \operatorname{Gain}(D, a, t) \\ &=\max _{t \in T_{a}} \operatorname{Ent}(D)-\sum_{-r} \frac{\left|D_{t}^{\lambda}\right|}{|D|} \operatorname{Ent}\left(D_{t}^{\lambda}\right), \end{aligned} Gain(D,a)=tTamaxGain(D,a,t)=tTamaxEnt(D)rD Dtλ Ent(Dtλ),
其中 t t t表示的是划分点

缺失值处理

n n n属性当中挑选出来的一个属性,对其所包含的数据当中,没有缺失值的数据提取出来计算其信息熵以及对应的信息增益
ρ = ∑ x ∈ D ~ w x ∑ x ∈ D w x , p ~ k = ∑ x ∈ D ~ k w x ∑ x ∈ D ~ w x ( 1 ⩽ k ⩽ ∣ Y ∣ ) r ~ v = ∑ x ∈ D ~ v w x ∑ x ∈ D ~ w x ( 1 ⩽ v ⩽ V ) . \begin{aligned} \rho &=\frac{\sum_{\boldsymbol{x} \in \tilde{D}} w_{\boldsymbol{x}}}{\sum_{\boldsymbol{x} \in D} w_{\boldsymbol{x}}}, \\ \tilde{p}_{k} &=\frac{\sum_{\boldsymbol{x} \in \tilde{D}_{k}} w_{\boldsymbol{x}}}{\sum_{\boldsymbol{x} \in \tilde{D}} w_{\boldsymbol{x}}} \quad(1 \leqslant k \leqslant|\mathcal{Y}|) \\ \tilde{r}_{v} &=\frac{\sum_{\boldsymbol{x} \in \tilde{D}^{v}} w_{\boldsymbol{x}}}{\sum_{\boldsymbol{x} \in \tilde{D}} w_{\boldsymbol{x}}} \quad(1 \leqslant v \leqslant V) . \end{aligned} ρp~kr~v=xDwxxD~wx,=xD~wxxD~kwx(1kY)=xD~wxxD~vwx(1vV).
对信息增益的计算式进行推广
Gain ⁡ ( D , a ) = ρ × Gain ⁡ ( D ~ , a ) = ρ × ( Ent ⁡ ( D ~ ) − ∑ v = 1 V r ~ v Ent ⁡ ( D ~ v ) ) \begin{aligned} \operatorname{Gain}(D, a) &=\rho \times \operatorname{Gain}(\tilde{D}, a) \\ &=\rho \times\left(\operatorname{Ent}(\tilde{D})-\sum_{v=1}^{V} \tilde{r}_{v} \operatorname{Ent}\left(\tilde{D}^{v}\right)\right) \end{aligned} Gain(D,a)=ρ×Gain(D~,a)=ρ×(Ent(D~)v=1Vr~vEnt(D~v))

多变量决策树

多变量决策树的作用在于把每个属性视为空间当中的一个坐标轴,然后对样本分类则是找到不同类样本之间的的分类边界,决策树所形成的分类边界的特点在于:轴平行
轴平行的好处就在于提高了模型的可解释性
多变量决策树在学习过程当中是尝试建立一个合适的线性分类器

总结

在本次课程当中我们学习并了解到了机器学习的决策树,让我们继续努力

相关学习链接

机器学习西瓜书
吴恩达老师最新机器学习视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值