决策树与随机森林算法

决策树

  1. 决策树学习基本算法:

输入:训练集D,属性集A

过程:函数 TreeGenerate(D,A)

1:生成结点 node;

2:if D中样本全属于同一类别C then

3:  将node标记为C类叶结点;return

4:end if

5:if A为空 or D中样本在A上取值相同 then

6:将node标记为叶结点,其类别标记为D中样本数最多的类; return

7:end if

8:从A中选择最优划分属性a*

9:for a* 的每一个值a*vdo

10:  为node生成一个分支;令Dv表示D中在a*上取值为a*v的样本子集;

11:  if Dv为空 then

12:    将分支结点标记为叶结点,其类别标记为D中样本最多的类;return

13:  else

14:    以TreeGenerate(Dv,A{a*})为分支结点

15:  end if

16:end for

输出: 以node为根结点的一棵决策树

 

决策树的生成是一个递归过程,有三种情况会导致递归返回:

(1)当前结点包含的样本全属于同一类别,无需划分

(2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分。将其类别设定为该结点所含样本最多的类别

(3)当前结点包含的样本集为空,不能划分。此时我们将其类别设定为其父结点所含样本最多的类

2、划分选择

(1)信息增益(ID3)

信息熵,假定当前样本集合D中第k类样本所占的比例为pk(k=1,2,…,|y|),则D的信息熵定义为EntD=-k=1|y|pklog2pk。Ent(D)的值越小,则D的纯度越高。由信息熵可以计算出信息增益,信息增益越大,意味着使用属性a来进行划分所获得的纯度提升越大。信息增益对可取值数目较多的属性有所偏好。

(2)增益率(C4.5)

增益率准则对可取值数目较少的属性有所偏好,因此C4.5算法先从候选划分属性中找出信息增益高于平均水平的属性,在从中选择增益率最高的。

(3)基尼指数(CART)

直观来说,基尼指数反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率,因此Gini(D)越小,则数据集D的纯度越高。CART是在给定输入随机变量X条件下输出随机变量Y的条件概率分布的学习方法。CART假设决策树是二叉树。

3、剪枝处理

       决策树剪枝的基本策略有预剪枝和后剪枝。预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;后剪枝则是从训练集生成一棵完整的决策树,自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。如何判断泛化性能是否提升?将数据机随机划分为两部分,将其中一部分作为验证集。

       预剪枝降低了过拟合的风险,减少了决策树的训练时间开销和测试时间开销。但另一方面,有些分支的当前划分虽不能提升泛化性能,但后续划分可能导致性能提升;预剪枝基于贪心本质禁止这些分支展开,给预剪枝决策树带来了欠拟合的风险。

后剪枝保留了更多的分支,欠拟合风险小,泛化性能好,但是训练时间开销大。

4、连续值处理

连续属性离散化,二分法(C4.5),假设样本集D中的连续属性a,在D上有n个不同的取值,那么他们有n-1个元素的候选划分点集合。

5、缺失值如何处理

首先要解决两个问题:(1)如何在属性值缺失的情况下进行划分选择?(2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?

给定训练集D和属性a,令D表示D中在属性a上没有缺失值的样本子集。对于问题1,我们仅可根据D来判断属性a的优劣。假定我们为每个样本赋一个权重wx,并定义:

直观的看,对属性a,ρ表示无缺失值样本所占的比例,pk表示无缺失值样本中第k类所占的比例,rv表示无缺失值样本中在属性a上取值为av的样本所占的比例。基于上述定义,我们可以将信息增益推广:

对于问题2,如果样本x在划分属性a上的取值已知则将x划入与其对应的子节点,且样本权值在子节点中保持为wx,若样本x在划分属性a上的取值未知,则将x同时划入所有子结点,且样本权值在与属性值av对应的子节点上调整为rvwx

 

6、回归树

前面介绍的都是基于分类树的模型,下面介绍回归树,比如CART回归树就是在给定输入随机变量X条件下输出随机变量Y的条件概率分布的学习方法。

(1)回归树的生成

一个回归树对应输入空间(特征空间)的一个划分以及在划分的单元上的输出值。当输入空间的划分确定时可以用平方误差表示回归树对于训练数据的预测误差,用平方误差最小的准则求解每个单元上的最优输出值时,最优输出值即为该单元的均值。对于空间的划分,采用启发式方法,遍历所有切分变量和切分点。

7、随机森林

随机森林是bagging的一个扩展变体。RF在以决策树集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。具体地说,传统决策树在选择划分属性时是在当前结点的属性结合(假定有d个属性)中选择一个最优属性;而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,再从这个子集中选择一个最优属性用于划分。随机森林的基学习器的多样性不仅来自样本扰动,还来自属性扰动,使得最终集成的泛化性能可通过个体学习器之间差异度的增加而进一步增加。

8、集成学习的好处

学习器结合从三个方面带来好处:首先,从统计的方面来看,由于学习任务的假设空间往往很大,可能有多个假设在训练集上达到同等效果,此时若使用单学习器可能因误选而导致泛化性能不佳,结合多个学习器则会减少这一风险。第二,从计算的方面,学习算法往往会陷入局部极小,有的局部极小点所对应的泛化性能可能很糟糕,多次运行之后进行结合,降低陷入糟糕局部极小点的风险。第三,从表示的方面来看,某些学习任务的真实假设可能不在当前学习算法所考虑的假设空间中,此时若使用单学习器肯定无效,而通过结合多个学习器,由于相应的假设空间有所扩大,有可能学的更好的近似。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值