Bagging与Boosting相同之处是两者都是模型提升性能的方法,都可以将弱分类器集成到一起组成一个强分类器,分类效果好于单个弱分类器。
不同之处是Bagging靠抽样训练多个基分类器来提升,而Boosting是靠改变训练样本的权重来提升。
定义
- Bagging(套袋模型)
- 首先从数据集中抽取数据,共进行K次抽取,形成K个抽样数据集。(数据集之间相互独立,使用的是有放回的抽样方法)
- 使用K个数据集对K个弱分类器进行训练,最后得到K个基分类器。
- 使用投票法或者均值(或者加权均值)对K个分类器的结果进行组合,得到最后的分类结果。
- Boosting (样本权重)
Boosting 算法每次训练基分类器都是使用的全部样本,每轮训练改变样本的权重,下一轮的目标是找到一个函数来拟合上一轮的残差,当残差足够小或者满足条件的时候,停止训练。Boosting 会减少在上一轮训练中训练正确的样本的权重,增大错误样本的权重。(每轮就是一个基分类器)
- Bagging和Boosting的区别
- 训练样本
Bagging的每个基分类器的训练样本来自总样本的抽样,且相互独立。每个样本的权重都是相同的。
Boosting的每个基分类其的训练样本都相同,只是权重不相同。增加分类错误样本的权重,减少分类正确样本的权重。
- 结果组合函数
Bagging中每个基分类器的结果的权重都相同。
Boosting对于分类误差小的分类器的结果的权重大,误差大的分类器的权重小。
- 并行计算
Bagging可并行
Boosting不可并行,因为下一个基分类器的样本权重要根据上一个分类的误差来调整权重。
- Bias和Variance
Bias 指标衡量了在训练阶段,机器学习算法和真实数据之间的差异。即模型本身的精准度,即算法本身的拟合能力。
Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。反应预测的波动情况。
欠拟合
当模型的复杂程度过低或者训练数据过少时候,得到的预测模型不能反映出数据之间正确的关系,会产生较高的偏差,即high bias。
过拟合
当模型的复杂程度过高或者说过度学习了训练数据中的内在联系,而导致在使用测试集验证的时候误差仍然会很大,但这时候不是由bias引起的,而是由high variance引起的
Bagging靠降低Variance来提高精度。Boosting靠降低Bias 来提高精度。