在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。集成方法是将几种机器学习技术组合成一个预测模型的元算法,以达到减小方差(bagging)、偏差(boosting)或改进预测(stacking)的效果。
集成学习(Ensemble Learning)是一种机器学习框架,它会创建多个基模型,每个基模型被训练出来解决同一个问题,然后通过集成这些基模型的预测结果来提升整体表现。
现在有两个问题:
(1) 训练什么样的基模型,如何训练
(2)用什么方式组合不同类型的基模型,以获得准确且稳健的模型?
根据解决上述两问题的思路,集成学习分为三类:
(1)Bagging(bootstrap aggregating,装袋):Bagging即套袋法,先说一下bootstrap,bootstrap也称为自助法,它是一种有放回的抽样方法,目的为了得到统计量的分布以及置信区间,选择相同的强学习器作为基模型,每个基模型的训练数据不是全部训练数据,而是通过对全部数据有放回采样产生的随机子集,预测时各个基模型等权重投票。属于一种并行的训练结构。
(2)Boosting:选择相同的弱分类器作为基模型,依次训练基模型,每个基模型的训练集根据前一次模型的预测结果进行调整,重点关注被前面模型错误预测的样本,以逐步修正基模型的误差。最终的预测结果通过基模型的线性组合产生。是一种串行训练结构。
(3)Stacking:对不同类型模型的融合。对每个基模型进行训练,并将预测结果作为新的特征,对新的特征构成的训练集进行一次训练,最终的预测结果由其产生。
针对上述问题,目前主流方法有三种:
1.Boosting方法:包括Adaboosting,提升树(代表是GBDT), XGBoost等
2.Bagging方法:典型的是随机森林
3.Stacking算法
bagging和stacking中的基本模型须为强模型(低偏差高方差),boosting中的基本模型为弱模型(低方差高偏差)。