集成学习(Ensemble Learning )简介

来源:互联网 发布:win10声音增强软件 编辑:程序博客网 时间:2024/06/05 00:55

集成学习(Ensemble Learning)

一、问题提出

针对于下图的分类问题(线性可分问题),可以利用简单的线性分类器就可以获得很好的分类效果。
线性可分问题
但是如果数据的分布不是线性可分的话,利用简单的线性分类器就无法达到好的分类效果。
线性不可分问题
那么针对上图的问题,比较常用的方法就有支持向量机、集成学习等。下图是利用集成学习方法,综合多个线性分类器的示例图。
集成学习方法


二、基本概念

简单的例子(来源于ML Wave 的Kaggle Ensemble guide,详情参考第三部分的链接)

假设有10个测试样本,其预测结果的真实值都是1,表示为:

1111111111

通过训练,得到3个分类器,分别是A, B, C,其具体分类情况如下:

A: 1111111100 正确率:80%
B: 0111011101 正确率:70%
C: 1000101111 正确率:60%

利用简单的投票法,针对每一个测试样本,以三个分类器中占多数的结果(即有两个分类器预测为1,一个分类器预测为0,那么最终的结果就是1)作为分类结果,综合三个分类器构建一个分类器,其预测结果为:

1111111101 正确率:90%

很明显可以看到,通过综合多个分类器,取长补短,集成学习获得的效果比单一分类器的结果要好。但是集成学习也不一定可以获得更好的效果,比如下面的例子:

A: 1111111100 正确率:80%
B: 0111111100 正确率:70%
C: 0100101111 正确率:60%
那么通过投票法就得到:
0111111100 正确率:70%

这个例子的效果就不太好了,综合的结果还不如A分类器的结果,有兴趣的同学可以思考一下其中的原因。

基本概念及框架

集成学习(Ensemble Learning)是一种利用某些规则将多个学习算法整合到一起并进行学习预测,从而获得比单一学习算法更好效果的方法。

集成学习的基本框架如下图所示:
集成学习框架

近几年,在Kaggle数据竞赛、阿里天池等比赛中,集成学习方法一直受到优秀参赛者的青睐。众多比赛的冠军方法中都利用了集成学习的方法,这也说明了集成学习方法的强大,能够在深度学习如此火爆的时候,还能占有一席之地。

其中,有两类算法应用比较广泛,效果很不错。一类是Bagging,另一类是Boosting。

Bagging是“Bootstrap aggregating”的缩写。在Bagging中,Bootstrap sampling 是一个核心概念,简单来说就是对原始数据集进行有放回采样,从而产生多个数据集进行训练。

正是由于它特殊的数据输入方式,让它具备易于并行运算的特点。Bagging方法中有代表性的就是随机森林(Random Forest)—,就是以决策树为基分类器,符合Bagging方法框架的集成学习方法。

Boosting的相关内容请参考另一篇博文。

三、学习参考资料

学习参考资料

原创粉丝点击