集成学习—Bagging和随机森林
Bagging
Bagging就是Bootstrap aggregating,自举汇聚法,亦称为装袋法。
与Boosting的不同:
-
Boosting在训练时会使用所有的数据集,而Bagging有其独特的采样方法,也就是Bootstrap
假设有m个样本,则每次从样本总体中随机选取一个放入中,注意的是该样本并没有在原样本总体中剔除,这样重复m次,得到新的样本,中可以有重复的样本,并没有包含中所有样本
一个样本在取样的过程中都没有被选到的概率为,当时,概率趋于,则说明在m很大时,新选取的样本是原样本总体的约64%
-
Boosting的每个基分类器有自身的系数,每次训练时数据集的权重也不同,而Bagging的每个基分类器,每个数据集都是平等同阶的
-
Boosting的每个基学习器需基于上一个学习器的结果进行学习,所以是串行计算,而Bagging能够实现并行计算
-
Boosting只能处理二分类任务,而Bagging能处理多分类任务
-
Bagging由于其独特的采样方式,故不需要测试集,每个基学习器只使用了大概64%的样本,而剩余的36%的样本可用作测试集来对泛化性能进行“包外估计”,另外这些测试卷还可以作为其他用途如决策树的剪枝,神经网络的过拟合判断等
个人理解:由于Bagging的每个分类器是同阶的,则有
所以Bagging的偏差与单个分类器很类似,但方差能够大幅度降低,Bagging依靠降低方差来降低误差。
但对于Boosting来说,因为每次权重的更新都是为了是决策结果更接近真实结果,故最终的偏差能够大幅度降低,但是每个分类器是串行生成,相关性很大,不能有效降低方差,Boosting依靠降低偏差来降低误差。
随机森林
随机森林是基于Bagging改进的一种算法
一句话说就是民主决策应用到决策树上,一般一个数据集只能生成一个决策树,但是由于Bagging的采样方法,故可以有多颗决策树,最终投票决定决策结果,步骤如下:假设有m个样本,每个样本都有k个属性
- 首先类似Bagging的采样方法采样的数据集
- 在k个属性中随机选取d个属性,通常
- 根据此d个属性生成决策树,每棵树尽可能生长并不剪枝
- 最终循环T次后投票决定最终决策结果
随机体现在第一和第二步上。
来源:CSDN
作者:Ylimevoli
链接:https://blog.csdn.net/weixin_45606655/article/details/104137686