Bagging与随机森林算法
注:本篇博客主要参考了博客Bagging与随机森林算法原理总结。
在集成学习中,有两个流派—— boosting
派系 和 bagging
流派。前者的特点是各个弱学习器之间有依赖关系,而后者的特点是各个弱学习器之间没有依赖关系,可以并行拟合。其中,随机森林算法便是 bagging
流派的典型代表。
Bagging原理
我们知道,为了得到泛化性能强的集成,则应尽可能地使弱分类器彼此之间相互独立。虽然,我们无法真正的实现个体分类器之间的相互独立,但是可以设法使基分类器间有较大的差异。例如给定有 个样本的数据集,我们可以对其进行有放回的采样。在此情况下,一个样本每次被抽到的概率为 。因此,在 次采样中,一个样本始终未被抽到的概率为 。熟悉高数的同学不难知道,当 时,。也就是说,在每轮采样中,大约有 的样本未被采样。
如此,我们既保证了每个基分类器的训练数据有差异,从而使得基分类器彼此间有较大差别,又确保每个基分类器使用到了大部分样本进行训练,保证基分类器效果不会太差。
此外,我们将大约的样本称为袋外数据(Out of Bag
,简称 OOB
)。这些数据没有参与分类器的训练过程,可以用作测试集以检验模型效果。
同样地,Bagging
算法对于弱分类器没有限制,但常使用决策树和神经网络。并且,其集成策略也比较简单——对于分类问题,通常使用简单的投票法,得到最多票数的类别将成为模型的最终输出;而针对回归问题,通常使用简单平均法,对每个分类器的输出进行算术平均得到最终的模型输出。
最后,Bagging
算法如下图所示。
随机森林算法原理
至此,我们对 Bagging
算法有了一定的认识。那么接下来,我们就可以继续介绍 随机森林(Random Forest
, 即 RF
)。
首先,RF
使用 CART
决策树作为弱分类器;其次,在使用决策树的基础上,RF
对决策树的建立做了改进——在普通的决策树中,我们会在节点上所有的 n
个样本特征中选择一个最优的特征来做决策树的左右子树划分,但 RF
通过随机选择节点上的一部分样本特征,假设为 。然后 RF
在这些随机选择的 个样本特征中,选择一个最优的特征来做决策树的左右子树划分。
如果 ,则此时的 RF
的 CART
决策树与普通的决策树没有区别。此外, 越小,模型的方差会减小,但是偏移会增大。在算法具体实现中,一般会通过交叉验证调参获取一个合适的 值。
最后,RF
算法如下图所示。
参考文献
- 周志华 《机器学习》
- 刘建平 Bagging与随机森林算法原理小结