前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >集成学习算法----Adaboost

集成学习算法----Adaboost

作者头像
智能算法
发布2018-04-03 11:01:58
8990
发布2018-04-03 11:01:58
举报
文章被收录于专栏:智能算法

1. Adaboost 算法思想

AdaBoost 是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器,即弱分类器,然后把这些弱分类器集合起来,构造一个更强的最终分类器。(就是大家所说的三个臭皮匠赛过诸葛亮)。算法本身是改变数据分布实现的(看完最后的例子会比较深刻的明白这句话),它根据每次训练集之中的每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改权值的新数据送给下层分类器进行训练,然后将每次训练得到的分类器融合起来,作为最后的决策分类器。

2. 算法原理:

直接先上伪代码:

首先,对于任何一种监督学习算法,我们都需要训练数据集,如下:(x1,y1),(x2,y2),...,(xm,ym),其中xi为特征集,yi为分类标签{-1,1}。

算法步骤如下:

(1). 初始化D1(i)=1/m,其中D1(i)表示第一层迭代时每个样本的权重;

(2). 根据Dt进行训练出第t个弱分类器

(3). 根据第t个弱分类器的错误率计算出该分类器的在整个分类器中的权重αt;

(4). 更新每个训练样本的权重Dt, 使那些分类错误的样本的权重变高,而分类正确的样本权重变低,进行下一个弱分类器;

(5). 最后形成总的分类器就是每个弱分类器及其权重乘积的加和。

简单来说,Adaboost有很多优点:

1)adaboost是一种有很高精度的分类器

2)可以使用各种方法构建子分类器,adaboost算法提供的是框架

3)当使用简单分类器时,计算出的结果是可以理解的。而且弱分类器构造极其简单

4)简单,不用做特征筛选

5)不用担心overfitting!

3. Adaboost 举例

也许你看了上面的介绍或许还是对adaboost算法云里雾里的,没关系,百度大牛举了一个很简单的例子,你看了就会对这个算法整体上很清晰了。下面我们举一个简单的例子来看看adaboost的实现过程:

图中,“+”和“-”分别表示两种类别,在这个过程中,我们使用水平或者垂直的直线作为分类器,来进行分类。

第一步:

根据分类的正确率,得到一个新的样本分布D2­,一个子分类器h1,其中划圈的样本表示被分错的。在右边的途中,比较大的“+”表示对该样本做了加权。

也许你对上面的ɛ1,ɑ1怎么算的也不是很理解。下面我们算一下,只有自己把算法演算一遍,你才会真正的懂这个算法的核心。

算法最开始给了一个均匀分布 D 。所以h1 里的每个点的权值都是0.1。ok,当划分后,有三个点划分错了,根据算法误差表达式得到 误差为分错了的三个点的值之和,所以ɛ1=(0.1+0.1+0.1)=0.3,而ɑ1 根据伪代码中公式可以算出来为0.42. 然后就根据算法把分错的点权值变大。如此迭代,最终完成adaboost算法。

第二步:

根据分类的正确率,得到一个新的样本分布D3,一个子分类器h2。

第三步:

得到一个子分类器h3。

整合所有子分类器:

因此可以得到整合的结果,从结果中看,及时简单的分类器,组合起来也能获得很好的分类效果。

4. 算法小结

总体来说,该算法就是提供一个算法框架,其实弱分类器的训练可以由多种算法进行训练,每个弱分类器根据其分类的准确率都有一个权值,最后形成总的分类器就是每个弱分类器及其权重乘积的加和。

参考文献:http://blog.csdn.net/haidao2009/article/details/7514787

免责声明:本文系网络转载。版权归原作者所有。如涉及版权,请联系删除!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智能算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档