bagging:套袋法
boosting:提升算法
bagging(套袋法)
在bagging中,通过对训练样本重采样的方法得到不同的训练样本集,在这些新的训练样本集上分别训练学习器,最终合并每一个学习器的结果,作为最终的修恶习结果,bagging方法的具体过程为:
在bagging方法中,b个 学习器之间彼此是相互独立的,这样的特点使得Bagging方法更容易并行。
Boosting(梯度提升树)
与Bagging方法不同,在Boosting算法中,学习器之间是存在先后顺序的,同时 ,每一个样本是有权重的,初始时,每一个样本的权重是相等的。首先,第一个学习器对训练样本进行学习,当学习完成后,增大错误样本的权重,同时减少正确样本的权重,再利用第2个学习器对其进行学习,一次进行下去,最终得到b个学习器,最终,合并这b个学习器的结果,同时,与Bagging中不同的是,每一个学习器的权重也是不一样的。Boosting方法的具体过程为:
在Boosting方法中,最重要的方法包括:Adaboost和GBDT
Boosting和Bagging模型相比,Boosting可同时降低偏差和方差。在实际应用中,Boosting算法也还是存在明显的高方差问题即过拟合。
Adaboost的原理:
Adaboost算法与Boosting算法不同,它是使用整个训练集来训练弱学习器,其中训练样本在每次迭代的过程中都会重新被赋予一个权重
Adaboost
Adaboost算法步骤:
可以看作一个简单的弱分类算法提升的过程,这个过程通过不断地训练,可以提高对数据的分类能力。过程为:
1.先通过对N个训练样本的学习得到第一个弱分类器。
2.将分错的样本和其他的新数据一起构成一个新的N个样本,通过对这个样本的学习得到第2个弱分类器。
3.将1和2都分错了的样本加上其他的新样本构成另一个新的N个的训练样本,通过对这个样本的学习得到第三个弱分类器。
4.最终经过提升的强分类器。即某个数据被分为哪一类要由各个分类器权值决定。