机器学习 | boosting提升算法

作者:JSong,日期:2017.10.10

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

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

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

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

机器学习 | boosting提升算法_第1张图片

算法(前向分步算法):

机器学习 | boosting提升算法_第2张图片

2、AdaBoost算法

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

机器学习 | boosting提升算法_第3张图片
机器学习 | boosting提升算法_第4张图片

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

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

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

算法(Adaboost算法):

机器学习 | boosting提升算法_第5张图片
机器学习 | boosting提升算法_第6张图片

3、Gradient Boosting

一条不一样的路,待续

你可能感兴趣的:(机器学习 | boosting提升算法)