首页 > 其他 > 详细

机器学习 15 - 提升方法与 Adaboost

时间:2021-03-08 09:33:37      阅读:39      评论:0      收藏:0      [点我收藏+]

  提升方法(boost):

    强可学习与弱可学习等价. 已知弱学习算法, 提升为强学习算法.

    一般而言, 提升方法采用 调整训练样本的概率分布(权重)的方式形成不同的训练集, 对于不同的训练集训练一系列的弱学习器 的方法.

    即 弱学习器 T(k) 更新训练样本分布概率(权重) D(k+1), 带分布概率(权重) D(k+1) 的训练集 S(k+1) 训练弱学习器 T(k+1) 其中 1<=k<n.

  Adaboost:

    技术分享图片

    技术分享图片

    其基本思路为, 提高之前一轮错误分类的样本的权重(概率分布), 降低正确分类的样本的权重(概率分布), 使得错误分类的样本在后一轮的弱分类器中得到更大关    

  注. 对于弱分类器的组合, Adaboost 采用加权多数表决的方式, 具体地, 加大分类误差小的弱分类器的权重, 减小分类误差大的弱分类器的权重.

    从另一个角度讲, Adaboost 算法是加法模型作为模型, 前向分布学习算法作为学习算法, 指数函数作为损失函数的分类问题.

    设 f_{k-1}(x) = \sum_{i=1}^{k-1}\alpha_iG_i(x).

    则 f_{k}(x) = \sum_{i=1}^{k}\alpha_iG_i(x) = f_{k-1}(x) + \alpha_kG_k(x).

    定义损失函数 L(x) = \sum_{i=1}^{m}exp(-y_if_k(x_i)),

    则 我们的目的是 最小化 L(x) 即 arg (\alpha, G) min L(x).

    L(x) = \sum_{i=1}^{m}exp(-y_if_k(x_i))

      = \sum_{i=1}^{m}exp((-y_i)(f_{k-1}(x_i)+\alpha_kG_k(x_i)))

      = \sum_{i=1}^{m}exp(-y_i * f_{k-1}(x_i) + -y_i * \alpha_k * G_k(x_i))

    由于已知 \alpha_j, G_j | 1<=j<k,

    所以 我们令 w‘_{ki} = exp(-y_i * f_{k-1}(x_i)) 与 优化变量 (\alpha_k, G_k) 无关.

    即 L(x) = \sum_{i=1}^{m}w‘_{ki} * exp(-y_i * \alpha_k * G_k(x_i)).

    固定 \alpha_k 求 arg (G_k) min L(x).

    L(x) = (exp(\alpha) - exp(-\alpha)) * \sum_{i=1}^{m}w‘_{ki} * I(y_i ≠ G_k(x_i)) + exp(-\alpha) * \sum_{i=1}^{m}w‘_{ki},

    G_k(x) = arg (G_k) min (\sum_{i=1}^{m}w‘_{ki} * I(y_i ≠ G_k(x_i))).

    固定 G_k 对 \alpha_k 求导 并令之等于零,

    (exp(\alpha) + exp(-\alpha)) * \sum_{i=1}^{m}w‘_{ki} * I(y_i ≠ G_k(x_i)) - \sum_{i=1}^{m}w‘_{ki} * exp(-\alpha) = 0,

    (1 + exp(2 * \alpha)) = \sum_{i=1}^{m}w‘_{ki} / (\sum_{i=1}^{m}w‘_{ki} * I(y_i ≠ G_k(x_i))),

    \alpha = 1/2 * ln(\sum_{i=1}^{m}w‘_{ki} / (\sum_{i=1}^{m}w‘_{ki} * I(y_i ≠ G_k(x_i))) - 1),

    \alpha = 1/2 * ln(1/e_k - 1), e_k = (\sum_{i=1}^{m}w‘_{ki} * I(y_i ≠ G_k(x_i))) / (\sum_{i=1}^{m}w‘_{ki}).

    e_k 即 以 exp(-y_i * f_{k-1}(x_i)) 的分布下的不相等的概率, 即误差率.

    w‘_{k+1, i} = exp(-y_i * f_{k}(x_i)) = w‘_{ki} * exp(-y_i * \alpha_k * G_k(x_i)).

    参考文献:

      博文 1: https://www.cnblogs.com/pinard/p/6133937.html,

      博文 2: https://yq.aliyun.com/articles/666734.

机器学习 15 - 提升方法与 Adaboost

原文:https://www.cnblogs.com/chinakevin/p/14497370.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!