决策树与随机森林

决策树与随机森林

一、什么是决策树?
决策树是来自于决策论,是由多个决策分支和可能的结果组成的,是用来创建达到目标的路径规划。决策树是机器学习中一种非常常见好用的分类方法。
先举个简单的栗子
我们根据男方的年龄、长相、收入、是否是公务员等因素决定去不去与这个男的见面相亲。

这就是一棵简单的决策树,根据所给的样本属性(年龄、长相、收入、公务员)来判断这个样本的分类归属。

二、决策树的核心问题研究
那么重点来了,决策树是如何建立的?样本属性的先后顺序是如何确定的?如何处理过拟合的情况?
2.1:怎么根据样本集生成决策树:
·根节点和分支准则的确定方法:信息熵、信息增益、信息增益比、基尼指数;
·决策树生成算法:ID3算法、C4.5算法、CART算法;
2.2:决策树解决过拟合的方法:剪枝
·预先剪枝(前剪枝):限制决策树的充分生成,限制树的高度;
·滞后剪枝(后剪枝):待决策树生长完毕后再进行剪枝

三、信息量与信息熵
3.1:信息熵定义:
信息熵是由《信息论》奠基人香农提出来的,是用来描述信源的不确定程度。
熵:化学上是指某一状态的混乱程度
假设当前的样本集合D中包含y个类,第K类的样本的比例为pk ,则样本集合D的信息熵定义为:
在这里插入图片描述
Ent(D)的值越小,则D的纯度越高,二分类y=2,n分类y=n

3.2:为什么信息熵会这样定义:
假设我们将衡量不确定性大小的这个量叫做“信息量”
·首先“信息量”的值肯定不会是负数;
·然后,总体的不确定程度应该会随着自变量p成单调递减的关系;
·可加性:两个独立类共同产生的不确定性应该等于各自不确定性之和,即
在这里插入图片描述
同时满足这三个条件的函数f就是负的对数函数,
即:
在这里插入图片描述
也就是说,一个事件的信息量就是这个事件发生的概率的负对数。而信息熵是跟所有事件的可能性有关的,也就是说发生某一事件可以得到的信息量的大小就是某一事件的信息熵,总体的信息熵就是信息量的期望。即:
在这里插入图片描述
说明:信息量的值越小,状态越稳定,混乱程度越小。

3.3:基尼指数(Gini)
同理,我们除了用熵来表示信息的混乱程度,也可以用基尼指数(Gini)来表示信息的混乱程度。基尼指数表达式为:
在这里插入图片描述
四、决策树之ID3算法:使用信息增益选择测试属性:
我们的目标是根据样本属性(年龄、长相、收入、公务员)来判断这个样本的分类归属,那么三个属性究竟选择哪个属性作为第一分类基准呢?

4.1:信息增益
我们知道当获取信息后,就可将之前不确定的内容转为确定内容,而信息伴随着不确定性,直观将小概率事件比一般事件包含的信息量大,因为“百年一见”的事件要比“习以为常”的事件更混乱。
那么该如何度量——当某个事件发生后,信息总体是更趋于平衡的呢?ID3算法采用的是信息增益来度量熵的降低程度。
4.2:实例分析
现在我们收集了天气(outlook)温度(temperature)湿度(humidity)风(windy)四个特征生成一个决策树判断是否出门打篮球。
在这里插入图片描述
分别按四个特征统计出是否出门情况:
在这里插入图片描述
首先我们算出在没有任何特征情况下的信息熵:
在这里插入图片描述
属性有4个: outlook , temperature , humidity , windy。我们首先要决定哪个属性作树的根节点。对每项指标分别统计:在不同的取值下打球和不打球的次数。
下面我们计算当已知变量outlook的值时,信息熵为多少。

outlook=sunny时, 2/5的概率打球, 3/5的概率不打球。entropy=0.971
outlook= overcast时, entropy=0
outlook=rainy时, entropy=0.971

而根据历史统计数据, outlook取值为sunny、overcast、 rainy的概率分别是5/14、 4/14、 5/14 ,所以当已知变量outlook的值时,信息熵为: 5/14 x 0.971 + 4/14 x 0+ 5/14 x 0.971 = 0.693

这样的话系统熵就从0.940下降到了0.693 ,信息增溢gain(outlook)为0.940-0.693=0.247
同样可以计算出gain(temperature)=0.029 , gain(humidity)=0.152 , gain(windy)=0.048。
gain(outlook)最大(即outlook在第一步使系统的信息熵下降得最快) , 所以决策树的根节点就取outlook。

接下来要确定N1取temperature、humidity还 是windy?在已知outlook=sunny的情况,根据历史数据,我们作出类似table 2的一张表,分别计算gain(temperature)、gain(humidity)和gain(windy) ,选最大者为N1。
依此类推,构造决策树。当系统的信息熵降为0时,就没有必要再往下构造决策树了,此时叶子节点都是纯的–这是理想情况。最坏的情况下,决策树的高度为属性(决策变量)的个数,叶子节点不纯(这意味着我们要以一定的概率来作出决策)。

4.3:ID3算法的缺陷
如果我们在上述实例中加多一个特征编号(id),我们知道id跟你是否出门打篮球是没有影响的,那我们看下他的信息增益。因为id有14个数据,每个数据的值不是1就是0,所以信息熵即为0,即信息增益达等于原始信息熵Ent=0.940。信息增益达到最大。按照ID3算法,应该把id放在根节点。而我们知道id特征与你是否出门打篮球是无关的。

五、决策树之C4.5算法:使用信息增益率选择测试属性:
C4.5算法是ID3算法的基础上改进的算法,C4.5算法综合了信息增益准则和信息率准则的特点:先从候选划分属性中找到信息增益高于平均水平的属性,再从中选择增益比最高的。
简而言之就是:
某属性的信息增益比=某属性的信息增益/某属性的信息熵
还拿上面的例子说明,我们算出gain(windy)=0.048,是否有风的信息增益为0.048。接着我们算他的风速根信息熵
在这里插入图片描述
那么他的信息增益比为:
在这里插入图片描述
六:决策树之CART算法:
CART算法主要的评判依据是基尼值,以及基尼指数。

6.1、基尼值:Gini(D)
基尼值是反映从数据集D中随机抽取两个样本,其类别标签不一致的概率。因此,Gini(D)越小,则数据集D的纯度越高。
在这里插入图片描述
而基尼指数Gini_index(D,a)为
在这里插入图片描述
所以:我们在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性。

例:以有无房为例,计算有无房的基尼指数
在这里插入图片描述
解:
在这里插入图片描述
七:决策树预防过拟合的方法:剪枝
剪枝的目的其实就是防止过拟合,它是决策树防止过拟合的最主要手段。决策树中,为了尽可能争取的分类训练样本,所以我们的决策树也会一直生长。但是呢,有时候训练样本可能会学的太好,以至于把某些样本的特有属性当成一般属性。这时候就我们就需要主动去除一些分支,来降低过拟合的风险。

剪枝一般有两种方式:预剪枝和后剪枝。

预剪枝
一般情况下,只要结点样本已经100%纯了,树才会停止生长。但这个可能会产生过拟合,因此我们没有必要让它100%生长,所以在这之前,设定一些终止条件来提前终止它。这就叫预剪枝,这个过程发生在决策树生成之前。

一般我们预剪枝的手段有:

1、限定树的深度

2、节点的子节点数目小于阈值

3、设定结点熵的阈值

等等。

后剪枝
顾名思义,这个剪枝是在决策树建立过程后。后剪枝算法的算法很多,有些也挺深奥,这里提一个简单的算法的思想,就不深究啦。

Reduced-Error Pruning (REP)

该剪枝方法考虑将树上的每个节点都作为修剪的候选对象,但是有一些条件决定是否修剪,通常有这几步:

1、删除其所有的子树,使其成为叶节点。

2、赋予该节点最关联的分类

3、用验证数据验证其准确度与处理前比较

如果不比原来差,则真正删除其子树。然后反复从下往上对结点处理。这个处理方式其实是处理掉那些“有害”的节点。

八、随机森林
为什么要引入随机森林呢。我们知道,同一批数据,我们只能产生一颗决策树,这个变化就比较单一了。简单来说,多个决策树就组成随机森林。
这就有了集成学习的概念。随机森林有两大随机性。
第一大随机性就是算法随机。
在这里插入图片描述
图中可以看到,每个个体学习器(弱学习器)都可包含一种算法,算法可以相同也可以不同。如果相同,我们把它叫做同质集成,反之则为异质。
随机森林则是集成学习采用基于bagging策略的一个特例。

第二大随机性就是样本随机。
在这里插入图片描述
从上图可以看出,bagging的个体学习器的训练集是通过随机采样得到的。通过n次的随机采样,我们就可以得到n个样本集。对于这n个样本集,我们可以分别独立的训练出n个个体学习器,再对这n个个体学习器通过集合策略来得到最终的输出,这n个个体学习器之间是相互独立的,可以并行。
注:集成学习还有另一种方式叫boosting,这种方式学习器之间存在强关联,有兴趣的可以了解下。

随机森林采用的采样方法一般是是Bootstap sampling,对于原始样本集,我们每次先随机采集一个样本放入采样集,然后放回,也就是说下次采样时该样本仍有可能被采集到,经过一定数量的采样后得到一个样本集。由于是随机采样,这样每次的采样集是和原始样本集不同的,和其他采样集也是不同的,这样得到的个体学习器也是不同的。

随机森林最主要的问题是有了n个结果,怎么设定结合策略,主要方式也有这么几种:
加权平均法:
在这里插入图片描述
当学习器的权值都为1/n时,这个平均法叫简单平均法。

投票法:

投票法类似我们生活中的投票,如果每个学习器的权值都是一样的。

那么有绝对投票法,也就是票数过半。相对投票法,少数服从多数。

如果有加权,依然是少数服从多数,只不过这里面的数是加权后的。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值