机器学习-决策树与随机森林

依然从一个例子出发,就是周志华老师的西瓜书的例子

案例

 生活中,我们经常会遇到这种问题,我们的决策过程就是下图所示过程

那么,我们如何决策才使得我们最终挑选的瓜是好瓜的概率大呢?即,我们每一步该根据那个特征来做决定呢?这里就会用到信息熵的概念,与通信原理中信息熵的原理是相同的(不知道的可以看周志华老师的西瓜书)

  1. 我们看上述表格,一共有17个样本,正负样例分别有8,9个,则,样本的信息熵为:0.998,
  2. 如果,先以色泽作为选择标准,则有表格,我们知道色泽的集合有三个元素{青绿,乌黑,浅白},那么这三个子集的样本数分别为6,6,5;各自的正负样本分别为{3,3},{4,2},{1,5},与1中一样,计算出各自的信息熵,分别为H(D1)= 1,H(D2)=0.918,H(D3) =0.722,
  3. 计算色泽的信息增益=0.109.
  4. 重复2,3,分别计算把其他特征作为选择标准时的信息增益分别为G(根蒂)=0.143,G(敲声)=0.141,G(纹理) = 0.381,G(脐部)=0.289,G(触感) = 0.006,显然,纹理的信息增益最大,首先,应该使用纹理作为选择标准

     

  5. 下面就是一个递归的过程,

       在决策过程中可以发现,熵是一个不断下降的,而我们要找的就是熵下降最快的。极限情况就是,到叶节点的时候,熵为0了,那就是一个确定的解了,当然,我们在决策树建立的过程中会做一个剪枝处理,不让熵为0,防止模型在训练集过拟合。

决策树学习的生成算法

ID3

就是上面说到的使用信息增益的方法

 C4.5

如果,我们不用信息增益衡量,而是用信息增益率,即用信息增益除以该特征的本身的不确定性,这就是C4.5

CART

这个也是很常用的,我还没有找到相关的资料,还不了解

基尼系数

这里说一个小的点,基尼系数,我们可能都听说过,不过这个基尼系数与经济学中的基尼系数不同。这里的基尼系数是指在属性集合中特征A的表述熵的不确定的值

,因此,因此我们选择基尼系数最小的特征作为划分标准。

决策树的过拟合

剪枝

     剪枝分为预剪枝和后剪枝,周志华老师的书上将的非常细致,也很容易理解,我就不做搬运工了。下面主要说说随机森林

随机森林

 周志华老师在讲随机森林之前,先讲了个体与集成的关系,简单来说就是,无论我们采用的是LR还是决策树模型,每次训练都会得到一个模型,我们把它称为基学习器,为了在验证数据上有更好的效果,我们可以将基学习器进行集成。

Bagging

Bagging 是一个集成学习的很有名的算法。它的思想其实很简单,就是采取有放回的采样。

每次从样本中有放回的取m个样本放到Ti中,这样就会得到B个包含m个样本的采样集,经训练就会得到B个基学习器。

随机森林就是对bagging 的一个扩展,在Bagging的基础上引入了随机属性的选择。具体来说就是在构造某一棵决策树时,某个节点处做选择不再是从所有特征集合中选择使得该节点信息增益最大的特征作为决策标准,而是先从所有特征集合中随机选择k(k小于特征集合总数n)个特征,再从这k个特征中选择使得该节点决策最优的特征。

投票法

投票法决策树生成随机森林的一种方法:

绝对多数投票法

相对多数投票法

加权投票法

样本不均衡问题

很多时候,我们拿到的样本是不均衡的,比如那个肿瘤的例子,我们从医院一般拿到的可能90%的都是阳性的样例,这样就会给训练造成扰动,对于这个问题,是分类问题面对的,之后会专门讨论。

 

posted @ 2018-03-27 11:32  Holly_U  阅读(458)  评论(0)    收藏  举报