लोचदार नेट लॉजिस्टिक प्रतिगमन में इष्टतम अल्फा चुनना


22

मैं का उपयोग कर एक स्वास्थ्य देखभाल डेटासेट पर एक लोचदार शुद्ध रसद प्रतिगमन प्रदर्शन कर रहा हूँ glmnetका एक ग्रिड से अधिक लैम्ब्डा मूल्यों का चयन करके आर में पैकेज 1. 0 से मेरे संक्षिप्त कोड के नीचे है:α

alphalist <- seq(0,1,by=0.1)
elasticnet <- lapply(alphalist, function(a){
  cv.glmnet(x, y, alpha=a, family="binomial", lambda.min.ratio=.001)
})
for (i in 1:11) {print(min(elasticnet[[i]]$cvm))}

जो कि वृद्धि के साथ से तक अल्फा के प्रत्येक मान के लिए माध्य क्रॉस वेलिड एरर को आउटपुट करता है :0.00.11.00.1

[1] 0.2080167
[1] 0.1947478
[1] 0.1949832
[1] 0.1946211
[1] 0.1947906
[1] 0.1953286
[1] 0.194827
[1] 0.1944735
[1] 0.1942612
[1] 0.1944079
[1] 0.1948874

साहित्य में मैंने जो पढ़ा है, उसके आधार पर, का इष्टतम विकल्प वह स्थान है जहाँ cv त्रुटि को कम से कम किया जाता है। लेकिन अल्फ़ाज़ की सीमा से अधिक त्रुटियों में बहुत भिन्नता है। मैं कई स्थानीय न्यूनतम दिखाई दे रही है, के एक वैश्विक न्यूनतम त्रुटि के साथ के लिए ।α0.1942612alpha=0.8

क्या इसके साथ जाना सुरक्षित है alpha=0.8? या, मैं फिर से चलाना चाहिए भिन्नता को देखते हुए cv.glmnetअधिक पार सत्यापन परतों (जैसे के साथ के बजाय ) या शायद की एक बड़ी संख्या के बीच वेतन वृद्धि और सीवी त्रुटि पथ का स्पष्ट चित्र प्राप्त करने के लिए?10 α2010αalpha=0.01.0


5
आप caretपैकेज पर एक नज़र डालना चाहते हैं, जो अल्फा और लैम्ब्डा दोनों के लिए दोहराया cv और ट्यून कर सकता है (मल्टीकास प्रोसेसिंग का समर्थन करता है!)। स्मृति से, मुझे लगता है कि glmnetदस्तावेज़ीकरण अल्फा के लिए ट्यूनिंग के खिलाफ सलाह देता है जिस तरह से आप यहां कर रहे हैं। यदि उपयोगकर्ता द्वारा प्रदान किए गए लैम्ब्डा के लिए ट्यूनिंग के अलावा अल्फा के लिए ट्यूनिंग है, तो यह गुना तय करने की सिफारिश करता है cv.glmnet

1
आह, इस पोस्ट को यहां पाया गया: सांख्यिकी
रॉबर्टएफ

2
जब आप अलग कोशिश कर रहे हैं तो फोल्ड को ठीक करना न भूलेंα
user4581

1
प्रतिलिपि प्रस्तुत करने योग्यता के लिए, cv.glmnet()बिना foldidsज्ञात यादृच्छिक-बीज से निर्मित किए बिना कभी भी न चलाएं ।
smci

1
@amoeba पर मेरे जवाब पर एक नज़र है - l1 और l2 के बीच के व्यापार-उतार पर इनपुट का स्वागत है!
जेवियर बोरेट सिस्कोट

जवाबों:


7

α और इलास्टिक नेट मापदंडों का मतलब स्पष्ट करना

अलग-अलग पैकेजों द्वारा विभिन्न शब्दावली और मापदंडों का उपयोग किया जाता है, लेकिन अर्थ आम तौर पर एक ही होता है:

आर पैकेज Glmnet निम्नलिखित परिभाषा का उपयोग करता है

minβ0,β1Ni=1Nwil(yi,β0+βTxi)+λ[(1α)||β||22/2+α||β||1]

Sklearn का उपयोग करता है

minw12Ni=1N||yXw||22+α×l1ratio||w||1+0.5×α×(1l1ratio)×||w||22

एक और बी का उपयोग करते हुए वैकल्पिक पैरामीरीज़ेशन हैं ।।ab

भ्रम से बचने के लिए मैं फोन करने जा रहा हूं

  • λ दंड ताकत पैरामीटर
  • L1ratioL1 औरL2 दंड केबीच का अनुपात, 0 (रिज) से 1 (लासो) तकका अनुपात

मापदंडों के प्रभाव की कल्पना करना

एक सिम्युलेटेड डेटा सेट पर विचार करें जहां y में एक शोर साइन वक्र होता है और X एक दो आयामी विशेषता है जिसमें X1=x और X2=x2X1 और X2 के बीच सहसंबंध के कारण लागत समारोह एक संकीर्ण घाटी है।

नीचे दिए गए ग्राफिक्स दो अलग-अलग L1 अनुपात मापदंडों के साथ इलास्टिनेट रिग्रेशन के समाधान पथ का वर्णन करते हैं , λ शक्ति पैरामीटर के एक फ़ंक्शन के रूप में ।

  • दोनों सिमुलेशन के लिए: जब λ=0 तो समाधान दाईं ओर नीचे दाईं ओर संबद्ध घाटी आकार की लागत फ़ंक्शन के साथ ओएलएस समाधान है।
  • जैसे-जैसे λ बढ़ता है, नियमितीकरण में कमी आती है और समाधान ( 0 , 0 ) तक पहुंच जाता है(0,0)
  • दो सिमुलेशन के बीच मुख्य अंतर L1 अनुपात पैरामीटर है।
  • एलएचएस : छोटे L1 अनुपात के लिए, नियमित लागत फ़ंक्शन बहुत कुछ दिखता है जैसे कि गोल आकृति के साथ रिज प्रतिगमन।
  • आरएचएस : बड़े L1 अनुपात के लिए, लागत फ़ंक्शन बहुत कुछ दिखता है जैसे कि विशिष्ट हीरे के आकार के आकृति के साथ लासो प्रतिगमन।
  • मध्यवर्ती L1 अनुपात (नहीं दिखाया गया) के लिए लागत फ़ंक्शन दो का मिश्रण है

यहाँ छवि विवरण दर्ज करें


मापदंडों के प्रभाव को समझना

ElasticNet को लास्सो की कुछ सीमाओं का मुकाबला करने के लिए पेश किया गया था जो हैं:

  • यदि डेटा बिंदु n , p > n से अधिक चर p , तो lasso अधिकांश n पर चयन करता हैnp>nn चर ।
  • लासो समूहबद्ध चयन करने में विफल रहता है, विशेष रूप से सहसंबद्ध चर की उपस्थिति में। यह एक समूह से एक चर का चयन करने और दूसरों की उपेक्षा करने की प्रवृत्ति रखेगा

एक L1 और एक द्विघात L2 दंड के संयोजन से हमें दोनों के फायदे मिलते हैं:

  • L1 एक विरल मॉडल उत्पन्न करता है
  • L2L1

आप इसे ऊपर दिए गए आरेख पर देख सकते हैं, कोने पर एकवचनता को प्रोत्साहित करते हैं , जबकि सख्त उत्तल किनारों को समूहन के लिए प्रोत्साहित करते हैं ।

यहाँ एक दृश्य हैस्टी (ElasticNet के आविष्कारक) से लिया गया है

यहाँ छवि विवरण दर्ज करें

आगे की पढाई


2

प्रश्न की उम्र के बावजूद मुझे कुछ बहुत ही व्यावहारिक टिप्पणी जोड़नी चाहिए। जैसा कि मैं एक आर उपयोगकर्ता नहीं हूं, मैं कोड की बात नहीं कर सकता, लेकिन फिर भी इसे समझने योग्य होना चाहिए।

  1. αkf1,...,fkf(x)=1kifi(x)f(x)=i=1kfi(x)k

  2. रेज़मैप्लिंग का एक फायदा यह है कि आप टेस्ट स्कोर के अनुक्रम का निरीक्षण कर सकते हैं, जो यहां सीवी के स्कोर हैं। आपको हमेशा औसत पर ही नहीं, बल्कि std विचलन पर ध्यान देना चाहिए (यह सामान्य वितरित नहीं है, लेकिन आप जैसे कार्य करते हैं)। आमतौर पर आप इसे सटीकता के लिए 65.5% (display 2.57%) कहते हैं। इस तरह से आप बता सकते हैं कि "छोटे विचलन" संयोग से या संरचनात्मक रूप से होने की अधिक संभावना है। पूर्ण अनुक्रमों का निरीक्षण करने के लिए भी बेहतर होगा । यदि किसी कारण से हमेशा एक गुना बंद होता है, तो आप जिस तरह से अपना विभाजन कर रहे हैं, उस पर पुनर्विचार करना चाह सकते हैं (यह एक दोषपूर्ण प्रयोगात्मक डिजाइन को इंगित करता है, यह भी: क्या आपने फेरबदल किया?)। Scikit-learn में GridSearchCVस्टोर विवरणों के बारे में तह एक्सपायरमेंट cv_results_( यहाँ देखें )।

  3. αL1αL2

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