zoukankan      html  css  js  c++  java
  • 【集成模型】Boosting

    0 - 思想

      Bagging算法思想是减少预测方差(variance),Boosting算法思想是为了减少预测偏差(bias)。

      Boosting算法思想是将“弱学习算法”提升为“强学习算法”。一般来说,弱学习算法容易找到,而后通过反复学习得到一系列弱分类器,再通过加权将他们组合起来得到一个强分类器。

      Boosting算法主要有两个核心概念:加法模型和前向分步算法。

      加法模型即是将一系列弱分类器线性相加组成强分类器的过程,有如下形式

    $$F_M(x;P)=sum_{m=1}^neta_m h_m(x;a_m),$$

    其中$h(x;a_m)$表示第$m$个弱分类器,$a_m$对应该弱分类器的最优参数,$eta_m$表示该分类器在强分类器中所占比重,$P$是所有$a_m$和$eta_m$的组合。

      前向分步指的是在训练过程中,下一轮迭代产生的分类器是在上一轮的基础上训练得到的(顺序依次进行训练,sequentially),可以表达为

    $$F_m(x)=F_{m-1}(x)+eta_m h_m(x;a_m).$$

      不同的Boosting算法具有不同的损失函数,常用的AdaBoost是损失函数为指数损失的Boosting算法。

    1 - AbaBoost

    1.0 - 特点

    • 在每一轮迭代中,AdaBoost改变了训练数据的权值(即改变了样本的概率分布),其目标是为了将关注点放在被错误分类的样本上。具体做法为:减少上一轮被正确分类的样本权值,增加上一轮被错误分类的样本权值。综合起来来说,就是每一轮迭代的弱分类器学习的侧重点是不一样的。
    • AdaBoost采用加权多数表决方法,即加大分类误差小的弱分类器的权重,降低分类误差大的弱分类器的权重。

    1.1 - 算法

      输入:训练集$D={(x_1,y_1),(x_2,y_2),cdots,(x_m,y_m)}$,基础学习算法$varsigma$,迭代次数$T$,误差终止条件

      输出:$H(x)=signleft (sum_{t=1}^{T}alpha_t h_t(x) ight )$

    • $omega_1(x)=1/m$(初始化权重分布)
    • for $t=1,cdots,T$
    •   $h_t=varsigma(D,omega_t)$ (以数据集$D$和权重分布$omega_t$训练弱分类器$h_t$)
    •   $epsilon_t=P_{xsim omega_t}(h_t(x) eq f(x))$ (衡量弱分类器$h_t$的误差)
    •        if $epsilon_t$满足误差终止条件 then break
    •        $alpha_t=frac{1}{2}lnleft ( frac{1-epsilon_t}{epsilon_t} ight )$ (计算弱分类器$h_t$在最终强分类器中的权重)
    •        $omega_{t+1}(x)=frac{omega_t(x)}{Z_t} imesleft{egin{matrix} exp(-alpha_t) if h_t(x)=f(x)\exp(alpha_t) if h_t(x) eq f(x) end{matrix} ight.=frac{omega_t(x)exp(-alpha_t f(x)h_t(x))}{Z_t}$(更新权重分布,其中$Z_t$是归一化因子)
    • end

    2 - 总结

    • Boosting是一种按序构造的加模型
    • AdaBoot是用指数损失作为损失函数的Boosting算法
    • 采用基础回归模型并用梯度下降法来优化log损失的方法:LogitBoost
    • 其他的变种:L2Boost或者其他更一般的Gradient Boosting(functional gradient descent)

    3 - 参考资料

    https://www.cnblogs.com/ScorpioLu/p/8295990.html

  • 相关阅读:
    面向报文(UDP)和面向字节流(TCP)的区别
    c++ 字符串和数字拼接
    OpenGL中着色器,渲染管线,光栅化
    阅读计划
    课堂测试
    多态与异常处理
    《大道至简》第七八章读后感
    继承与接口课堂作业
    《大道至简》第六章读后感
    随机数组
  • 原文地址:https://www.cnblogs.com/CZiFan/p/11755598.html
Copyright © 2011-2022 走看看