boosting
Last updated
Last updated
boosting假定模型为加性模型: 优化目标: boosting过程: 1. initialise 2. for m=1 to M
compute
set
算法过程见《统计学习方法》p138,这里备注下细节。
分类错误:迭代到m时,算分类误差,算的仅仅是当前这步分类器分类错误的,而不是前m步加权累加的分类错误。
迭代终止条件:仅仅人为指定M(分类器数量)。(倘若第n步()时,分类准确率已经很高了。。。)
图来自http://rob.schapire.net/papers/explaining-adaboost.pdf
这个分类错误为什么不是0-1损失,而是指数形式? 这个指数损失是0-1的凸上界。会有一些良好的性质,比如优化快。 但是,对异常值敏感,鲁棒性差。可能一个噪音点能将分界面拉动很远。(所以后来有了 LogitBoost)
其中
Boosting : 有序的最小化损失函数,所以bias逐步下降
优化目标函数 ,n是样本数。
序列最小化指数函数, 所以
然后通过来求解E最小值。
Real Adaboost adaboost要求输出必须是,若不做此要求,然后相应的loss function改成,则得到了Real Adaboost。(基分类器已经没有显式的再加权重了)
Gentle Adaboost 若在Real Adaboost基础上通过牛顿步来优化loss function,则得到了Gentle Adaboost。
这些Adaboost都是指数损失。 指数损失的问题:错分的outline会得到很高的权重,导致对噪声的鲁棒性能差
既然是logit损失,那么优化的就是负对数似然: 。迭代时也用的是牛顿步。
Bagging:样本分布的相似性,所以boostrap模型的bias与单个模型的bias差不多。各个boostrap模型之间有一定的相关性,但不完全相同,所以Aggregating之后降低了一定程度的variance。