सबसे छोटा


14

लैसो अनुमान परिभाषित बीटा λ = आर्ग मिनट बीटा आर पी 1

β^λ=argminβRp12nyXβ22+λβ1,
जहांithपंक्तिxiRpडिजाइन के मैट्रिक्सXRn×pस्टोकेस्टिक प्रतिक्रिया की व्याख्या के लिए covariates का एक वेक्टर हैyi(i=1,n) के लिए।

हम जानते हैं कि के लिए λ1nXTy, लैसो अनुमान बीटा λ=0। (देखें उदाहरण के लिए,कमंद और रिज ट्यूनिंग पैरामीटर गुंजाइशहै कि।) अन्य अंकन में, यह व्यक्त कर रहा हैλअधिकतम=1β^λ=0λmax=1nXTy। सूचना है किλmax=supβ^λ0λ.हम इसे निम्नलिखित लसो समाधान पथ प्रदर्शित करने वाली छवि के साथ देख सकते हैं:

लसो समाधान पथ

सूचना है कि पर अब तक साजिश के दाहिने हाथ की ओर, गुणांक के सभी शून्य कर रहे हैं। इस बिंदु पर होता है ऊपर वर्णित है।λmax

इस साजिश से, हम यह भी देखते हैं कि अब तक बाईं ओर, गुणांक के सभी अशून्य हैं: का मूल्य क्या है , जिस पर के किसी भी घटक बीटा λ शुरू में शून्य है? यह है कि, क्या है λ मिनट = मिनट jλβ^λ, के बराबर के एक समारोह के रूप मेंएक्सऔरवाई? मुझे एक बंद फॉर्म समाधान में दिलचस्पी है। विशेष रूप से, मैं एक एल्गोरिथम समाधान में दिलचस्पी नहीं रखता हूं, जैसे कि, उदाहरण के लिए, यह सुझाव देते हुए कि एलएआरएस गणना के माध्यम से गाँठ पा सकते हैं।

λmin=minjs.t.β^j=0λ
Xy

मेरे हितों के बावजूद, ऐसा लगता है कि बंद रूप में उपलब्ध नहीं हो सकता है, क्योंकि, अन्यथा, क्रॉस सत्यापन के दौरान ट्यूनिंग पैरामीटर गहराई का निर्धारण करते समय लसो कम्प्यूटेशनल पैकेज संभवतः इसका लाभ उठाएगा। इसके प्रकाश में, मुझे ऐसी किसी भी चीज़ में दिलचस्पी है जिसे सैद्धांतिक रूप से λ m i n के बारे में दिखाया जा सकता है और (अभी भी) विशेष रूप से एक बंद रूप में रुचि रखता है।λminλmin


यह glmnet पेपर में बताया और सिद्ध किया गया है: web.stanford.edu/~hastie/Papers/glmnet.pdf
मैथ्यू ड्र्यू

@MatthewDrury इसे साझा करने के लिए धन्यवाद! हालाँकि, यह कागज आपको लगता है कि वे जो सुझाव देते हैं उसे साझा नहीं करते हैं। विशेष रूप से, ध्यान दें कि मेरा उनका λ मिनट हैλmaxλmin
user795305

क्या आप सुनिश्चित हैं कि हमें [ट्यूनिंग-पैरामीटर] टैग की आवश्यकता है?
अमीबा का कहना है कि मोनिका

1
आप सही कह रहे हैं, लैस्सो समाधान के लिए एक बंद फॉर्म सामान्य रूप से मौजूद नहीं है (देखें । आँकड़े ।ackackchange.com/questions/174003/… )। हालाँकि, लार्स कम से कम आपको बताता है कि क्या चल रहा है और किन सटीक परिस्थितियों में / जिस समय आप एक चर जोड़ सकते हैं / हटा सकते हैं। मुझे लगता है कि ऐसा कुछ आप सबसे अच्छा कर सकते हैं।
Chrrr

1
@chRrr मुझे यकीन है कि ऐसा नहीं है कि पूरी तरह से निष्पक्ष का कहना हूँ: हम जानते हैं कि बीटा λ के लिए λ 1β^λ=0। यही कारण है कि समाधान 0 के चरम मामले में, हमारे पास एक बंद रूप है। मैं पूछ रहा हूं कि क्या इसी तरह के लास्सो एस्टीम के घने मामले में सच है (यानी शून्य नहीं)। दरअसल, मैं भी की सटीक प्रविष्टियों में कोई दिलचस्पी नहीं हूँ बीटा λ--- बस क्या वे शून्य या नहीं कर रहे हैं। λ1nXtyβ^λ
user795305

जवाबों:


15

प्रश्न में वर्णित लैस्सो अनुमान निम्न अनुकूलन समस्या के बराबर लैग्रेंज गुणक है:

minimize f(β) subject to g(β)t

f(β)=12n||yXβ||22g(β)=||β||1

इस ऑप्टिमाइज़ेशन में एक बहुआयामी क्षेत्र और एक पोलिटोप (एक्स के वैक्टर द्वारा प्रायोजित ) के बीच संपर्क के बिंदु को खोजने का एक ज्यामितीय प्रतिनिधित्व है । Polytope की सतह का प्रतिनिधित्व करता है g(β) । गोलक की त्रिज्या के वर्ग समारोह का प्रतिनिधित्व करता है f(β) और कम से कम है जब संपर्क सतहों।

नीचे दिए गए चित्र एक चित्रमय विवरण प्रदान करते हैं। चित्र 3 लंबाई के वैक्टर के साथ निम्नलिखित सरल समस्या का उपयोग किया (एक ड्राइंग बनाने में सक्षम होने के लिए सादगी के लिए):

[y1y2y3]=[1.41.840.32]=β1[0.80.60]+β2[00.60.8]+β3[0.60.640.48]+[ϵ1ϵ2ϵ3]
और हम कम से कमϵ12+ϵ22+ϵ32 बाधा के साथabs(β1)+abs(β2)+abs(β3)t

चित्र दिखाते हैं:

  • लाल सतह पर कसाव दर्शाया गया है, एक्स द्वारा फैलाया गया एक पॉलीटॉप है।
  • और हरी सतह न्यूनतम सतह, एक गोले को दर्शाती है।
  • नीली रेखा लस्सो पथ को दर्शाती है, जो समाधान हम पाते हैं जैसे हम t या λ बदलते हैं ।
  • हरे रंग वेक्टर शो OLS समाधान y (जो के रूप में चुना गया था β 1 = β 2 = β 3 = 1 या y = एक्स 1 + x 2 + एक्स 3y^β1=β2=β3=1y^=x1+x2+x3
  • तीन काले वैक्टर x1=(0.8,0.6,0) , x2=(0,0.6,0.8) और x3=(0.6,0.64,0.48)

हम तीन चित्र दिखाते हैं:

  1. पहली छवि में केवल पॉलीटॉप का एक बिंदु गोले को छू रहा है । यह छवि बहुत अच्छी तरह से प्रदर्शित करती है कि लसो समाधान ओएलएस समाधान का सिर्फ एक बहु क्यों नहीं है। OLS समाधान की दिशा योग को मजबूत करती है |β|1इस मामले में केवल एक ही में βi गैर-शून्य है।
  2. दूसरी छवि में पॉलीटोप का एक रिज क्षेत्र को छू रहा है (उच्च आयामों में हमें उच्च आयामी एनालॉग्स मिलते हैं)। इस मामले में कई βi कर रहे हैं गैर शून्य।
  3. तीसरी छवि में एक पहलू टोफ पोलीटॉप क्षेत्र को छू रहा है । इस मामले में सभी βi गैर-शून्य हैं

t या λ की श्रेणी जिसके लिए हमारे पास पहले और तीसरे मामले हैं, उनकी सरल ज्यामितीय प्रतिनिधित्व के कारण आसानी से गणना की जा सकती है।

केस 1: केवल एक βi नॉन-जीरो

गैर शून्य βi जिसके लिए संबंधित वेक्टर है xi साथ सहप्रसरण के उच्चतम निरपेक्ष मूल्य है y^ parrallelotope जो OLS समाधान के सबसे करीब की बात है)। हम Lagrange गुणक गणना कर सकते हैं λmax जिसके नीचे हम कम से कम एक गैर शून्य है β के साथ व्युत्पन्न लेने के द्वारा ±βi (साइन है कि क्या हम में वृद्धि के आधार पर βi नकारात्मक या सकारात्मक दिशा में):

(12n||yXβ||22λ||β||1)±βi=0

जिससे होता है

λmax=(12n(||yXβ||22±βi)(||β||1)±βi)=±(12n||yXβ||22βi=±1nxiy

||XTy|| mentioned in the comments.

where we should notice that this is only true for the special case in which the tip of the polytope is touching the sphere (so this is not a general solution, although generalization is straightforward).

Case 3: All βi are non-zero.

In this case that a facet of the polytope is touching the sphere. Then the direction of change of the lasso path is normal to the surface of the particular facet.

The polytope has many facets, with positive and negative contributions of the xi. In the case of the last lasso step, when the lasso solution is close to the ols solution, then the contributions of the xi must be defined by the sign of the OLS solution. The normal of the facet can be defined by taking the gradient of the function ||β(r)||1, the value of the sum of beta at the point r, which is:

n=r(||β(r)||1)=r(sign(β^)(XTX)1XTr)=sign(β^)(XTX)1XT

and the equivalent change of beta for this direction is:

βlast=(XTX)1Xn=(XTX)1XT[sign(β^)(XTX)1XT]

which after some algebraic tricks with shifting the transposes (ATBT=[BA]T) and distribution of brackets becomes

βlast=(XTX)1sign(β^)

we normalize this direction:

βlast,normalized=βlastβlastsign(β^)

To find the λmin below which all coefficients are non-zero. We only have to calculate back from the OLS solution back to the point where one of the coefficients is zero,

d=min(β^βlast,normalized)with the condition that β^βlast,normalized>0

,and at this point we evaluate the derivative (as before when we calculate λmax). We use that for a quadratic function we have q(x)=2q(1)x:

λmin=dn||Xβlast,normalized||22

Images

a point of the polytope is touching the sphere, a single βi is non-zero:

first step of lasso path

a ridge (or differen in multiple dimensions) of the polytope is touching the sphere, many βi are non-zero:

middle of lasso path

a facet of the polytope is touching the sphere, all βi are non-zero:

final step of lasso path

Code example:

library(lars)    
data(diabetes)
y <- diabetes$y - mean(diabetes$y)
x <- diabetes$x

# models
lmc <- coef(lm(y~0+x))
modl <- lars(diabetes$x, diabetes$y, type="lasso")

# matrix equation
d_x <- matrix(rep(x[,1],9),length(x[,1])) %*% diag(sign(lmc[-c(1)]/lmc[1]))
x_c = x[,-1]-d_x
y_c = -x[,1]

# solving equation
cof <- coefficients(lm(y_c~0+x_c))
cof <- c(1-sum(cof*sign(lmc[-c(1)]/lmc[1])),cof)

# alternatively the last direction of change in coefficients is found by:
solve(t(x) %*% x) %*% sign(lmc)

# solution by lars package
cof_m <-(coefficients(modl)[13,]-coefficients(modl)[12,])

# last step
dist <- x %*% (cof/sum(cof*sign(lmc[])))
#dist_m <- x %*% (cof_m/sum(cof_m*sign(lmc[]))) #for comparison

# calculate back to zero
shrinking_set <- which(-lmc[]/cof>0)  #only the positive values
step_last <- min((-lmc/cof)[shrinking_set])

d_err_d_beta <- step_last*sum(dist^2)

# compare
modl[4] #all computed lambda
d_err_d_beta  # lambda last change
max(t(x) %*% y) # lambda first change
enter code here

note: those last three lines are the most important

> modl[4]            # all computed lambda by algorithm
$lambda
 [1] 949.435260 889.315991 452.900969 316.074053 130.130851  88.782430  68.965221  19.981255   5.477473   5.089179
[11]   2.182250   1.310435

> d_err_d_beta       # lambda last change by calculating only last step
    xhdl 
1.310435 
> max(t(x) %*% y)    # lambda first change by max(x^T y)
[1] 949.4353

Written by StackExchangeStrike


Thanks for including the edits! So far in my reading, I'm stuck just past the "case 1" subsection. The result for λmax derived there is wrong since it doesn't include an absolute value or a maximum. We know further that there's a mistake since in the derivation, there's a sign mistake, a place where differentiability is wrongly assumed, an "arbitrary choice" of i to differentiate with respect to, and an incorrectly evaluated derivative. To be frank, there isn't one "=" sign that's valid.
user795305

I have corrected it with a plus minus sign. The change of the beta can be possitive or negative. Regarding the maximum and "arbitrary choice"... "for which the associated vector xi has the highest covariance with y^"
Sextus Empiricus

Thanks for the update! However, there's still problems. For instance, βiyXβ22 is evaluated incorrectly.
user795305

If β=0 then βi||yXβ||22
=||yXβ||2βi2||yXβ||2
=||ysxi||2s2||yXβ||2
=2cor(xi,y)||xi||2||y||2
=2xiy
this correlation enters the equation because,if s=0 then only the change of sxi tangent to y is changing the length of the vector ysxi
Sextus Empiricus

Ah, okay, so there's a limit involved in your argument! (You're using both β=0 and that a coefficient is nonzero.) Further, the second equality in the line with λmax is misleading since the sign could change due to the differentiation of the absolute value.
user795305
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.