机器学习10 Bagging and Boosting

这一篇, 我们希望提升模型的性能, 除了更多的数据,更好的EDA等,集成学习可以从模型的角度提升模型的学习性能, 即将基模型组合成一个大模型。 在介绍集成学习前, 我们先介绍一下Bagging和Boosting的概念。

Bagging:

给定包含m个样本的数据集。每轮从样本中使用Bootstrap sampling(自助采样)的方法抽取m个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中, 即)。可以进行T轮采样,从而可以学习到T个基模型。然后再将T个基模型进行结合。

对分类问题:将上步得到的T个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)

Boosting:

先从初始训练集训练出一个基模型,接下来的基模型,会根据之前的模型的学习效果, 相应的修改样本分布,对先前模型学习错误的样本赋予更大的权重。


接下来,想讲一下为什么bagging和boosting可以提升模型的性能。

可以看出,bagging中每个模型基于随机采样的样本,模型相关性比较小, 而boosting,每个模型之间的相关性很强,因为每一个基模型,都和之前的基模型的学习结果相关。

我们再回到方差与偏差的角度:

bagging主要解决的是方差问题, 随着基模型的数量提升,融合模型的方差越来越小,偏差不会有太大的提升,因此基模型不能太弱了,不然融合模型的偏差会比较大。

boosting主要解决的是偏差的问题,随着基模型数量提升,偏差越来越小,但对方差影响较小。因此基模型不能太强,不然会有方差较大的问题,即过拟合。

接下来简单介绍一下Bagging中的典型算法, Random Forest(随机森林)

随机森林以决策树为基模型,构建在Bagging基础上。RF不仅在样本上进行了随机采样, 在属性上也进行了随机采样,每个节点都从所有特征中选择k个特征,在这k个特征中寻找合适的切分特征与切分点,从而进一步降低过拟合。一般情况下, k = log_2d, d是所有特征的个数。因此RF中,基模型的相关性进一步降低了,更好的提升了泛化能力。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。