AdaBoost算法公式形象的解释
0. 问题引入
以上是李航的《统计学习方法》中对AdaBoost算法的描述,虽然后文中也对这里的式子进行了注释,但还不是很明朗,下面是我自己的解读。
1. 几个式子的解释
这里的m代表第m个分类器,第m个分类器的分类误差率为分类错误的样本个数乘以一个系数。m=1时这个系数是1/N,之后会按照下面的公式不断变化:
这个式子中的关键是:
由上式可知:
当小于等于1/2时,大于等于0,当大于1/2时,小于0。这里我自己来规定一下,当小于等于1/2时,被认为是弱分类器,当大于1/2时,被认为是错分类器。
然后来看式(8.4),首先把这个式子分解为前后两个部分,第一个部分是上一个分类器分类时的系数(这里除以了一个规范化因子),第二部分就是一个指数函数,指数函数的图像如下:
如果指数小于0,指数函数会大于0且小于1,如果指数大于0,指数函数会大于1 。也就是说指数的大小决定着系数会增大还是减小。这样的话就要对进行分情况讨论了。
项目 | 弱分类器(误差小于0.5,) | 错分类器(误差大于0.5,) |
---|---|---|
正确分类() | 权值减小 | 权值增大 |
错误分类 () | 权值增大 | 权值减小 |
根据AdaBoost的算法思路:“提高那些被前一轮弱分类器错误分类样本的权值。” 我们可以看到上面表格中可以满足这一思路;另外,对于错分类器,我们只要把它的分类结果取反,它就变成了一个弱分类器,结果就像上表中所示。
最终分类器是所有弱分类器构成的,这里也会起很大作用。首先对于弱分类器来说分类的错误率越低的绝对值越大,相应的它在最终分类器中所占表决权越大;另外如果是错分类器,相当于把预测的结果取反,这样就成了弱分类器。