三、Bagging
3.1 原理
Bagging
直接基于自助采样法bootstrap sampling
。自助采样法的步骤是:给定包含 个样本的数据集:
- 先随机取出一个样本放入采样集中,再把该样本放回原始数据集。
- 这样经过 次随机采样操作,得到包含 个样本的采样集。
初始训练集中有的样本在采样集中多次出现,有的则从未出现。一个样本始终不在采样集中出现的概率是 。
根据 ,因此初始训练集中约有 63.2% 的样本出现在了采样集中。
自助采样法给
Bagging
算法带来了额外的优点:由于每个基学习器只用初始训练集中约 63.2% 的样本来训练,剩下的约 36.8% 的样本可用作验证集来对泛化性能进行包外估计。Bagging
的基本流程:- 经过 轮自助采样,可以得到 个包含 个训练样本的采样集。
- 然后基于每个采样集训练出一个基学习器。
- 最后将这 个基学习器进行组合,得到集成模型。
在使用
Bagging
学习器进行预测时:- 分类任务采取简单投票法,取每个基学习器的预测类别的众数。
- 回归任务使用简单平均法,取每个基学习器的预测值的平均。
从
偏差-方差分解
的角度来看:Bagging
主要关注降低方差,它能平滑强学习器的方差。因此它在非剪枝决策树、神经网络等容易受到样本扰动的学习器上效果更为明显。
Boosting
主要关注降低偏差,它能将一些弱学习器提升为强学习器。因此它在
SVM
、knn
等不容易受到样本扰动的学习器上效果更为明显。
3.2 随机森林
随机森林
Random Forest:RF
是Bagging
的一个扩展变体。随机森林对
Bagging
做了小改动:Bagging
中基学习器的“多样性”来自于样本扰动。样本扰动来自于对初始训练集的随机采样。随机森林中的基学习器的多样性不仅来自样本扰动,还来自属性扰动。
这就是使得最终集成的泛化性能可以通过个体学习器之间差异度的增加而进一步提升。
随机森林在以决策树为基学习器构建
Bagging
集成模型的基础上,进一步在决策树的训练过程中引入了随机属性选择。传统决策树在选择划分属性时,是在当前结点的属性集合(假定有 个属性)中选择一个最优属性。
随机森林中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含 个属性的子集,然后再从这个子集中选择一个最优属性用于划分。
- 如果 ,则基决策树的构建与传统决策树相同。
- 如果 ,则随机选择一个属性用于划分。
- 通常建议 。
随机森林的优点:
- 训练效率较高。因为随机森林使用的决策树只需要考虑所有属性的一个子集。
- 随机森林简单、容易实现、计算开销小。
- 随机森林在很多现实任务中展现出强大的性能,被称作 “代表集成学习技术水平的方法”。
随着树的数量的增加,随机森林可以有效缓解过拟合。因为随着树的数量增加,模型的方差会显著降低。
但是树的数量增加并不会纠正偏差,因此随机森林还是会有过拟合。