AdaBoost中样本权重对弱分类器的影响与作用
最近在尝试用集成学习中的AdaBoost对项目进行改进,对AdaBoost做了一些学习,之前也了解过这个算法,大概懂得是个什么思想,个人理解就是,对每个训练样本设置权重,根据弱学习器的学习结果,对样本的权重进行修改更新,那些分类错误的样本(即不容易正确分类)的权重会逐渐增大,这样在下一次的弱学习器训练时会根据这个权重对不容易分类的样本重点学习,从而提升对该样本的分类能力。最终综合多个弱分类器得到最终的分类模型。
但我一直有个问题,就是样本的权重在弱分类器训练时的影响和作用到底是什么,因为这决定我是否需要修改我的弱分类器算法的原始代码。
我百度了很多,众说纷纭,没有怎么看懂,于是找了李航老师编著的《统计学习方法 第2版》的第8.1节《提升方法AdaBoost算法》学习了一下,跟大家分享我的一些理解。
1.样本权重用于计算弱学习器的分类误差率从而计算在集成强分类器的投票中所占的权重
上面的公式中,
w
k
i
w_{ki}
wki表示第k轮训练中第i个样本的权重,可以看到,在计算弱分类器的整体误差率时用到了样本权重,然后用于计算当前的弱分类器在最终整合的强分类器中所占的权重系数
α
k
\alpha_{k}
αk。
其中sign()函数是符号函数,返回参数的正负符号。
2. 样本权重在弱分类器的训练中用于计算分类误差时的加权
弱分类器训练的过程实际上是在找一个更好的超参数(比如分类阈值)使得当前所有训练样本的分类误差最小,那么如何体现AdaBoost中的样本权重所代表的重要性呢,就是通过在搜索更好的超参数时计算误差率的操作中体现。如果某个样本的权重比较大,那么在计算这个样本的分类误差时就加上了一个较大的权重系数,他要是分类错了,会很大的影响当前弱分类器的误差率,所以这个样本就比较重要。为了降低整体的分类误差率,在接下来的搜索中会更加重视对这个样本的学习。
3. 每一轮的弱分类器训练中的训练数据有何变化,每一轮的弱分类器有何区别
对于每一轮的弱分类器的训练,其训练数据没有变化都是原始数据。变化的是训练样本的权重,而这个权重只是用来计算误差率。因为样本的权重不同,所以对于同样的超参数,模型的误差率会不同,对于每一轮的弱学习器,为了使得整体误差率最低,会学习到不同的超参数。因此,不同代的弱分类器的区别就是学习到的超参数不同。
4. 若使用不同的弱学习器算法,需要修改什么
不同的AdaBoost算法模型的区别就是弱分类器算法的不同。我们需要修改的是弱学习器算法中在搜索超参数时的对误差率的计算,需要加上样本权重的影响。
以上内容均为个人理解,如有问题,敬请指出。
参考资料:
- https://zhuanlan.zhihu.com/p/38507561
- 《统计学习方法 第2版》李航著