《机器学习技法》---AdaBoost算法

本文详细介绍了AdaBoost算法的核心思想及实现过程,包括如何通过加权误差进行样本选取、如何更新权重确保弱分类器的多样性以及如何将多个弱分类器线性组合形成强分类器。

1 AdaBoost的推导

首先,直接给出AdaBoost算法的核心思想是:在原数据集上经过取样,来生成不同的弱分类器,最终再把这些弱分类器聚合起来。

关键问题有如下几个:

(1)取样怎样用数学方式表达出来;

(2)每次取样依据什么准则;

(3)最后怎么聚合这些弱分类器。

 

首先我们看第一个问题,如何表示取样?答案使用原数据集上的加权error。

假设我们对数据集D做的取样如下:

那么我们在新数据集上的01error可以等效为在原数据集上的加权error:

 

即我们取样相当于确定一组权重μ,对这个加权的error作最小化就能得到一个弱分类器g。

特别的,对于svm和逻辑回归,如果我们已知权重μ,我们可以用下面的方式解:

 

然后是第二个问题,依据什么原则来取样?或者说,怎样选择权重μ。

答案是多样性。即保证生成的每个弱分类器的差别越大,最后的聚合出来的强分类器就会越好。

如何来保证这一点呢?假设我的第t次取样生成了gt,第t+1次取样生成了g(t+1),取样的规则分别是μt和μt+1。即:

那么,要保证gt+1和gt有很大不同,有一个办法,就是使gt用在gt+1的数据集上时,效果很差。效果很差就是错误率是0.5,跟扔硬币一样:

 即:

所以,更新这个权重的方法是,对于t轮上分类错误的点,它的u应该更新为乘以总的分类正确率,对于分类正确的点,它的u应该更新为乘以总的分类错误率,注意这里的分类错误率是加权后的分类错误率(或者说在采样后的分类错误率):

这里我们使用另一种与上面等效的方法:

它有一定的物理意义:由于上一轮错误率总是小于0.5,因此方块t是大于1的。因此对于上一次分类正确的权重,除以方块t,减小了权重;对于上一次分类错误的权重,乘以方块t,放大了权重。

类似于水果课堂中老师教学生的例子。

 

第三个问题,得到了这些弱分类器,如何把他们聚合起来?AdaBoost使用的是Linear Blending的方式,其中的权重应该与方块t成正比,即这个弱分类器表现越好,权重应该越大:

 

另外,初始的u我们定为均匀的。

这样,AdaBoost算法如下:

 

2 AdaBoost的理论保证

 

转载于:https://www.cnblogs.com/coldyan/p/6502533.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值