AdaBoostingcoursera 华盛顿大学

本文基于coursera华盛顿大学《机器学习》专题第三讲《分类》

谢绝任何形式的转载以及百度抄袭

所有非手绘图像均来自课程

侵删

1. Boosting概念

往往simple/weak classifiers拟合速度很快,拥有着low variance和high bias,boosting就是将这些classifiers结合起来,让它们变成强有力的classfier.

Boosting 非常强大,kaggle上超过半数的比赛都是用boosting赢的。

2. ensemble classifier & boosting

对于任何机器学习算法,我们都可以写成如下形式:

ensemble classifier则有:

w被称作learn coefficients,即每个classifier的权重。

boosting使用了ensemble classifier的方法,它的侧重点是:针对当前classifier分类错误的地方,下一个classifier着重修理。因此,在分类出错的地方,数据有着更大的权重。例如,如果一组数据被错误分类,我们给了它权重2,代表它在建模时会被计数两次/考虑两次。

以下为boosting流程:

3. AdaBoosting步骤:

(1)给所有数据点赋值权重: αi = 1/N. i是数据序数,N是数据总量。

(2)对于T个分类器,使用权重 αi 分别对数据进行学习 ft(x),得到total weight of mistakes和total weight of all data points.

(3)计算分类器权重(learn coefficients)wt

首先根据(2)得到的 αi 计算weighted_error,

然后计算wt:

这是一个超有趣巧妙的式子。当weight-error达到最佳状态0时,此分类器wt为0;当weight-error为a时,设wt为b,那么就会有当weight-error为(1-a)时,wt则为-b。也就是说,对于一个分类器下两种互为补集的情况,我们会得到互为相反数的权重。

(4)重新计算数据权重α并将其normalize:

最终模型有:

4. Boosting overfit问题

此章节适用于所有boosting。

boosting的error可以降为0, 很容易overfit。当T趋于∞,error趋于0.

对于处理boosting的overfit,我们可以使用正则化思想。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180520G0JM6Q00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券