Beachten Sie, dass
∥y−Xβ∥22+λ∥β∥1=∥y−β1x1−β2x2∥22+λ(|β1|+|β2|)=∥y−(β1+2β2)x1∥22+λ(|β1|+|β2|).
Für jeden festen Wert des Koeffizienten gilt die Strafewird minimiert, wenn . Dies liegt daran , die Strafe auf wird zweimal so gewichtet! Um dies in Notation zu setzen,erfüllt für alle . Daher der Lasso-Schätzer
| β 1 | +β1+2β2β 1 = 0 β 1 ˜ β = arg min β|β1|+|β2|β1=0β1~ Β 1=0K β
β~=argminβ:β1+2β2=K|β1|+|β2|
β~1=0Kβ 1=0(0,50)(100,0)l1β^=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|)}}
erfüllt . Der Grund, warum die Kommentare zu OPs Frage irreführend sind, liegt darin, dass das Modell eine Strafe erhält: die
β^1=0(0,50)und Koeffizienten ergeben den gleichen Fehler, aber unterschiedliche Norm! Außerdem ist es nicht notwendig, so etwas wie LARs zu betrachten: Dieses Ergebnis folgt unmittelbar aus den ersten Prinzipien.
(100,0)ℓ1
Wie von Firebug hervorgehoben, ist der Grund, warum Ihre Simulation ein widersprüchliches Ergebnis zeigt, dass glmnet
die Features automatisch auf die Einheitsvarianz skaliert werden. Das heißt, aufgrund der Verwendung von glmnet
sind wir effektiv für den Fall, dass . Dort ist der Schätzer nicht mehr eindeutig: und sind beide im min. In der Tat ist für jedes in so dass . ( 100 , 0 ) ( 0 , 100 ) ( a , b ) arg min a , b ≥ 0 a + b = 100x1=x2(100,0)(0,100)(a,b)argmina,b≥0a+b=100
In diesem Fall mit gleichen Merkmalen glmnet
wird in genau einer Iteration konvergiert: Der erste Koeffizient wird mit einem weichen Schwellenwert versehen, und der zweite Koeffizient wird mit einem weichen Schwellenwert auf Null gesetzt.
Dies erklärt, warum die Simulation insbesondere gefunden . In der Tat ist der zweite Koeffizient unabhängig von der Reihenfolge der Merkmale immer Null.β^2=0
Beweis: Nehmen Sie WLOG an, dass das Feature erfüllt . Der Koordinatenabstieg (der von ) verwendete Algorithmus berechnet für die erste Iteration: gefolgt von
wobei . Dann, da ‖ x ‖ 2 = 1 β ( 1 ) 1 = S λ ( x T y ) βx∈Rn∥x∥2=1glmnet
β^(1)1=Sλ(xTy)
T={ - λ wenn β^(1)2=Sλ[xT(y−xSλ(xTy))]=Sλ[xTy−xTx(xTy+T)]=Sλ[−T]=0,
T=⎧⎩⎨−λλ0 if xTy>λ if xTy<−λ otherwiseβ^(1)2=0Die zweite Iteration des Koordinatenabfalls wiederholt die obigen Berechnungen. Induktiv sehen wir, dass für alle Iterationen und . Daher wird und da das Stoppkriterium sofort erreicht wird.
β^(i)j=β^(i)jij∈{1,2}glmnet
ββ^1=β^(1)1β^2=β^(1)2