Bagging:
集成学习的主要想法是将若干个弱分类器,通过线性组合,组成一个较强的模型。bagging集成学习的方式,可以实现模型的并行化训练,并且能有效的降低方差。
Bagging算法流程::
(1) 从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)
- Bootstraping也称为自助法,它是一种有放回的抽样方法,目的为了得到统计量的分布以及置信区间,总共有63%的样本是原始数据集的
- Bagging的优势在于当原始样本中有噪声数据时,通过bagging抽样,那么就有1/3的噪声样本不会被训练。对于受噪声影响的分类器,bagging对模型是有帮助的。
- 对于为什么是有放回的抽样,因为如果不是有放回的抽样,那么每棵树的训练样本都是不同的,都是没有交集的,这样每棵树都是"有偏的",都是绝对"片面的"
(2) 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
(3) 对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)
由此,总结一下bagging方法:
- Bagging通过降低基分类器的方差,改善了泛化误差
- 其性能依赖于基分类器的稳定性;如果基分类器不稳定,bagging有助于降低训练数据的随机波动导致的误差;如果稳定,则集成分类器的误差主要由基分类器的偏倚引起
- 由于每个样本被选中的概率相同,因此bagging并不侧重于训练数据集中的任何特定实例
- 抗噪能力较好,能够实行并行训练
其中,比较常见的bagging集成学习算法是RandomForest算法,在随机森林算法中,为了使得集成中的模型都具有各项差异性,随机森林采用了训练数据集差异
和特征选择差异
来保证,集成模型的稳定,降低方差。
参考资料: https://www.cnblogs.com/sddai/p/7647731.html https://www.cnblogs.com/zongfa/p/9304353.html