统计学习方法笔记 -- Boosting方法

AdaBoost算法算法

基本思想是,对于一个复杂的问题,单独用一个分类算法判断比较困难,那么咱们就用一组分类器来进行综合判断,获得结果,“三个臭皮匠顶一个诸葛亮”函数

专业的说法,学习

强可学习(strongly learnable),存在一个多项式算法能够学习,而且准确率很高
弱可学习(weakly learnable),存在一个多项式算法能够学习,但准确率略高于随机猜想blog

而且能够证实强可学习和弱可学习是等价的get

那么发现一个弱可学习算法是很容易的,若是将弱可学习算法boosting到强可学习算法?it

AdaBoost就是这样的算法,经过反复学习,获得一组弱分类器,经过组合这些弱分类器获得强分类器方法

问题就是若是获得一组弱分类器?im

固然你能够用不一样的分类算法来训练
也能够用不一样的训练集,好比bagging,对训练集进行m次随机抽样,获得m个新的训练集d3

AdaBoost采用的方法是,用相同的算法和训练集,但改变每一个训练样本的weight,由于在求解分类器时的目标函数是,加权偏差最小,因此不一样的权值会获得不一样的分类器参数
具体的规则,是每轮分类后, 增大分错的样本的权值,减少分对样本的权值,全部样本权值和为1
这样下一轮分类器求解,就会更关注上一轮分错的这样样本点,达到分而治之的目的规范化

须要注意,能够想到,这个算法对离群值比较敏感,容易overfitting

而且每一个弱分类器也有个weight,表明该分类器的偏差率,最终用加权多数表决的方式来获得最终结果

具体算法,

对于image 训练集

1. 初始化训练样本的权值,平均分布,每一个样本的几率相同

image

2. 反复迭代学习获得m个弱分类器,对于第m个弱分类器,

2.1 对于训练集,以加权偏差最小为目标,求出分类器,Gm

image

2.2 算出,该弱分类器的加权偏差

image

2.3 算出该弱分类器的权值,log函数,可见偏差越小,权值越高,即在最终强分类器中的做用越大

image

2.4 关键的一步,更新训练样本的权值

image

image

其中,第一个式子实际上是,

image

指数分布,小于0,取值在(0,1),大于0,取值大于1
因此意思就是,当Gm(x)=y的时候,即判断正确的样本,减少权值
判断错误的样本,增长权值
之因此要除以Zm,是由于全部权值的和要为1,用Zm来进行规范化

3. 上面咱们就获得m个弱分类器,如何组合出强分类器,

image

image

很简单的,加权多数表决 其中sign函数,取值-1(x<0),0,1(x>0)