Adaboost
Adaboost[1]
注意点:
- 数据有权重,根据权重进行学习得到基分类器
- 基分类器学习方法:任一弱分类器?
- 基分类器的权重系数:根据分类误差率进行设置。
- 数据权重更新:上一轮权重乘以当前模型分类误差率相关系数
- 最终模型,基模型相加。
- 损失函数是指数函数(可证明):$L(y, f(x))=\exp [-y f(x)]$
- 证明挺巧妙的,主要是把$f_m(x)$ 拆分为两部分,一部分是之前学的分类器加和以及当前需要学的$G(x)$。
- 对$f_m(x)$施加指数损失函数后,数据权重$w_{mi}$实际上就是前面分类器的指数损失结果。
- 而当前求得的$\alpha_m$为将该指数损失函数最小化的结果,通过求导为零解出。
- $w_{mi}$ 的更新:由于 \(\bar{w}_{m i}=\exp \left[-y_{i} f_{m-1}\left(x_{i}\right)\right]\) ,直接将 $f_m(x)$ 展开即可得更新公式为上一步的 $w_{m-1}$ 乘以这一步的 $G(x)$ 的损失直接得到。
- 最终与原始算法差距一个$Z$系数。
- adaboost为什么是前向加法模型:https://blog.csdn.net/zhangyingjie09/article/details/85875264
公式
-
分类误差率:
\[\begin{equation} e_{m}=\sum_{i=1}^{N} P\left(G_{m}\left(x_{i}\right) \neq y_{i}\right)=\sum_{i=1}^{N} w_{m i} I\left(G_{m}\left(x_{i}\right) \neq y_{i}\right) \end{equation}\] -
$G(x)$ 的系数:
\[\begin{equation} \alpha_{m}=\frac{1}{2} \log \frac{1-e_{m}}{e_{m}} \end{equation}\] -
数据权重更新:
\[\begin{equation} w_{m+1, i}=\frac{w_{m i}}{Z_{m}} \exp \left(-\alpha_{m} y_{i} G_{m}\left(x_{i}\right)\right), \quad i=1,2, \cdots, N \end{equation}\]规范化因子:
\[\begin{equation} Z_{m}=\sum_{i=1}^{N} w_{m i} \exp \left(-\alpha_{m} y_{i} G_{m}\left(x_{i}\right)\right) \end{equation}\] -
最终模型:
\[\begin{equation} f(x)=\sum_{m=1}^{M} \alpha_{m} G_{m}(x) \end{equation}\] \[\begin{equation} \begin{aligned} G(x) &=\operatorname{sign}(f(x)) \\ &=\operatorname{sign}\left(\sum_{m=1}^{M} \alpha_{m} G_{m}(x)\right) \end{aligned} \end{equation}\]
参考文献
-
统计学习方法(第二版) ↩
Written on April 26, 2022