ことを通知
∥y−Xβ∥22+λ∥β∥1=∥y−β1x1−β2x2∥22+λ(|β1|+|β2|)=∥y−(β1+2β2)x1∥22+λ(|β1|+|β2|).
係数固定値の場合、ペナルティときに最小化され。これは、のペナルティが2倍に加重されているためです。これを表記すると、任意のについてを満たします。したがって、なげなわ推定器
β1+2β2|β1|+|β2|β1=0β1
β~=argminβ:β1+2β2=K|β1|+|β2|
β~1=0Kβ^=argminβ∈Rp∥y−Xβ∥22+λ∥β∥1=argminβ∈Rp∥y−(β1+2β2)x1∥22+λ(|β1|+|β2|)=argβminK∈Rminβ∈Rp:β1+2β2=K∥y−Kx1∥22+λ(|β1|+|β2|)=argβminK∈R{∥y−Kx1∥22+λminβ∈Rp:β1+2β2=K{(|β1|+|β2|)}}
は満たし。OPの質問へのコメントが誤解を招く理由は、モデルにペナルティがあるためです:それら
β^1=0(0,50)そして、の係数は同じエラーを与えるが、異なる当たり前!さらに、LARのようなものを見る必要はありません。この結果は、最初の原則からすぐに続きます。
(100,0)ℓ1
Firebugによって指摘されたように、シミュレーションが矛盾した結果を示す理由はglmnet
、特徴の単位分散に自動的にスケーリングするためです。つまり、の使用によりglmnet
、場合に効果的になります。そこで、推定器は一意ではなくなりました:とはどちらもarg minにあります。実際、はような任意ののにあります。x1=x2(100,0)(0,100)(a,b)argmina,b≥0a+b=100
等しい特徴のこの場合、glmnet
は1回の反復で収束します。最初の係数がソフトしきい値になり、次に2番目の係数がゼロにソフトしきい値になります。
これは、シミュレーションが特にを見つけた理由を説明しています。実際、フィーチャの順序に関係なく、2番目の係数は常にゼロになります。β^2=0
証明: WLOGは、機能が満たすと仮定します。座標降下(が使用するアルゴリズム)は、最初の反復を計算します:後に
ここで。次に、x∈Rn∥x∥2=1glmnet
β^(1)1=Sλ(xTy)
β^(1)2=Sλ[xT(y−xSλ(xTy))]=Sλ[xTy−xTx(xTy+T)]=Sλ[−T]=0,
T=⎧⎩⎨−λλ0 if xTy>λ if xTy<−λ otherwiseβ^(1)2=0、座標降下の2回目の反復では、上記の計算が繰り返されます。帰納的に、すべての反復およびについてであることがわかります。従って報告すると停止基準が直ちに達成されるからです。
β^(i)j=β^(i)jij∈{1,2}glmnet
β^1=β^(1)1β^2=β^(1)2