Datawhale-集成学习-学习笔记Day3-决策树与随机森林

1. 决策树

决策树,一种基本的分类与回归方法。个人认为,决策树更加广泛的应用于分类任务中。顾名思义,决策树是一种树形的模型,它基于特征对实例进行分类。决策树的好处是具有非常高的可读性,我们可以把它当成一些if-then规则的集合。

一般来说,决策树的训练包括以下三个步骤:

  1. 特征的选择
  2. 决策树的生成
  3. 决策树的修剪

2. 特征选择与信息增益

决策树的本质就是从训练集中归纳出一组分类规则。我们根据训练集一次进行一个特征的选择,直到最后的树可以满足整个训练集。但是,在对于一个训练集,往往我们可以找到很多个满足条件的树,这些决策树都可以很好的对训练集进行分类。而我们的目的是希望最优得出的决策树可以对未知的实例进行分类,这就需要得到的模型具有很好的泛化能力。我们可以使用正则化的极大似然函数作为决策树学习的损失函数,这样决策树的学习过程就可以转化为选择最优的决策树问题。

但是,如果在所有符合条件的决策树中选择最优的决策树,这完全是一个NP难问题。所以,决策树的学习算法往往是递归的选择最优的特征,并且根据该特征对数据集进行分割。在重复的进行上述过程,直到所有的子数据都归为一类。

2.1 特征选择

什么是特征选择?其本质上就是选择对数据集具有分类能力的特征。那么如何评价一个特征是否具有分类能力呢?通常情况下,我们使用信息增益或者信息增益比来判断一个特征是否有分类能力。

2.2 信息增益

为了说明信息增益,我们首先要先给出熵和条件熵的概念。

在信息论中,我们定义熵来表示变量的不确定性,也可以说是变量的混乱程度。假设X是一个取有限个值的离散随机变量,可以记其概率分布为:
P ( X = x i ) = p i , i = 1 , 2 , 3 , … , n P(X=x_i) = p_i,i=1,2,3,…,n P(X=xi)=pi,i=1,2,3,,n
而随机变量X的熵定义为:
H ( X ) = − ∑ i = 1 n p i log ⁡ p i H(X) = -\sum_{i=1}^np_i\log p_i H(X)=i=1npilogpi
特别的我们定义若 p i = 0 p_i=0 pi=0,则 p i log ⁡ p i = 0 p_i\log p_i=0 pilogpi=0。如果对数以2为底,则熵的单位为比特,如果以e为底则熵的党委为纳特。

根据定义我们可以看出,H(X)的值与X的值是没有关系的,只与x的概率分布有关系。同时,熵越大,也代表着数据的混乱程度越大,随机变量的不确定性也就越大。

根据对数的定义我们还可以得出:熵的最大值为 log ⁡ n \log n logn

证明:当概率均等的时候信息熵最大,即 p i = 1 / n p_i = 1/n pi=1/n时, H m a x = log ⁡ n H_{max}=\log n Hmax=logn。我们可以通过以n=2时证明:
z = − [ p log ⁡ p + ( 1 − p ) log ⁡ ( 1 − p ) ] z = -[p\log p + (1-p)\log(1-p)] z=[plogp+(1p)log(1p)]
对p进行求导:
z ′ = − log ⁡ p + 1 + [ − l o g ( 1 − p ) ] − [ ( 1 − p ) / ( 1 − p ) ] z'=-{\log p + 1 + [-log(1-p)] - [(1 - p)/(1 - p)]} z=logp+1+[log(1p)][(1p)/(1p)]

z ′ = log ⁡ [ ( 1 − p ) / p ] z' = \log[(1 - p)/p] z=log[(1p)/p]

因此,当 p = 1 − p p = 1 - p p=1p时,z取极值,带入值可知此时取得最大值。

我们可以得知,当概率分布越均匀的话,信息熵越大。

然后我们介绍一下条件熵。设有联合概率分布(X, Y),其联合概率分布为:
P ( X = x i , Y = y j ) = p i j , i = 1 , 2 , 3... n ; j = 1 , 2 , 3... m P(X=x_i,Y=y_j)=p_{ij},i=1,2,3...n;j=1,2,3...m P(X=xi,Y=yj)=pij,i=1,2,3...n;j=1,2,3...m
条件熵 H ( Y ∣ X ) H(Y|X) H(YX)表示在已知X的情况下Y的不确定性,定义为:
H ( Y ∣ X ) = ∑ i = 1 n p i H ( Y ∣ X = x i ) H(Y|X)=\sum_{i=1}^np_iH(Y|X=x_i) H(YX)=i=1npiH(YX=xi)
知道着熵和条件熵后,我们就可以着手进行计算信息增益了。什么是信息增益,根据字面意思理解,就是知道了该特征X后,我们的类Y的信息不确定性减少的程度。可以这样定义,特征A对数据集D的信息增益为g(D, A):
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A) = H(D)-H(D|A) g(D,A)=H(D)H(DA)
当信息增益越大的时候,我们可以说这个特征有更强的分类能力。

2.3 使用信息增益来进行特征选择

在知道了信息增益后,通过递归每次选择信息增益最大特征,直到我们的子类中的所有实例都属于一类。这样就可以完成了一个决策树的生成。

但是,有时可能不会那么正好的就出现子类中所有的类都属于一类的情况。我们可以设置一个阈值,当最大的信息增益小于此阈值的时候,就假设次子类没有再向下分类的必要了。我们就可以选择子类中实例最多的类作为子类的标签。这也就是ID3算法。

3. 与bagging结合的决策树算法——随机森林

第一此见到随机森林的时候我以为这个随机是随机选择特征的意思。实际上并不是如此,随机森林的随机是随机选择样本集的意思。在上次的笔记中说过,bagging对受样本扰动较大的模型效果更好,在决策树上使用bagging往往可以得到很好的效果,这就是随机森林算法。可以通过每次选择一个不同的样本集生成决策树,再获取最多的分类结果,以此来提高模型的鲁棒性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值