弹性网络 ElasticNet 坐标下降算法

弹性网络

模型

弹性网络是一种使用 L1, L2 范数作为先验正则项训练的线性回归模型。 这种组合允许学习到一个只有少量参数是非零稀疏的模型,就像 Lasso 一样,但是它仍然保持一些像 Ridge 的正则性质。我们可利用 l1_ratio 参数控制 L1 和 L2 的凸组合。

弹性网络在很多特征互相联系的情况下是非常有用的。Lasso 很可能只随机考虑这些特征中的一个,而弹性网络更倾向于选择两个。

在实践中,Lasso 和 Ridge 之间权衡的一个优势是它允许在循环过程(Under rotate)中继承 Ridge 的稳定性。

最小化的目标函数是:

minw12n||Xwy||22+αρ||w||1+α(1ρ)2||w||22 min w 1 2 n | | X w − y | | 2 2 + α ρ | | w | | 1 + α ( 1 − ρ ) 2 | | w | | 2 2

算法:

坐标下降算法(coordinate descent )


L(w)==12n||Xwy||22+αρ||w||1+α(1ρ)2||w||2212ni(jxijwjyi)2+αρi|wi|+α(1ρ)2iw2i L ( w ) = 1 2 n | | X w − y | | 2 2 + α ρ | | w | | 1 + α ( 1 − ρ ) 2 | | w | | 2 2 = 1 2 n ∑ i ( ∑ j x i j w j − y i ) 2 + α ρ ∑ i | w i | + α ( 1 − ρ ) 2 ∑ i w i 2

其次导数为:
Lwk=====1nixik(jxijwjyi)+α(1ρ)wk+αρ|wk|1n(ix2ik)wk+1nixik(jkxijwjyi)+α(1ρ)wk+αρ|wk|(1n(ix2ik)+α(1ρ))wk1nixik(yijkxijwj)+αρ|wk|awkb+αρ|wk|awkb+αρ[bαρ,b+αρ]awkbαρwk>0wk=0wk<0 ∂ L ∂ w k = 1 n ∑ i x i k ( ∑ j x i j w j − y i ) + α ( 1 − ρ ) w k + α ρ ∂ | w k | = 1 n ( ∑ i x i k 2 ) w k + 1 n ∑ i x i k ( ∑ j ≠ k x i j w j − y i ) + α ( 1 − ρ ) w k + α ρ ∂ | w k | = ( 1 n ( ∑ i x i k 2 ) + α ( 1 − ρ ) ) w k − 1 n ∑ i x i k ( y i − ∑ j ≠ k x i j w j ) + α ρ ∂ | w k | = a w k − b + α ρ ∂ | w k | = { a w k − b + α ρ w k > 0 [ − b − α ρ , − b + α ρ ] w k = 0 a w k − b − α ρ w k < 0

其中:
a=1n(ix2ik)+α(1ρ)b=1nixik(yijkxijwj) a = 1 n ( ∑ i x i k 2 ) + α ( 1 − ρ ) b = 1 n ∑ i x i k ( y i − ∑ j ≠ k x i j w j )

令次导数为零可得:
wk=bαρa0b+αρab>αραρbαρb<αρ(*) (*) w k = { b − α ρ a b > α ρ 0 − α ρ ≤ b ≤ α ρ b + α ρ a b < − α ρ

算法过程:

  1. 选择参数的一个维度 wk w k ,可以是随机也可以是顺序
  2. 用(*)式更新 wk w k

你可能感兴趣的:(优化算法)