机器学习之AdaBoost

        Adaptive Boosting(自适应增强)是一种迭代算法,它的主要思想是:每次迭代调整样本的权重,并用更新过权重值的数据集训练下一个弱学习器,直到达到某个预定的足够小的错误率、或者达到指定的最大迭代次数之后,将各个弱学习器加权组合为最终的强学习器。

        该算法每次迭代改变的是样本的权重(re-weighting),如果无法接受带权样本的基学习算法,则可进行重采样法(re-sampling),获得重启动机会以避免训练过程过早停止;是一个将弱学习器提升的过程,通过不断的训练可以提高对数据的预测能力。

        AdaBoost的优点:

            (1)可以处理连续值和离散值;

            (2)可以将不同的分类算法作为基分类器;

            (3)解释性强,结构简单;

            (4)泛化错误率低(Margin Theory以及弱学习器通常比较简单,不是很容易陷入过拟合);

            (5)无需调整超参。

 

        AdaBoost的缺点:

            (1)对训练样本集中的异常点本敏感,异常样本可能会在迭代过程中获得较高的权重值,最终影响模型效果;

            (2)迭代次数(弱学习器个数)不好确定。

 

    1、AdaBoost算法的运行过程如下

        (1)为训练集中每一个样本赋予一个权重值,这些权重值初始化为相等的值,所有权重总和为1。

        (2)在训练集上训练出一个弱学习器,并计算其错误率。

        (3)根据分类结果调整每个训练样本的权重值:分错的样本权重增大,分对的样本权重减小。

        (4)使用更新过权重值的训练集训练下一个弱学习器

        (5)如此迭代直至达到停止条件

        (6)将每次训练得到的弱学习器线性组合组合成为一个最终的强学习器,其中分类误差率较小的弱学习器权值较大,分类误差率较大的弱学习器权值较小。

 

    2、Adaboost算法构建及公式推导

        (1)训练数据集 {(x1,y1),(x2,y2),...,(xm,ym)}, yi ϵ{-1,+1}

        (2)初始化训练数据权重分布

                机器学习之AdaBoosti=1,2,...,m

        (3)进行迭代t=1,2,...,T,即一共训练T个弱学习器

                (a)使用具有权值分布Dt的训练数据集进行学习,训练出弱学习器htx→{-1,+1}

                (b)根据弱学习器各自的权重αt组合各个弱学习器

                        第t-1轮的弱学习器的组合:

                            机器学习之AdaBoost

                        第t轮的弱学习器的组合:

                            机器学习之AdaBoost

                (c)第t轮得到的Ht的错误率为(由指数函数的性质可得AdaBoost的误差上界,且为了书写方便省略除以m)

                            机器学习之AdaBoost

                        其中I(·)是示性函数,事件发生取1,不发生取0

                            机器学习之AdaBoost

                (d)计算ht在最终的强学习器中所占的权重αt

                        在训练的过程中,为了求错误率/损失函数的最小值,对其进行计算:

                            机器学习之AdaBoost

                        令loss对αt求导,导数等于零,可以求得公式:

                             机器学习之AdaBoost

                        倒数第二步是由εt的定义:

                            机器学习之AdaBoost

                            机器学习之AdaBoost


        (4)更新训练集样本的权值分布Dt+1)

                    机器学习之AdaBoost

                分对的样本权重减小,分错的样本权重增加:

                    机器学习之AdaBoost

                其中Zt是归一化因子,为了使样本的概率分布总和为1。

                    机器学习之AdaBoost

 

        (5)得到最终的强学习器,是在线性组合的基础上进行Sign函数转换

                    机器学习之AdaBoost

                    机器学习之AdaBoost

 

    3、AdaBoost scikit-learn相关参数

       机器学习之AdaBoost