आर में, "ग्लमैनेट" एक अवरोधन के लायक है?


10

मैं R का उपयोग करके एक रैखिक मॉडल फिटिंग कर रहा हूं glmnet। मूल (गैर-नियमित) मॉडल का उपयोग करके फिट lmकिया गया था और इसमें निरंतर शब्द नहीं था (यानी यह फॉर्म में था lm(y~0+x1+x2,data))।

glmnetभविष्यवक्ताओं की एक मैट्रिक्स और प्रतिक्रियाओं का एक वेक्टर लेता है। मैं glmnetप्रलेखन पढ़ रहा हूं , और निरंतर अवधि का कोई उल्लेख नहीं पा सकता हूं ।

तो, क्या glmnetमूल के माध्यम से रैखिक फिट को मजबूर करने के लिए पूछने का एक तरीका है ?

जवाबों:


12

हां, एक इंटरसेप्ट एक ग्लमैनेट मॉडल में शामिल है , लेकिन इसे नियमित नहीं किया जाता है ( कोर्डिनेट डीसेंट , पी। 13 के माध्यम से सामान्यीकृत रैखिक मॉडल के लिए नियमितिकरण पथ ।)। कार्यान्वयन के बारे में अधिक विवरण निश्चित रूप से कोड को देखते हुए (एक गाऊसी परिवार के लिए, यह उस elnet()फ़ंक्शन को कहा जाता है glmnet()) द्वारा प्राप्त किया जा सकता है , लेकिन यह फोरट्रान में है।

आप दंडित पैकेज की कोशिश कर सकते हैं , जो गुजरने unpenalized = ~0से अवरोधन को हटाने की अनुमति देता है penalized()

> x <- matrix(rnorm(100*20),100,20)
> y <- rnorm(100)
> fit1 <- penalized(y, penalized=x, unpenalized=~0, 
                    standardize=TRUE) 
> fit2 <- lm(y ~ 0+x)
> plot((coef(fit1) + coef(fit2))/2, coef(fit2)-coef(fit1))

लैस्सो नियमितीकरण पाने के लिए, आप कुछ इस तरह की कोशिश कर सकते हैं

> fit1b <- penalized(y, penalized=x, unpenalized=~0, 
                     standardize=TRUE, lambda1=1, steps=20)
> show(fit1b)
> plotpath(fit1b)

जैसा कि अगले आंकड़े में देखा जा सकता है, दोनों विधियों (बाएं) के साथ प्रतिगमन प्रतिगमन मापदंडों के बीच थोड़ा अंतर है, और आप लसो पथ समाधान को बहुत आसानी से (दाएं) साजिश कर सकते हैं।

वैकल्पिक शब्द

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.