क्या कंप्यूटिंग के लिए एल्गोरिदम "रनिंग" लीनियर या लॉजिस्टिक रिग्रेशन पैरामीटर हैं?


32

Http://www.johndcook.com/standard_deviation.html पर एक पेपर "सटीक रूप से चल रहे विचरण" को दर्शाता है कि रनिंग माध्य, विचरण और मानक विचलन की गणना कैसे करें।

क्या ऐसे एल्गोरिदम हैं जहां एक रेखीय या लॉजिस्टिक रिग्रेशन मॉडल के मापदंडों को उसी तरह "गतिशील रूप से" अपडेट किया जा सकता है, जैसा कि प्रत्येक नए प्रशिक्षण रिकॉर्ड को प्रदान किया जाता है?


1
एक विशाल प्रशिक्षण सेट या डेटा के निरंतर इनपुट स्ट्रीम के साथ, आप स्टोचैस्टिक ग्रेडिएंट डिसेंट जैसे पुनरावृत्त एल्गोरिदम का उपयोग कर सकते हैं और इनपुट को छोटे बैचों में ले जा सकते हैं जैसे आप आगे बढ़ते हैं। क्या आप जो पूछ रहे थे?
andreister

1
लुकअप आरएलएस एल्गोरिथ्म और इसके वेरिएंट। en.wikipedia.org/wiki/Recursive_least_squares_filter
मेमिंग सेप

जवाबों:


20

के रेखीय प्रतीपगमन गुणांक y=एक्स+ हैं =सीv(एक्स,y)/vआर(एक्स) और =मीटरn(y)-मीटरn(एक्स)

तो आपको वास्तव में सीv(एक्स,y) गणना करने के लिए एक वृद्धिशील विधि की आवश्यकता है । इस मान और एक्स के विचरण और y और एक्स दोनों के माध्य से आप पैरामीटर और गणना कर सकते हैं । जैसा कि आप सीv(एक्स,y) वृद्धिशील संगणना के नीचे दिए गए छद्म कोड में देखेंगे, यह vआर(एक्स) वृद्धिशील संगणना के समान है । यह एक आश्चर्य नहीं होना चाहिए क्योंकि vआर(एक्स)=सीv(एक्स,एक्स)

यहाँ वह छद्म कोड है जिसकी आप शायद तलाश कर रहे हैं:

init(): meanX = 0, meanY = 0, varX = 0, covXY = 0, n = 0

update(x,y):
n += 1
dx = x - meanX
dy = y - meanY
varX += (((n-1)/n)*dx*dx - varX)/n
covXY += (((n-1)/n)*dx*dy - covXY)/n
meanX += dx/n
meanY += dy/n

getA(): return covXY/varX
getB(): return meanY - getA()*meanX

मैं जबकि एक बराबर एल्गोरिथ्म के लिए खोज संवर्द्धित रूप में एक बहु variate प्रतिगमन कंप्यूटिंग इस सवाल पाया आर=(एक्स'एक्स)-1एक्स'Y ताकि एक्सआर=Y+ε


4
आपके सहयोग के लिए धन्यवाद! रेखीय प्रतीपगमन के बारे में सवाल का हिस्सा वास्तव में का डुप्लिकेट है stats.stackexchange.com/questions/6920/... जिसका जवाब से पता चलता है कि कैसे एक बहु रेखीय प्रतीपगमन मॉडल अपडेट करने के। वर्तमान थ्रेड को खड़े होने की अनुमति है क्योंकि लॉजिस्टिक प्रतिगमन प्रश्न का हिस्सा स्वतंत्र रूप से ब्याज है। दरअसल, यहां तक ​​कि लॉजिस्टिक भाग को भी आँकड़े.स्टैकएक्सचेंज . com / questions / 59174/… पर दोहराया गया है ।
whuber

1
मुझे लगा कि यह उत्तर प्रश्न में दिए गए संदर्भ पाठ को देखते हुए उपयोगी होगा। लिंक के लिए आपको धन्यवाद। हालाँकि यह वह नहीं है जिसकी मुझे तलाश है। मेरा उपयोग मामला स्पष्ट रूप से विशेष है।
19

3
मेरा मानना ​​है कि यह उपयोगी हो सकता है और वर्किंग कोड की पेशकश करने में अद्वितीय है।
whuber

क्या मैं आपसे पूछ सकता हूं कि आपने dx * dy times (n-1) / n?
फेवरिमाइक्स 8

क्या आप पी-मान की गणना करने के लिए कोड में सुधार कर सकते हैं?
नाथन

12

अपने दो विशिष्ट उदाहरणों के लिए:

रैखिक प्रतिगमन अलेक्जेंडर स्ट्रील और माइकल लिटमैन द्वारा पेपर "ऑनलाइन रैखिक प्रतिगमन और इसके अनुप्रयोग मॉडल-आधारित सुदृढीकरण सीखने के लिए" का वर्णन "KWIK रैखिक प्रतिगमन" (एल्गोरिथ्म 1 देखें) नामक एक एल्गोरिथ्म का वर्णन करता है जो वृद्धिशील प्रतिगमन समाधान का वृद्धिशील अद्यतन का उपयोग करके एक सन्निकटन प्रदान करता है। । ध्यान दें कि यह नियमित नहीं है (अर्थात यह रिज रिग्रेशन नहीं है)। मुझे पूरा यकीन है कि Strehl & Littman का तरीका उस सेटिंग का विस्तार नहीं कर सकता है।

रसद प्रतिगमन

यह धागा मामले पर कुछ प्रकाश डालता है। का हवाला देते हुए:

एक नियमितीकरण बाधा के बिना भी, लॉजिस्टिक प्रतिगमन एक नॉनलाइनियर अनुकूलन समस्या है। पहले से ही यह एक विश्लेषणात्मक समाधान नहीं है, जो आमतौर पर एक अद्यतन समाधान प्राप्त करने के लिए एक शर्त है। एक नियमित बाधा के साथ, यह एक विवश अनुकूलन समस्या बन जाती है। यह गैर-विश्लेषणात्मक जटिलताओं के एक पूरे नए सेट का परिचय देता है जो पहले से ही अनर्गल समस्या थी।

हालाँकि प्रतिगमन के लिए अन्य ऑनलाइन (या वृद्धिशील) विधियाँ हैं जिन्हें आप देखना चाहते हैं, उदाहरण के लिए स्थानीय रूप से भारित प्रतिगमन प्रतिगमन (LWPR)


लॉजिस्टिक रिग्रेशन के बारे में, मुझे लगता है कि आप अनावश्यक रूप से निराशावादी हैं। लॉजिस्टिक रिग्रेशन दो वर्ग की समस्या के लिए पोस्ट क्लास श्रेणी की संभावनाओं की गणना करने के बराबर है, प्रत्येक वर्ग गॉसियन को अलग-अलग साधनों और एक साझा सहसंयोजक के साथ वितरित किया जाता है। सहसंयोजक के लिए MLE प्रति वर्ग सहसंयोजकों का भारित योग है, इसलिए पर्याप्त आँकड़े प्रति वर्ग गणना, योग और वर्गों का योग हैं। स्पष्ट रूप से पर्याप्त आँकड़ों का उपयोग करके सटीक अपडेट को नियंत्रित करना आसान है।
रॉबर्ट डोडिएर

3
@RobertDodier आपने रेखीय विभेदक विश्लेषण का वर्णन किया है, लॉजिस्टिक प्रतिगमन का नहीं। यहां परिचयात्मक खंड का अंतिम पैराग्राफ रिश्ते को स्पष्ट करता है।
1

@ahfoss भले ही प्रति-वर्ग डेटा सामान्य रूप से वितरित न हों, फिर भी प्रति-वर्ग सहसंयोजकों के माध्यम से एक लॉजिस्टिक प्रतिगमन के बराबर मॉडल का निर्माण किया जा सकता है।
रॉबर्ट डोडिएर

1
@RobertDodier समतुल्य मॉडल क्या है? आपको लग रहा है कि एक बहुत मुश्किल समस्या का एक स्पष्ट समाधान है। आपका समाधान या तो आप की तुलना में अधिक शानदार है, या बहुत कम है।
आहफॉस

11

एक सामान्य सिद्धांत के रूप में:

0) आप पर्याप्त आँकड़े और वर्तमान एमएल अनुमान रखते हैं

1) जब आप नया डेटा प्राप्त करते हैं, तो पर्याप्त आँकड़े और अनुमानों को अपडेट करें

2) जब आपके पास पर्याप्त आँकड़े नहीं हैं तो आपको सभी डेटा का उपयोग करने की आवश्यकता होगी।

3) आमतौर पर आपके पास बंद-फार्म समाधान नहीं होते हैं; शुरुआती बिंदु के रूप में पिछले MLE का उपयोग करें, वहां से नया इष्टतम खोजने के लिए कुछ सुविधाजनक अनुकूलन विधि का उपयोग करें। आपको यह जानने के लिए थोड़ा प्रयोग करने की आवश्यकता हो सकती है कि आपके विशेष प्रकार की समस्या के उदाहरणों के लिए कौन सा दृष्टिकोण सबसे अच्छा ट्रेडऑफ़ बनाता है।

यदि आपकी समस्या में एक विशेष संरचना है, तो आप शायद इसका फायदा उठा सकते हैं।

संभावित संदर्भों के एक जोड़े के कुछ मूल्य हो सकते हैं या नहीं:

मैकमैहन, एचबी और एम। स्ट्रीटर (2012),
ओपन प्रॉब्लम: ऑनलाइन लॉजिस्टिक रिग्रेशन के लिए बेहतर
सीमाएँ , जेएमएलआर: कार्यशाला और सम्मेलन की कार्यवाही , खंड 23, 44.144.3

पेनी, डब्ल्यूडी और एसजे रॉबर्ट्स (1999),
डायनामिक लॉजिस्टिक रिग्रेशन ,
प्रोसीडिंग्स IJCNN '99


मैं पर्याप्त आँकड़े रखने के विचार से सहमत हूं (यदि वे समस्या के लिए मौजूद हैं), लेकिन पर्याप्त आँकड़ों की उपस्थिति अन्य सामान को अनावश्यक नहीं बनाती है? यदि आपके पास पर्याप्त आँकड़े हैं, तो आप अद्यतन मापदंडों की गणना ठीक उसी तरह कर सकते हैं जैसे कि आपने संपूर्ण डेटा सेट का उपयोग किया है। वर्तमान मापदंडों को ध्यान में रखने की कोई आवश्यकता नहीं है और न ही अनुकूलन विधियों के साथ प्रयोग करने की आवश्यकता है।
रॉबर्ट डोडिएर

2
यह ध्यान रखना महत्वपूर्ण है कि पर्याप्त आँकड़े होने का अर्थ यह नहीं है कि आपके पास समीकरणों का समाधान है, हालाँकि।
Glen_b -Reinstate मोनिका

8

Tdc के उत्तर में जोड़कर, प्रति बार केवल निरंतर समय के साथ किसी भी समय गुणांक के सटीक अनुमानों की गणना करने के लिए कोई ज्ञात विधि नहीं है। हालांकि, कुछ विकल्प हैं जो उचित और दिलचस्प हैं।

देखने वाला पहला मॉडल ऑनलाइन लर्निंग सेटिंग है। इस सेटिंग में, दुनिया पहले x के मान की घोषणा करती है, आपका एल्गोरिथ्म y के लिए एक मूल्य की भविष्यवाणी करता है, दुनिया सच्चे मूल्य y की घोषणा करती है, और आपका एल्गोरिथ्म एक नुकसान l (y, y ') से ग्रस्त है। इस सेटिंग के लिए यह जाना जाता है कि सरल एल्गोरिदम (ग्रेडिएंट डिसेंट और एक्सप्रिएंटेड ग्रेडिएंट, अन्य के बीच) सबलाइनियर पछतावा प्राप्त करते हैं। इसका मतलब यह है कि जैसा कि आप अधिक उदाहरण देखते हैं कि आपके एल्गोरिथ्म (जब सबसे अच्छा संभव रैखिक भविष्यवक्ता की तुलना में) अतिरिक्त गलतियों की संख्या उदाहरणों की संख्या के साथ नहीं बढ़ती है। यह प्रतिकूल सेटिंग में भी काम करता है। इन अफसोस की सीमाओं को साबित करने के लिए एक लोकप्रिय रणनीति की व्याख्या करने वाला एक अच्छा पेपर है । Shai Shalev-Schwartz के व्याख्यान नोट्स भी उपयोगी हैं।

ऑनलाइन शिक्षण सेटिंग का एक विस्तार है जिसे बैंडिट सेटिंग कहा जाता है जहां आपके एल्गोरिदम को केवल एक संख्या दी जाती है जो यह दर्शाती है कि यह कितना गलत था (और सही उत्तर के लिए कोई संकेतक नहीं)। प्रभावशाली रूप से, ऑनलाइन लर्निंग से कई परिणाम इस सेटिंग पर ले जाते हैं, यहां एक को छोड़कर शोषण के साथ-साथ शोषण के लिए मजबूर किया जाता है, जो सभी प्रकार की दिलचस्प चुनौतियों का सामना करता है।


6

अन्य उत्तरों ने मशीन सीखने की दुनिया को इंगित किया है, और यह निश्चित रूप से एक जगह है जहां इस समस्या को संबोधित किया गया है।

हालांकि, एक और दृष्टिकोण जो आपकी आवश्यकताओं के लिए बेहतर हो सकता है, वह है लो रैंक अपडेट के साथ क्यूआर फैक्टराइजेशन का उपयोग। ऐसा करने के लिए दृष्टिकोण और इसे हल करने के लिए कम से कम वर्गों की समस्याओं में दिए गए हैं:

हैमरलिंग और लुकास द्वारा क्यूआर फैक्टराइजेशन और कम से कम वर्गों की समस्या को अद्यतन करना


5

yटी=βटीएक्सटी+εटी,βटी=βटी-1+ηटी
βटी=βटी-1

yटी=एलजीमैंटी(βटीएक्सटी+εटी),βटी=βटी-1+ηटी

2

यह @chmike उत्तर में जोड़ना है।

यह विधि मानक विचलन के लिए बीपी वेल्फ़र्ड के ऑनलाइन एल्गोरिथ्म के समान प्रतीत होती है जो माध्य की गणना भी करती है। जॉन कुक यहां एक अच्छी व्याख्या देता है । टोनी फिंच 2009 में एक घातीय चलती औसत और मानक विचलन के लिए एक विधि प्रदान करता है:

diff := x – mean 
incr := alpha * diff 
mean := mean + incr 
variance := (1 - alpha) * (variance + diff * incr)

पहले से पोस्ट किए गए उत्तर पर झांकना और एक विस्तारित चलती खिड़की को शामिल करने के लिए उस पर विस्तार करना:

init(): 
    meanX = 0, meanY = 0, varX = 0, covXY = 0, n = 0,
    meanXY = 0, varY = 0, desiredAlpha=0.01 #additional variables for correlation

update(x,y):
    n += 1
    alpha=max(desiredAlpha,1/n) #to handle initial conditions

    dx = x - meanX
    dy = y - meanY
    dxy = (x*y) - meanXY #needed for cor

    varX += ((1-alpha)*dx*dx - varX)*alpha
    varY += ((1-alpha)*dy*dy - varY)*alpha #needed for corXY
    covXY += ((1-alpha)*dx*dy - covXY)*alpha

    #alternate method: varX = (1-alpha)*(varX+dx*dx*alpha)
    #alternate method: varY = (1-alpha)*(varY+dy*dy*alpha) #needed for corXY
    #alternate method: covXY = (1-alpha)*(covXY+dx*dy*alpha)

    meanX += dx * alpha
    meanY += dy * alpha
    meanXY += dxy  * alpha

getA(): return covXY/varX
getB(): return meanY - getA()*meanX
corXY(): return (meanXY - meanX * meanY) / ( sqrt(varX) * sqrt(varY) )

उपरोक्त "कोड" में, वांछित अल्पफा 0 पर सेट किया जा सकता है और यदि ऐसा है, तो कोड घातीय भार के बिना काम करेगा। यह एक वांछित विंडो आकार के लिए Modified_moving_apret द्वारा सुझाए गए अनुसार वांछित 1 को वांछितअल्प को सेट करने का सुझाव दिया जा सकता है ।

साइड सवाल: ऊपर की वैकल्पिक गणनाओं पर, कोई भी टिप्पणी जिस पर एक सटीक दृष्टिकोण से बेहतर है?

संदर्भ:

chmike (2013) https://stats.stackexchange.com/a/79845/70282

कुक, जॉन (nd) सटीक रूप से कंप्यूटिंग विचरण चल रहा है http://www.johndcook.com/blog/standard_deviation/

फिंच, टोनी। (2009) भारित माध्य और विचरण की वृद्धिशील गणना। https://fanf2.user.srcf.net/hermes/doc/antiforgery/stats.pdf

विकिपीडिया। (nd) Welford का ऑनलाइन एल्गोरिथ्म https://en.wikipedia.org/wiki/Al एल्गोरिदम_for_calculating_variance#Online_al एल्गोरिदम

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