机器学习算法系列(十九)-自适应增强算法(Adaptive Boosting Algorithm / AdaBoost Algorithm)——下篇

本文深入解析AdaBoost及其多分类变体SAMME与SAMME.R算法原理,包括数学推导、Python实现及应用示例。

接上篇

AdaBoost-SAMME 算法推导

  同算法步骤中的前提条件一样,假设训练集 T = { X i , y i } T = \{ X_i, y_i \} T={ Xi,yi} i = 1 , . . . , N i = 1,...,N i=1...N,y 的取值有 M 种可能,h(x) 为估计器,估计器的数量为 K。
  为了适应多分类问题,AdaBoost-SAMME 算法将原本为数值的标签 y 转化成一个向量的形式,如式 4-9 所示:
y ^ = { 1 y = m − 1 M − 1 y ≠ m m = 1 , … , M \hat{y} = \left\{ \begin{array}{c} 1 & y =m\\ -\frac{1}{M-1} & y \ne m \end{array}\right. \quad m = 1,\dots,M y^={ 1M11y=my=mm=1,,M

式4-9

  下面用一个例子来说明式 4-9 的含义,假设标签 y 可取 1,2,3,标签集 y = { 2,1,2,3 },这时根据式 4-9 可以得到对应的转换后的标签集如式 4-10 所示:
y ∈ { 1 , 2 , 3 } y = { 2 , 1 , 2 , 3 } y ^ i = { 1 y i = m − 1 2 y i ≠ m m = 1 , 2 , 3 y ^ = [ − 1 2 1 − 1 2 1 − 1 2 − 1 2 − 1 2 1 − 1 2 − 1 2 − 1 2 1 ] \begin{array}{c} y \in \{1,2,3\} \\ y = \{2,1,2,3\} \\ \hat{y}_i = \left\{ \begin{array}{c} 1 & y_i =m\\ -\frac{1}{2} & y_i \ne m \end{array}\right. \quad m = 1,2,3 \\ \hat{y} = \begin{bmatrix} -\frac{1}{2} & 1 & -\frac{1}{2} \\ 1 & -\frac{1}{2} & -\frac{1}{2} \\ -\frac{1}{2} & 1 & -\frac{1}{2} \\ -\frac{1}{2} & -\frac{1}{2} & 1 \end{bmatrix} \end{array} y{ 1,2,3}y={ 2,1,2,3}y^i={ 121yi=myi=mm=1,2,3y^=21121211211212121211

式4-10

  同样将算法解释为加法模型,通过多个估计器 h(x) 加权以后得到最后的强估计器 H(x),代价函数使用指数函数
(1)代价函数,这里比原始算法多了一个 1 M \frac{1}{M} M1,是为了后面计算方便,同时 H ( X i ) H(X_i) H(Xi)也是一个向量
(2)带入式 4-1 中的(3)式
(3)同样定义一个 ω,包含前一轮的强估计器等与 α 无关的值
(4)带入 ω 得到代价函数的表达式
(5)目标为找到最优的估计器权重 α 使得代价函数的取值最小
C o s t ( H ( x ) ) = ∑ i = 1 N e − 1 M y ^ i H ( X i ) ( 1 ) C o s t ( α ) = ∑ i = 1 N e − 1 M y ^ i ( H k − 1 ( X i ) + α h k ( X i ) ) ( 2 ) ω k , i ˉ = e − 1 M y ^ i H k − 1 ( X i ) ( 3 ) C o s t ( α ) = ∑ i = 1 N ω k , i ˉ e − 1 M y ^ i α h k ( X i ) ( 4 ) α k = argmin ⁡ α ∑ i = 1 N ω k , i ˉ e − 1 M y ^ i α h k ( X i ) ( 5 ) \begin{aligned} Cost(H(x)) &= \sum_{i = 1}^{N} e^{-\frac{1}{M} \hat{y}_iH(X_i)} & (1) \\ Cost(\alpha) &= \sum_{i = 1}^{N} e^{-\frac{1}{M}\hat{y}_i(H_{k-1}(X_i) + \alpha h_k(X_i))} & (2) \\ \bar{\omega_{k,i}} &= e^{-\frac{1}{M}\hat{y}_iH_{k-1}(X_i)} & (3) \\ Cost(\alpha) &= \sum_{i = 1}^{N} \bar{\omega_{k,i}} e^{-\frac{1}{M}\hat{y}_i\alpha h_k(X_i)} & (4) \\ \alpha_k &= \underset{\alpha}{\operatorname{argmin} } \sum_{i = 1}^{N} \bar{\omega_{k,i}} e^{-\frac{1}{M}\hat{y}_i\alpha h_k(X_i)} & (5) \\ \end{aligned} Cost(H(x))Cost(α)ωk,iˉCost(α)αk=i=1NeM1y^iH(Xi)=i=1NeM1y^i(Hk1(Xi)+αhk(Xi))=eM1y^iHk1(Xi)=i=1Nωk,iˉeM1y^iαhk(Xi)=αargmini=1Nωk,iˉeM1y^iαhk(Xi)(1)(2)(3)(4)(5)

式4-11

  我们先来看下代价函数中指数的部分,即预测值与标签值的点积,下面分两种情况讨论:
  当预测值与标签值相同的时候,向量中 1 的位置一致, − 1 M − 1 -\frac{1}{M-1} M11 一共有 M - 1 个,得到如下的点积结果:
1 + ( M − 1 ) ( − 1 M − 1 ) ( − 1 M − 1 ) = M M − 1 \begin{aligned} 1 + \left(M - 1\right)\left(-\frac{1}{M-1}\right)\left(-\frac{1}{M-1}\right) = \frac{M}{M-1}\\ \end{aligned} 1+(M1)(M11)(M11)=M1M

式4-12

  当预测值与标签值不相同的时候,向量中 1 的位置不一致, − 1 M − 1 -\frac{1}{M-1} M11 一共有 M - 2 个,得到如下的点积结果:
( − 1 M − 1 ) + ( − 1 M − 1 ) + ( M − 2 ) ( − 1 M − 1 ) ( − 1 M − 1 ) = − M ( M − 1 ) 2 \begin{aligned} \left(-\frac{1}{M-1}\right) + \left(-\frac{1}{M-1}\right) + \left(M - 2\right) \left(-\frac{1}{M-1}\right)\left(-\frac{1}{M-1}\right) = -\frac{M}{(M-1)^2} \end{aligned} (M11)+(M11)+(M2)(M11)(M11)=(M1)2M

式4-13

  综合上面两种情况,得到如下的结果:
y ^ i h k ( X i ) = { M M − 1 y ^ i = h k ( X i ) − M ( M − 1 ) 2 y ^ i ≠ h k ( X i ) \hat{y}_ih_k(X_i) = \left\{ \begin{aligned} &\frac{M}{M-1} & \hat{y}_i = h_k(X_i) \\ &-\frac{M}{(M-1)^2} & \hat{y}_i \ne h_k(X_i) \end{aligned} \right. y^ihk(Xi)=M1M(M1)2My^i=hk(Xi

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值