机器学习 | boosting提升算法

2017-10-11  本文已影响43人  JSong1122

作者:JSong,日期:2017.10.10

简书一直不肯支持数学公式,没办法,只能截图啦。原文请移步博客园

集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,常可获得比单一学习器显著优越的泛化性能,这对“弱学习器”尤为明显。

目前,有三种常见的集成学习框架:bagging,boosting和stacking。第一种是并行的,各个基学习器之间不存在强依赖关系,代表是随机森林算法。后两者是串行的,基学习器之间存在强依赖关系,必须串行生成。具体可参见我的文章 机器学习|集成学习

1、前向分步算法(forward stagewise algorithm)

算法(前向分步算法):

2、AdaBoost算法

前向分布算法是一种算法的框架,接下来我们对于二分类问题构造一个具体的boosting算法。

注:此时的 $e_{m}$ 与 $\gamma_{m}$ 的极小化函数完全等价,又注意到 $w_{mi}$ 和为1,所以不妨把 $\gamma_{m}$ 的极小化函数修改为 $e_m$, 这个意义下 $e_m$ 即是基函数的分类误差率。

注意到,这个时候事实上并不需要参数 $\gamma$ 的显示存在,其隐形的存在于每个基函数的训练时使用的损失函数中,更进一步,其代表了每个样本的权重。通俗点讲,算法在串行迭代过程中,那些分类不准确的样本点在下一步的基分类模型中是会被重点照顾。

最后我们把上述过程整理成Adaboost算法

算法(Adaboost算法):

3、Gradient Boosting

一条不一样的路,待续

上一篇下一篇

猜你喜欢

热点阅读