集成学习
概述
严格意义上来说,集成学习算法不能算是一种机器学习算法,而像是一种模型优化手段,是一种能在各种机器学习任务上提高准确率的强有力技术。在很多数据挖掘竞赛中,集成学习算法是比赛大杀器,能很好地提升算法的性能。集成学习算法是由多个较弱的模型以一定方法组成集成模型,而这些弱学习器包括SVR、LASSO、KNN等等。Schapire从理论上证明了在知道弱学习器正确率下限的时,可以通过集成算法能将弱学习器提升为强学习器。
集成算法往往是先单独对每个模型进行训练,然后以某种方式结合这些模型的预测结果,最终得到一个总体的更具可靠性的预测结果。目前集成学习算法大多来源于Bagging、Boosting、Stacking三种思想。
1. Bagging算法
Bagging算法,又称为装袋算法,最初由Leo Breiman于1996年提出,是并行式集成学习的典型代表。Bagging算法主要是从数据层面上设计,使用自助采样法随机有放回地对样本进行采样,构建出样本量相等的相互独立的样本数据集,在同一算法中训练出不同的模型。Bagging算法的集成策略也很简单,对于分类问题,一般通过投票法,以多数模型预测结果为最终结果。而对于回归问题,一般采用算术平均法,对所有模型的预测结果做算术平均得到最终结果。Bagging算法的流程如图1.1所示, Bagging算法步骤如图1.2所示。