AdaBoost 是集成算法中 Boosting 家族的一种,它的特点是分类器串行。首先要知道加法模型和指数损失函数。
加法模型
加法模型是一个加和模型,每一轮训练一个分类器 ,并且基于这个分类器的误差,得到这个分类器的权重
。
指数损失函数
对于分类模型而言,上述损失函数,在分类正确的时候,指数部分为负数;在分类错误的时候,指数部分为正数,符合损失函数的意义。
公式推导
1、由加法模型的定义:
得到迭代公式:
这里 。此时应该认为函数
是已知的,每一轮迭代求的是分类器
和这个分类器的权重
。
2、将 代入损失函数得:
把指数加法因子展开,变成指数的乘积(想一下具体的例子:)得到:
3、由于 和
已知,可以令
,于是
于是分类器 和这个分类器的权重
可以表示成:
4、先求 ,看上面的式子,分类器的权重
可以认为是一个确定的数,
是使得分错的(带权重的)样本里损失函数最小的那个,可以写成:
注意:重点理解上面两个式子的等价性,这一步相当于针对不同权重的样本训练分类器。
5、得到 以后,再求
。还是看损失函数,可以写成:
把上式对 求导,再令导函数为
,得:
上式两边同时除以 ,得:
令 ,则有:
于是得到使得损失函数最小的
这里
权重更新公式
那么权重如何更新呢?
已知:
和我们之前的定义:
于是就有:
(本节完)