【集成学习】随机森林原理

目录

1. 基本原理

2. 特征选择

2.1 袋外错误率(oob error)

2.2 特征重要性

2.3 特征选择

3. 优缺点

优点

缺点


1. 基本原理

随机森林(Random Forest,RF)是bagging算法的扩展变体,顾名思义,森林就是由多个决策树构成的算法,其基学习器为CART决策树。之所以称为随机是因为:

  • 训练样本选取随机,即每一个样本的选取都是有放回的随机选取。这样,每一颗树的训练样本几乎都不相同。(这一点与保持与bagging相同)
  • 特征选取随机。假设训练数据有d个特征(属性),对基决策树的每个结点,首先从属性集合中随机选择一个包含k个特征(属性)的子集,然后在子集中再选取一个最优的特征(属性)用于该结点的划分。而这里的参数k控制了随机性的程度,令k=d,则就是传统的决策树;令k=1,就是随机选择一个属性用于结点划分。一般情况下,推荐的K值是 k=log2d。

可以说,随机森林是在以CART决策树为基学习器构建bagging集成的基础上,进一步在决策树的训练过程中引入随机特征选择,是bagging算法的变体

样本随机选取:增加了样本扰动
特征随机选取:增加了属性扰动

 其算法过程为:

 输入:数据量为m的训练集D,T颗CART树
 输出:最终的随机森林f(x)
1)对训练集D进行m次随机过采样,得到样本量为m的采样集D_{sample}​;
2)在所有属性特征中随机选择k个属性特征,再在其中选择一个最佳分割属性特征作为节点构建CART树T(x);
3)重复以上两步T次,即建立了T颗决策树;
4)这T颗决策树组成随机森林。如果是分类算法预测,则通过投票表决数据最终属于哪一个类别;如果是回归预测,则 通过平均作为最终模型的输出。

2. 特征选择

2.1 袋外错误率(oob error)

  上面我们提到,构建随机森林的关键问题就是如何选择最优的m个特征,要解决这个问题主要依据计算袋外错误率oob error(out-of-bag error)。

  我们知道,在构建每棵树时,我们对训练集使用了不同的bootstrap sample(随机且有放回地抽取)。所以对于每棵树而言(假设对于第k棵树),大约有1/3的训练实例没有参与第k棵树的生成,它们称为第k棵树的oob样本。

  而这样的采样特点就允许我们进行oob估计,它的计算方式如下:

而这样的采样特点就允许我们进行oob估计,它的计算方式如下:

  (note:以样本为单位)

  1)对每个样本,计算它作为oob样本的每一颗树对它的分类情况(约1/3的树);

  2)然后以简单多数投票作为该样本的分类结果;

  3)最后用误分个数占样本总数的比率作为随机森林的oob误分率。

2.2 特征重要性

上面介绍了oob错误率的计算原理,现在介绍如何利用oob错误率来进行特征重要性的度量

1)按照2.1计算随机森林的初始袋外错误率,为errOOB1

2)随机地对袋外数据OOB所有样本的特征X加入噪声干扰(就可以随机的改变样本在特征X处的值),再次计算随机森林的袋外数据误差,记为errOOB2.

3)特征X的重要性errOOB2-errOOB1,之所以可以用这个表达式来作为相应特征的重要性的度量值是因为:若给某个特征随机加入噪声之后,袋外的准确率大幅度降低,则说明这个特征对于样本的分类结果影响很大,也就是说它的重要程度比较高

2.3 特征选择

1)计算每个特征的重要性,并按降序排序
2)确定要剔除的比例,依据特征重要性剔除相应比例的特征,得到一个新的特征集
3)用新的特征集重复上述过程,直到剩下m个特征(m为提前设定的值)。
4)根据上述过程中得到的各个特征集和特征集对应的袋外误差率,选择袋外误差率最低的特征集。​

3. 优缺点

  • 优点

(1)随机森林中的基学习器多样性不仅来自样本扰动(样本随机选取),还来自属性的扰动(特征的随机选取),这就使得最终模型的泛化性能可通过个体学习器之间的差异度增加而进一步提升(相比于普通的bagging算法性能更佳),并且降低了过拟合的风险。

(2)随机森林的既可以用于回归也可以用于分类任务。

(3)树与树之间是独立的,可以并行训练,提升训练速度,因而可以运用在大规模数据集上。

(4)它能够处理很高维度(feature很多)的数据,并且不用做特征选择;

(5)在训练完后,它能够给出哪些feature比较重要(个人理解是因为在建立随机森林的过程中特征的选取是随机的,在选择特征的过程中需要对特征进行重要性度量,选取较为重要的特征来训练)

  • 缺点

(1)随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合

(2)取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值