本文基于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,我们可以使用正则化思想。
领取专属 10元无门槛券
私享最新 技术干货