Adaboost(Adaptive boosting) 微信公众号:计算机金融阅读
1.在讲Adaboost之前,先从bagging讲起,bagging的核心就是Boosttrapping ,就是说在原来的资料中重新随机选N比资料,然后用u记录下每笔资料的数量,然后再最小化的损失函数中乘上被抽到资料的次数。
2.将u放到base algorithm。如果在SVM中的err前加上u,那么经过整个dual和QP的过程可以的到alpha的上限也会改变,如果在Logistic中err跟u有关,同样加进去就可以了。
3.因为在aggregation,就是当通过每一次的抽样得出的g,如果每次得到的g越不一样,在最后结合g的时候我们就能得出最好的G,也就是分类的效果能达到最好,那么我们如何能根据样本点得出很不一样的g呢。我们就让g_t在下一次t+1上,也就是在U^(t+1)的分类效果很差,也就是说错误率跟丢铜板没什么区别,也就是说正确率50%。即:
那么我们如何实现这个想法呢?就是让U^(t+1)犯错的和没犯错的相等,假如U^t犯错1126次,正确6211次。那么我们将U^(t+1)在正确的电商乘以6211或者6211/7337,在错误的点上乘以1126或者6211/7337。一旦这样做,我们就可以保证在U^(t+1)下的g会跟上次得出的g很不相同。
4.现在,另ϵ_t为错误率,那么在定义一个方块t,方块t的定义公式如图所示,那么在步骤三中错误的乘以(1-ϵ_t),正确的乘以ϵ_t,可转化为错误的乘以方块t,而正确的除以方块t。那么当我们的base algorithm在t是的错误率小于等于0.5是,方块t肯定是大于等于1的,所以此时分类正确的点就会被缩小,正确的就会被缩小。通过放大错误,缩小正确,来得出不一样的hypothesis,最后综合这些hypothesis得出最优G
5.最后整个Adaboost的过程如下图所示。首先初始化u的值,全部初始化为一样的1/N,之后按上面的步骤一直更新u并且得出每一个相应的g。那么在结合这些g的的时候应该怎么结合呢,此时就用到了一个参数alpha,在每次算出一个u时,就算出一个alpha,如果说你的错误率为0.5,那么你就相当于乱猜,此时方块t的值就为1,通过式子3可以得出此时的alpha为0,也就是不会用这个相当于乱猜的g。
台大机器学习笔记——Adaboost
最新推荐文章于 2022-11-14 15:08:03 发布