统计学习方法-第八章

统计学习第八章-提升方法

提升方法

AdaBoost

算法如下:
(1)假设每个数据具有相同的权值,训练出基分类器 G 1 ( x ) G_1(x) G1(x),
(2.1)使用当前加权Dm,进行基分类器的学习 G m ( x ) G_m(x) Gm(x)
(2.2)计算误差率,即分类结果与实际结果不相同
e m = ∑ i = 1 N P ( G m ( x i ) ≠ y i ) = ∑ G m ( x i ) ≠ y i w m i e_m = \sum_{i=1}^NP(G_m(x_i)\neq y_i) = \sum_{G_m(x_i)\neq y_i} w_{mi} em=i=1NP(Gm(xi)̸=yi)=Gm(xi)̸=yiwmi
其中 w m i w_{mi} wmi表示每个数据的权值, ∑ w m i = 1 \sum w_{mi}=1 wmi=1
(2.3)计算更新率 α m α_m αm e m e_m em约大则 α m α_m αm越小,说明占的比重越小
α m = 1 2 l o g 1 − e m e m α_m = \frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1em
(2.4)更新权值
w m + 1 , i = { W m i Z m e − α m , G m ( x ) = y i W m i Z m e α m , , G m ( x ) ≠ y i w_{m+1,i} = \left\{\begin{array}{cc} \frac{W_mi}{Z_m}e^{-α_m}, & G_m(x)=y_i\\ \frac{W_mi}{Z_m}e^{α_m},, & G_m(x)\neq y_i \end{array}\right. wm+1,i={ZmWmieαm,ZmWmieαm,,Gm(x)=yiGm(x)̸=yi
其中Zm使规范化因子
Z m = ∑ i = 1 N w m i e x p ( − α m y i G m ( x i ) ) Z_m = \sum_{i=1}^Nw_{mi}exp(-α_my_iG_m(x_i)) Zm=i=1Nwmiexp(αmyiGm(xi))
(3)得到最终分类器,
G ( x ) = s i g n ( f ( x ) ) = s i g n ( ∑ m = 1 M α m G m ( x i ) ) G(x) = sign(f(x)) = sign(\sum_{m=1}^Mα_mG_m(x_i)) G(x)=sign(f(x))=sign(m=1MαmGm(xi))

向前分布算法

该算法的主要思想为优化损失函数,加法模型如下:
f ( x ) = ∑ m = 1 M β m b ( x , γ m ) f(x) = \sum_{m=1}^Mβ_mb(x,\gamma_m) f(x)=m=1Mβmb(x,γm)
其中, β m β_m βm与AdaBoost算法中的 α m α_m αm类似,为每步新加的东西的权重, b ( x , γ m ) b(x,\gamma_m) b(x,γm),则是与AdaBoost算法中的分类器类似,是一个加法器所加的东西。我们的目的就是优化损失函数:
m i n β , γ = ∑ i = 1 N L ( y i , ∑ m = 1 M β m b ( x i , γ m ) ) min_{β,\gamma} = \sum_{i=1}^NL( y_i,\sum_{m=1}^Mβ_mb(x_i,\gamma_m)) minβ,γ=i=1NL(yi,m=1Mβmb(xi,γm))
由于该函数模型的自由度太高,采用贪心算法,只优化每一步的最优值则得到最终的最优值得到优化结果,采用加法进行迭代
m i n β , γ = ∑ i = 1 N L ( y i , β b ( x i , γ ) ) min_{β,\gamma} = \sum_{i=1}^NL( y_i,βb(x_i,\gamma)) minβ,γ=i=1NL(yi,βb(xi,γ))
算法如下:
已知:训练集T,损失函数L,基函数 b ( x , γ m ) b(x,\gamma_m) b(x,γm)
(1)初始化模型 f 0 ( x ) = 0 f_0(x) = 0 f0(x)=0
(2.1)对m = 1,2,…,N
优化损失函数:
m i n β , γ = ∑ i = 1 N L ( y i , f m − 1 ( x i ) + β b ( x i , γ ) ) min_{β,\gamma} = \sum_{i=1}^NL( y_i,f_{m-1}(x_i)+βb(x_i,\gamma)) minβ,γ=i=1NL(yi,fm1(xi)+βb(xi,γ))
对式子求偏导通常可解出答案。得到 β , γ β,\gamma β,γ
(2.2)更新 f m ( x ) = f m − 1 ( x i ) + β b ( x i , γ ) f_{m}(x) =f_{m-1}(x_i)+βb(x_i,\gamma) fm(x)=fm1(xi)+βb(xi,γ)
(3)得到加法模型
f ( x ) = ∑ m = 1 M β m b ( x , γ m ) f(x) = \sum_{m=1}^Mβ_mb(x,\gamma_m) f(x)=m=1Mβmb(x,γm)
AdaBoost算法是向前分布算法的一个特例。

提升树模型

已知:训练集T,损失函数L,基函数 T ( x , Θ m ) T(x,Θ_m) T(x,Θm)
初始化
f ( x ) = a r g m i n ∑ m = 1 N L ( y i , c ) f(x) = argmin\sum_{m=1}^NL(y_i,c) f(x)=argminm=1NL(yi,c)
对这个进行计算,
r m i = − [ ∂ L ( y i , f ( x i ) ) ∂ f ( x i ) ] r_{mi} = -[\frac{\partial L(y_i,f(x_i))}{\partial f(x_i)}] rmi=[f(xi)L(yi,f(xi))]
r m i r_{mi} rmi拟合一个回归树,得到节点区域,对节点区域 R m j R_{mj} Rmj
c m j = a r g m i n ∑ x i ∈ R m i N L ( y i , f m − 1 ( x i ) + c ) c_{mj} = argmin\sum_{x_i∈R_{mi}}^NL( y_i,f_{m-1}(x_i)+c) cmj=argminxiRmiNL(yi,fm1(xi)+c)
更新 f m ( x ) = f m − 1 ( x ) + ∑ j = 1 J c m j I ( x ∈ R m j ) f_m(x)=f_{m-1}(x)+\sum_{j=1}^Jc_{mj}I(x∈R_{mj}) fm(x)=fm1(x)+j=1JcmjI(xRmj)
继续拟合,得到回归树。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值