再探集成学习

在“初识集成学习”一文中,笔者用了投票法来整合基学习器的预测结果;其实投票法只是集成学习中基学习器的结合策略之一,为了对集成学习有一个总体的概览,本文将对集成学习的整个面貌作一个大致描绘。算法

对于集成学习的研究,主要集中在基学习器的生成方式和预测结果的整合上,所以本文将遵守此思路依次介绍:学习

1 基学习器的生成

1.1 bagging算法

Bagging算法做为集成学习中生成基学习器的算法之一,最初由Leo Breiman于1996年提出。Bagging算法可与其余分类、回归算法结合,在提升预测准确率、稳定性的同时,经过下降结果的方差以免过拟合的发生。测试

使用bagging时,个体学习器之间不存在强依赖关系,而且个体学习器能够并行生成,提升训练效率。其训练思路以下:
给定包含m个样本的数据集,先从样本中取出一个放入采样集中,再把该样本返回原数据集,使得下次采样时该样本仍能够被选中;通过m次随机采样,便获得包含m个样本的采样集。依照该方法操做T次,获得T个含有m个训练样本的采样集,而后基于这T个采样集训练出T个基学习器,将T个基学习器结合,便可获得最终的集成学习器。
bagging的表明模型即是熟知的随机森林,它是bagging的一个扩展体。效率

1.2 boosting算法

Boosting是一个将弱学习器提高为强学习器的算法。其训练思路为:
先从初始训练集训练出一个基学习器,再根据基学习器的表现对样本分布进行调整,使得前一个基学习器预测错误的训练样本在后续获得更多关注,而后基于调整后的样本分布来训练下一个基学习器;如此重复,直至基学习器数目达到指定值,或整个集成结果达到给定条件。扩展

实现boosting的表明算法有:
1 adaboost
2 提高树(boosting tree)
3 梯度提高树(GBDT)并行

2 基学习器的结合策略

经过上述方法获得众多基学习器后,在后续测试或应用中,须要把基学习器的预测结果进行合成,从而获得整个集成学习器的结果。经常使用的结合策略以下:方法

2.1 平均法

对于回归问题,使用平均法结合各基学习器的预测结果,平均法又分为简单平均和加权平均,其中简单平都可视为加权平均的一种特殊状况,即各基学习器的权值都同样。使用加权平均时,各基学习器的权值可根据在验证集上的准确率肯定。im

2.2 投票法

对于分类问题,使用投票法结合各基学习器的预测结果,投票法又分为绝对多数投票(即如某标记的投票过半数则预计为该标记,不然拒绝预测,该方法可能对某些输入得不到输出)、相对多数投票( 即预测得票最多的标记,若同时出现多个票数最多,则任选其一)以及加权投票(相似于回归问题中的加权平均,也是预测得票最多的标记)。技术

3 独特的stacking

Stacking技术就是选取几个简单的模型(通常称为初级学习器),将它们在训练集上进行K折交叉验证输出预测结果,而后将每一个模型输出的预测结果合并为新的特征,并使用另外的的模型(通常称为次级学习器)在新的特征上进行训练。数据

举例说明:对于一个二分类问题(标签记为0,1),选取逻辑回归(LR)、支持向量机(SVM)、k最近邻(kNN)做为初级学习器,先用这三个初级学习器分别在原训练集上进行训练调参验证,完成以后再让全部初级学习器总体预测一次训练集;好比对训练集中的某一个样本三者的预测分别为0,0,1,则将这三个预测值组成一个向量(0,0,1)做为一个新的训练样本,假设原训练集有M个训练样本,则通过此次总体预测,将获得M个相似于(0,0,1)这样的3维向量,视这M个新获得的数据为一个新的训练集,再选取一个分类模型(次级学习器)在新的训练集上进行训练拟合,如此便获得整个集成分类器。
在利用上述集成分类器进行预测时,先让原始样本过一遍前三个初级学习器,将初级学习器预测获得的结果向量做为次级学习器的输入,最后将次级学习器的输出做为整个集成学习器的预测输出。

stacking既能够与bagging、boosting比肩做为构成集成学习的三个重要组成部分之一,也能够被视为整合基学习器的策略之一。须要注意的是,stacking并无强制限定集成模型只能由初级学习器和次级学习器组成,换句话说,咱们还能够日后继续延伸,添加诸如三级学习器、四级学习器等,但具体效果怎么样,还要视具体问题而定。

相关文章
相关标签/搜索