साने स्टेप वाइज रिग्रेशन?


14

मान लीजिए कि मैं एक बाइनरी क्लासिफायर का निर्माण करना चाहता हूं। मेरे पास कई हजार सुविधाएँ हैं और केवल 10s के नमूने हैं। डोमेन ज्ञान से, मुझे विश्वास है कि कक्षा लेबल सही ढंग से केवल कुछ सुविधाओं का उपयोग कर भविष्यवाणी की जा सकती है एक अच्छा कारण है, लेकिन मैं पता नहीं है जो लोगों को। मैं यह भी चाहता हूं कि अंतिम निर्णय नियम की व्याख्या / व्याख्या करना आसान हो, आगे बहुत कम सुविधाओं की आवश्यकता होगी। मेरी विशेषताओं के कुछ उपसमुच्चय बहुत सहसंबद्ध हैं, इसलिए कुछ स्वतंत्र रूप से सबसे अधिक पूर्वानुमान लगाने वाला काम नहीं करेगा। मैं अपनी विशेषताओं पर परिकल्पना परीक्षण को सार्थक रूप से करने में सक्षम होना चाहता हूं।

इन शर्तों के तहत निम्न चरणबद्ध प्रतिगमन प्रक्रिया उचित है:

  1. मॉडल में पहले से मौजूद सुविधाओं (या पहले पुनरावृत्ति पर सिर्फ अवरोधन) को देखते हुए, उस सुविधा का चयन करें जो मॉडल में जोड़े जाने पर सबसे बड़ी लॉग संभावना अनुपात का उत्पादन करती है। इस चयन में किए गए प्रत्येक परिकल्पना परीक्षण के लिए नाममात्र पी-मूल्य की गणना करने के लिए संभावना अनुपात ची-वर्ग परीक्षण का उपयोग करें। यहां अशक्त यह है कि मॉडल में अतिरिक्त चर जोड़ने से कोई अतिरिक्त भविष्य कहनेवाला क्षमता नहीं मिलती है। विकल्प यह है कि यह भविष्य कहनेवाला क्षमता बढ़ाता है

  2. एक परिवार के रूप में प्रत्येक पुनरावृत्ति के चरण 1 में परीक्षण की गई परिकल्पनाओं का इलाज करें और बेनजामिनी-होचबर्ग जैसी किसी चीज़ का उपयोग करके सबसे छोटी पी-मूल्य (चयनित सुविधा के लिए) के लिए झूठी खोज दर की गणना करें।

  3. गोटो 1 जब तक कि कुछ रोक मापदंड पूरे नहीं किए जाते हैं।

  4. व्यक्तिगत विशेषताओं के लिए गलत खोज दरों की रिपोर्ट करें, लेकिन संपूर्ण रूप से मॉडल के लिए पी-मूल्य नहीं (क्योंकि यह बड़े पैमाने पर फुलाया जाएगा)। इनमें से प्रत्येक कई परीक्षण सही P- मान दिए गए उस विशेषता के सांख्यिकीय महत्व का प्रतिनिधित्व करते हैं सुविधाओं के सभी पहले से मॉडल को जोड़ा गया।

क्या इन परिस्थितियों में ऐसा कुछ करना सभी चरणबद्ध प्रतिगमन की विशिष्ट आलोचनाओं से सफलतापूर्वक बचता है? क्या इस तरह से गलत खोज दरों की गणना उचित है?


3
क्या एक दंडित प्रतिगमन दृष्टिकोण (लासो, इलास्टिक, आदि) के साथ नहीं जाने का एक कारण है?
बेन बोल्कर

जवाबों:


11

मैं आपको उस प्रक्रिया का उपयोग करने की सलाह नहीं दूंगा। मेरी सिफारिश है: इस परियोजना को छोड़ दें। बस, छोड़ देना और चलना। आपको इस काम की कोई उम्मीद नहीं है।

डांटे के इन्फर्नो के स्पष्ट चित्रण "आशा का त्याग करें" छवि के लिए स्रोत

मानक समस्याओं को स्टेपवाइज सिलेक्शन (cf., here ) के साथ सेट करना , आपके मामले में आपको इस तरह के उच्च-आयामी स्थान में अलग होने के कारण एकदम सही भविष्यवाणियां करने की संभावना है।

मेरे पास आपकी स्थिति पर कोई विवरण नहीं है, लेकिन आप कहते हैं कि आपके पास "केवल 10s के नमूने" हैं। चलो धर्मार्थ बनें और कहें कि आपके पास 90 हैं। आप आगे कहते हैं कि आपके पास "कई हजार सुविधाएँ" हैं। आइए कल्पना करें कि आपके पास 'केवल' 2,000 है। सरलता के लिए, मान लें कि आपकी सभी सुविधाएँ बाइनरी हैं। आप "यह मानते हैं कि क्लास लेबल को केवल कुछ विशेषताओं का उपयोग करके सटीक रूप से भविष्यवाणी की जा सकती है", मान लीजिए कि आप अधिकतम 9 सुविधाओं के सेट की तलाश करेंगे। अंत में, आइए कल्पना करें कि संबंध निर्धारक है, जिससे कि सच्चा संबंध आपके डेटा में हमेशा मौजूद रहेगा। (हम इन संख्याओं और मान्यताओं को बदल सकते हैं, लेकिन यह केवल समस्या को बदतर बना सकती है।) अब, आप इन (उदार) परिस्थितियों में उस रिश्ते को कितनी अच्छी तरह से ठीक कर पाएंगे? यही है, कितनी बार सही सेट एकमात्र सेट होगा जो सही सटीकता देता है? या, एक और तरीका है, नौ सुविधाओं के कितने सेट भी अकेले संयोग से फिट होंगे?

कुछ (अति) सरल गणित और सिमुलेशन को इस प्रश्न के कुछ सुराग प्रदान करने चाहिए। सबसे पहले, 9 चर के साथ, जिनमें से प्रत्येक 0 या 1 हो सकता है, एक अवलोकन दिखाने वाले पैटर्न की संख्या हो सकती है , लेकिन आपके पास केवल 90 अवलोकन होंगे। इस प्रकार यह पूरी तरह से संभव है कि, 9 बाइनरी वैरिएबल्स के दिए गए सेट के लिए, हर अवलोकन में भविष्यवाणियों के मूल्यों का एक अलग सेट है - कोई प्रतिकृति नहीं है। समान भविष्यवक्ता मूल्यों के साथ प्रतिकृति के बिना जहां कुछ में y = 0 और कुछ y = 1 है, आपके पास पूर्ण पृथक्करण होगा और हर अवलोकन का सही पूर्वानुमान संभव होगा। 29=512

नीचे, मेरे पास एक सिमुलेशन (आर में कोडित) है यह देखने के लिए कि आपके पास 0 और 1s दोनों के साथ कितनी बार x-मानों का कोई पैटर्न नहीं हो सकता है। जिस तरह से यह काम करता है वह यह है कि मुझे 1 से 512 तक संख्याओं का एक सेट मिलता है, जो संभावित पैटर्न का प्रतिनिधित्व करता है, और देखें कि क्या पहले 45 में कोई भी पैटर्न (जो 0 हो सकता है) दूसरे 45 में किसी भी पैटर्न से मेल खाता है। (यह 1s हो सकता है)। यह मानता है कि आपके पास पूरी तरह से संतुलित प्रतिक्रिया डेटा है, जो आपको इस समस्या से सबसे अच्छा संभव संरक्षण देता है। ध्यान दें कि अलग-अलग y-मानों के साथ कुछ प्रतिकृति वाले एक्स-वैक्टर वास्तव में आपको जंगल से बाहर नहीं निकालते हैं, इसका मतलब है कि आप अपने डेटासेट में हर एक अवलोकन का पूरी तरह से अनुमान लगाने में सक्षम नहीं होंगे, जो कि बहुत कठोर मानक I है। यहाँ का उपयोग कर रहा हूँ।

set.seed(7938)  # this makes the simulation exactly reproducible
my.fun = function(){
  x = sample.int(512, size=90, replace=TRUE)
  return(sum(x[1:45]%in%x[46:90])==0)
}
n.unique = replicate(10000, my.fun())
mean(n.unique)  # [1] 0.0181

1991 choose 9=1.3×10241991/9221221×0.0184 9 एक्स-चर के सेट जो आपके डेटासेट में हर अवलोकन की पूरी तरह से भविष्यवाणी करेंगे।

ध्यान दें कि ये परिणाम केवल उन मामलों के लिए हैं जहां आपके पास अपेक्षाकृत बड़ा डेटासेट है ("दसियों के भीतर"), अपेक्षाकृत कम संख्या में चर ("हजारों" के भीतर), केवल उन मामलों की तलाश करते हैं जहां हर एक अवलोकन का पूरी तरह से अनुमान लगाया जा सकता है ( वहां होगा कई अधिक सेट है कि लगभग परिपूर्ण हैं), आदि आपका वास्तविक मामले बाहर काम करने के लिए 'यह अच्छी तरह से' संभावना नहीं है। इसके अलावा, हमने तय किया कि संबंध पूरी तरह से निर्धारक है। अगर रिश्ते में कुछ यादृच्छिक शोर है तो क्या होगा? उस स्थिति में, आपके पास अभी भी ~ 4 (अशक्त) सेट होंगे जो आपके डेटा की पूरी तरह से भविष्यवाणी करते हैं, लेकिन सही सेट उनके बीच अच्छी तरह से नहीं हो सकता है

Tl, डॉ , यहां मूल बिंदु यह है कि आपके चर का सेट बहुत बड़ा / उच्च आयामी है, और आपके डेटा की मात्रा बहुत छोटी है, कुछ भी संभव हो सकता है। यदि यह वास्तव में सच है कि आपके पास नमूनों के "दसियों", चर के "हजारों" और बिल्कुल कोई सांसारिक विचार नहीं है जो चर सही हो सकते हैं, तो आपको किसी भी प्रक्रिया के साथ कहीं भी होने की कोई उम्मीद नहीं है। जाओ अपने समय के साथ कुछ और करो।


1
अब यह एक उत्तर के लिए एक मूल परिचय है, मुझे यह पसंद है।
45सुकस ग्रेड

1
एक परियोजना का त्याग करना अक्सर एक उचित विकल्प होता है। हालांकि निश्चित रूप से मामलों का एक छोटा हिस्सा, मेरे पास एक से अधिक बार ग्राहकों को सलाह दी जाती है कि वे जिन परियोजनाओं को ध्यान में रखते हैं, वे व्यावहारिक नहीं होंगे।
गूँग - मोनिका

1

Yi ;(i=1,,n)Xij ;(j=1,,p)YY=0Y=1γmm ;(m=1,..,M)γmTXijXij0

XjY=1Y=0

इसलिए मैं संभावना अनुपात के बजाय सीधे भविष्यवाणी का मूल्यांकन करने का सुझाव दूंगा। हालांकि, भविष्यवाणी की गई अवलोकन को मॉडल के अनुमान में शामिल नहीं किया जाना चाहिए (क्योंकि यह वास्तव में ऐसी स्थिति है जब आप वास्तव में अपने मॉडल का उपयोग कर रहे हैं)। तो एक नया चरण 1) (बोल्ड मेरे सुझाए गए बदलाव हैं)। 1) मॉडल में पहले से ही सुविधाओं को देखते हुए (या पहले पुनरावृत्ति पर सिर्फ अवरोधन), उस सुविधा का चयन करें जो मॉडल में जोड़े जाने पर सबसे अच्छी भविष्यवाणियों का निर्माण करती है

अब आपको फैसला करने की जरूरत है

  1. क्या आप गणितीय रूप से "सबसे अच्छा" चाहते हैं
  2. कैसे "फिटिंग" और "भविष्यवाणी" भागों में अपने डेटा को विभाजित करने के लिए

मैं प्रत्येक के लिए एक सुझाव दूंगा:

  1. Y=1Y=0F=CC+IFCI = "गलत")
  2. 12,,n121,3,,n2nF=CnFm

Fm(m=1,,M)m=argmaxmMFm । ध्यान दें कि उपरोक्त विधि के बारे में अच्छी बात यह है कि आपको इस बात की चिंता करने की आवश्यकता नहीं है कि आपके मॉडल में कितने चर हैं या ये चर कितने सहसंबद्ध हैं (जब तक कि यह वास्तव में मॉडल को फिट करना असंभव नहीं बनाता है)। ऐसा इसलिए है क्योंकि मॉडल भविष्यवाणी के लिए अलग से फिट है, इसलिए ओवर-फिटिंग के कारण पूर्वाग्रह, या संख्यात्मक अस्थिरता के कारण गिरावट गरीब भविष्यवाणियों में दिखाई देगी।

sthMs=p+1XjXj

स्टेप-वाइज जोखिम भरा हो सकता है क्योंकि आपको "ग्लोबल मैक्सिमम" के बजाय "लोकल मैक्सिमम" मिल सकता है, खासकर क्योंकि आपके पास भविष्यवाणियों की इतनी बड़ी संख्या है (यह अधिक अनुकूलन के लिए एक बड़ा "स्पेस" है, और शायद मल्टी-मोडल है - अर्थ कई "सर्वश्रेष्ठ" मॉडल हैं)

100F

मुझे लगता है कि आपको यह बहुत पसंद आएगा एक गैर-सांख्यिकीविद् को अंतिम मॉडल की अपनी पसंद को सही ठहराने में आसान , बजाय यह समझाने की कोशिश करने के कि पी-मूल्य इंगित करता है कि मॉडल अच्छा क्यों है।

Y

दो अंतिम टिप्पणी:

  1. आप इस मशीनरी का उपयोग यह तय करने के लिए भी कर सकते हैं कि क्या स्टेप-वाइज फॉरवर्ड सिलेक्शन (केवल वेरिएबल जोड़ें) या बैकवर्ड सेलेक्शन (फुल मॉडल से शुरू, और केवल वेरिएबल्स को हटा दें) से बेहतर है।
  2. pnXTXXTWX(XTX+λI)1XTY(XTWX+λI)1XTWYλλ

सलाह के लिए धन्यवाद। इसके साथ तीन समस्याएं हैं, हालांकि: 1. मैं अपने पूर्वानुमानों में अनिश्चितता की मात्रा और प्रत्येक चर के योगदान की परवाह करता हूं, न कि केवल द्विआधारी भविष्यवाणी सटीकता। 2. मेरे डेटासेट की प्रकृति को देखते हुए, यह रास्ता भी कम्प्यूटेशनल रूप से गहन है। 3. डोमेन ज्ञान से, मेरा मानना ​​है कि स्थानीय ऑप्टिमा मुद्दा महत्वपूर्ण नहीं है।
dsimcha

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

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

@dsimcha - यदि आप सभी बाइनरी क्लासिफायरियर का निर्माण कर रहे हैं, तो आपके द्वारा की गई भविष्यवाणियों के अलावा किसी और चीज़ की परवाह क्यों करेंगे? निश्चित रूप से यह नंबर 1 प्राथमिकता होनी चाहिए, प्रत्येक चर से योगदान को समझने में मदद करने की आवश्यकता है कि यह सबसे अच्छा क्लासिफायरियर क्यों है। एक तरह से आप प्रत्येक चर के लिए योगदान प्राप्त कर सकते हैं, फिर से गणना करना हैएफ प्रत्येक चर को हटाते हुए, एक बार में, और यह जांचें कि यह कैसे तुलना करता है एफ चुने हुए मॉडल के लिए (एफसीरोंn-एफ(-जे)के लिए एक सीमांत प्रभाव की तरह है JTH प्रत्येक चर के कारण) भविष्य कहनेवाला सटीकता पर चर
probabilityislogic

दूसरा मुद्दा यह है कि मेरा जवाब कसौटी में सामान्य है, क्योंकि मुझे नहीं पता कि इस क्लासिफायर का उपयोग करने के परिणाम क्या हैं। यदि आप अधिक पृष्ठभूमि की जानकारी जानते हैं, तोएफयह दर्शाने के लिए बदलना चाहिए कि क्या महत्वपूर्ण है जब आप वास्तव में क्लासिफायर का उपयोग कर रहे होंगे और तब नहीं जब आप मॉडल को फिट कर रहे हों। मुझे विश्वास है कि मैंने अपने उत्तर में यह स्पष्ट कर दिया है।
probabilityislogic
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.