LASSO मॉडल में Iteratively रीवेटेड लिस्ट स्क्वायर (IRLS) पद्धति को कैसे लागू करें?


12

मैंने IRLS एल्गोरिथ्म का उपयोग करके एक लॉजिस्टिक रिग्रेशन प्रोग्राम किया है । मैं स्वचालित रूप से सही सुविधाओं का चयन करने के लिए एक LASSO दंड लागू करना चाहूंगा । प्रत्येक पुनरावृत्ति पर, निम्न हल किया जाता है:

(XTWX)δβ^=XT(yp)

Let एक गैर-नकारात्मक वास्तविक संख्या है। मैं तत्वों के रूप में सुझाए गए अवरोधन को दंडित नहीं कर रहा हूं सांख्यिकीय सीखना । पहले से ही शून्य गुणांक के लिए डिट्टो। अन्यथा, मैं दाईं ओर से एक शब्द घटाता हूं:λ

XT(yp)λ×sign(β^)

हालाँकि, मैं IRLS एल्गोरिथ्म के संशोधन के बारे में अनिश्चित हूं। क्या यह सही तरीका है?


संपादित करें: हालांकि मैं इसके बारे में आश्वस्त नहीं था, यहाँ समाधान मैं अंत में के साथ आया है में से एक है। यह दिलचस्प है कि यह समाधान उस चीज से मेल खाता है जिसे मैं अब LASSO के बारे में समझता हूं। वास्तव में केवल एक के बजाय प्रत्येक पुनरावृत्ति पर दो चरण हैं:

  • पहला चरण पहले जैसा ही है: हम एल्गोरिथ्म का एक पुनरावृत्ति बनाते हैं (जैसे कि ऊपर के ढाल के लिए सूत्र में ),λ=0
  • दूसरा चरण नया है: हम पहले चरण में प्राप्त किए गए वेक्टर प्रत्येक घटक को छोड़कर (प्रत्येक घटक को छोड़कर) को , जो कि घटक के इंटरसेप्टर से मेल खाता है) । इसे Iterative Soft-Thresholding Algorithm कहा जाता है । ββ0β

i1,βisign(βi)×max(0,|βi|λ)

फिर भी IRLS को अपनाने से बेहतर अभिसरण नहीं हो सका। : '(
वोक

जवाबों:


12

इस समस्या को आम तौर पर समन्वित वंश ( यहां देखें ) द्वारा फिट करके हल किया जाता है । यह विधि दोनों अधिक कुशल है संख्यात्मक रूप से, एल्गोरिदम को लागू करने और अधिक सामान्य सरणी मॉडल (कॉक्स प्रतिगमन सहित) के लिए लागू करना आसान है। R पैकेज glmnet में R कार्यान्वयन उपलब्ध है । कोड खुले स्रोत हैं (आंशिक रूप से और सी में, आंशिक रूप से आर में), इसलिए आप उन्हें ब्लूप्रिंट के रूप में उपयोग कर सकते हैं।


@ नोट के अनुसार, scikit.learn पैकेज भी इस तरह के सामान के लिए पायथन में कुशल कार्यान्वयन प्रदान करता है।
chl

समन्वित वंश एल्गोरिथ्म दिलचस्प है। धन्यवाद। फिर भी सोच रहा था।
वोक

5

LASSO हानि फ़ंक्शन में प्रत्येक अक्ष के साथ शून्य पर एक असंतोष है, इसलिए IRLS को इसके साथ समस्या होने वाली है। मैंने एक अनुक्रमिक न्यूनतम अनुकूलन (एसएमओ) प्रकार के दृष्टिकोण को बहुत प्रभावी पाया है, उदाहरण के लिए देखें

http://bioinformatics.oxfordjournals.org/content/19/17/2246

MATLAB सॉफ्टवेयर वाला एक संस्करण है

http://bioinformatics.oxfordjournals.org/content/22/19/2348

सॉफ्टवेयर यहाँ उपलब्ध है:

http://theoval.cmp.uea.ac.uk/~gcc/cbl/blogreg/

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


धन्यवाद। मैं इसे पढ़ रहा हूं और इसके बारे में सोच रहा हूं। हालांकि, यह वर्तमान एल्गोरिथ्म का एक बड़ा संशोधन होगा।
वोक

4

आप कागज की जांच कर सकते हैं: कुशल एल 1-नियमित लॉजिस्टिक प्रतिगमन, जो कि एलएएसओ के लिए एक आईआरएलएस-आधारित एल्गोरिथ्म है। कार्यान्वयन के संबंध में, लिंक आपके लिए उपयोगी हो सकता है (http://ai.stanford.edu/~silee/softwares/irlslars.htm)।


0

LASSO समस्या के लिए IRLS निम्नलिखित है:

argminx12Axb22+λx1=argminx12Axb22+λxTWx

जहाँ एक विकर्ण मैट्रिक्स है - । यह से आता है ।डब्ल्यू आई , आई = Wएक्स1=Σमैं| xi| =Σमैंx 2 मैंWi,i=1|xi|
x1=i|xi|=ixi2|xi|

अब, ऊपर सिर्फ तिखोनोव नियमितीकरण है
फिर भी, के बाद से पर निर्भर करता है एक यह iteratively हल करना चाहिए (इसके अलावा इस टिकोनोव नियमितीकरण में 2 कारक रद्द करता है, के व्युत्पन्न के रूप में के संबंध में , जबकि पकड़े निरंतर रूप है जो बराबर है :एक्स एक्स टी डब्ल्यू एक्स एक्स एक्स डायग ( संकेत ( एक्स ) ) डब्ल्यू एक्सWxxTWxxxdiag(sign(x))Wx

xk+1=(ATA+λWk)1ATb

जहाँ ।Wi,iK=1|xik|

प्रारंभ द्वारा किया जा सकता है ।W=I

वेतन ध्यान यह अच्छी तरह के बड़े मूल्यों के लिए काम नहीं करता है और आप बेहतर इस्तेमाल ए डी एम एम या वंश समन्वय।λ

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