Bagging 和 Boosting 都是一种将几个弱分类器(可以理解为分类或者回归能力不好的分类器)按照一定规则组合在一起从而变成一个强分类器。但二者的组合方式有所区别。
一、Bagging
Bagging的思想很简单,我选取一堆弱分类器用于分类,然后最终结果投票决定,哪个票数多就属于哪一类。不过Bagging的一个重要步骤就是在训练每一个弱分类器的时候不是用整个样本来做分类,而是在样本中随机抽取一系列的样本集,可以重复也可以数目少于原样本,这就是Bootstraping。Bagging的思想简单,应用很广泛,最出名的应用就是Random Forest。
二、Boosting
Booting的思想与Bagging有所不同。第一个不同,在输入样本的选取上,Bagging是随机抽取样本,而Boosting则是按照前一个分类器的错误率来抽取样本。好比前一个分类器在样本A,B,F上出错了,那么我们会提升抽取这三个样本的概率来帮助我们训练分类器。第二个不同,在弱分类器组合上,Bagging就是投票就好啦,但是Boosting确实不是这样,Boosting主要是将分类器线性组合起来,以为着分类器前面带着个权重,错误率高的分类器的权重会低一些,正确率高的则高一些,这样线性组合起来就是最终的结果。当然也有非线性组合的权重,但在这里就不赘述了。Boosting最出名的应用就是Gradient Boosting Decision Tree,我们会在一篇文章中介绍。