Bagging与随机森林算法

注:本篇博客主要参考了博客Bagging与随机森林算法原理总结

在集成学习中,有两个流派—— boosting 派系 和 bagging 流派。前者的特点是各个弱学习器之间有依赖关系,而后者的特点是各个弱学习器之间没有依赖关系,可以并行拟合。其中,随机森林算法便是 bagging 流派的典型代表。

Bagging原理

我们知道,为了得到泛化性能强的集成,则应尽可能地使弱分类器彼此之间相互独立。虽然,我们无法真正的实现个体分类器之间的相互独立,但是可以设法使基分类器间有较大的差异。例如给定有 m m m 个样本的数据集,我们可以对其进行有放回的采样。在此情况下,一个样本每次被抽到的概率为 1 m \frac{1}{m} m1。因此,在 m m m 次采样中,一个样本始终未被抽到的概率为 ( 1 − 1 m ) m (1 - \frac{1}{m})^{m} (1m1)m。熟悉高数的同学不难知道,当 m → ∞ m \rightarrow \infty m时, ( 1 − 1 m ) m = 1 e ≃ 0.368 (1 - \frac{1}{m})^{m} = \frac{1}{e} \simeq 0.368 (1m1)m=e10.368。也就是说,在每轮采样中,大约有 36.8 % 36.8\% 36.8%的样本未被采样。

如此,我们既保证了每个基分类器的训练数据有差异,从而使得基分类器彼此间有较大差别,又确保每个基分类器使用到了大部分样本进行训练,保证基分类器效果不会太差。

此外,我们将大约 36.8 % 36.8\% 36.8%的样本称为袋外数据(Out of Bag,简称 OOB)。这些数据没有参与分类器的训练过程,可以用作测试集以检验模型效果。

同样地,Bagging 算法对于弱分类器没有限制,但常使用决策树和神经网络。并且,其集成策略也比较简单——对于分类问题,通常使用简单的投票法,得到最多票数的类别将成为模型的最终输出;而针对回归问题,通常使用简单平均法,对每个分类器的输出进行算术平均得到最终的模型输出。

最后,Bagging 算法如下图所示。

Bagging算法

随机森林算法原理

至此,我们对 Bagging 算法有了一定的认识。那么接下来,我们就可以继续介绍 随机森林(Random Forest, 即 RF)。

首先,RF 使用 CART 决策树作为弱分类器;其次,在使用决策树的基础上,RF 对决策树的建立做了改进——在普通的决策树中,我们会在节点上所有的 n 个样本特征中选择一个最优的特征来做决策树的左右子树划分,但 RF 通过随机选择节点上的一部分样本特征,假设为 n s u b n_{sub} nsub。然后 RF 在这些随机选择的 n s u b n_{sub} nsub 个样本特征中,选择一个最优的特征来做决策树的左右子树划分。

如果 n s u b = n n_{sub} = n nsub=n,则此时的 RFCART 决策树与普通的决策树没有区别。此外, n s u b n_{sub} nsub 越小,模型的方差会减小,但是偏移会增大。在算法具体实现中,一般会通过交叉验证调参获取一个合适的 n s u b n_{sub} nsub值。

最后,RF 算法如下图所示。

RF算法

参考文献

  1. 周志华 《机器学习》
  2. 刘建平 Bagging与随机森林算法原理小结
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值