भविष्यवाणी की त्रुटि का अनुमान लगाने के लिए क्रॉस सत्यापन और बूटस्ट्रैपिंग के बीच अंतर


102

मैं भविष्यवाणी की त्रुटि का अनुमान लगाने के लिए क्रॉस सत्यापन और बूटस्ट्रैपिंग के बीच के अंतर के बारे में आपके विचार चाहूंगा।

क्या कोई छोटे डेटासेट आकार या बड़े डेटासेट के लिए बेहतर काम करता है?

जवाबों:


88

यह विचरण और पूर्वाग्रह (हमेशा की तरह) के लिए नीचे आता है। सीवी कम पक्षपाती होता है, लेकिन के-गुना सीवी में काफी बड़ा विचरण होता है। दूसरी ओर, बूटस्ट्रैपिंग काफी हद तक विचरण को कम करता है, लेकिन अधिक पक्षपाती परिणाम देता है (वे निराशावादी होते हैं)। अन्य बूटस्ट्रैपिंग विधियों को बूटस्ट्रैप पूर्वाग्रह (जैसे 632 और 632+ नियमों) से निपटने के लिए अनुकूलित किया गया है।

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

संपादित करें

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

कुछ प्रासंगिक शोध नीचे हैं (एस्प किम और मोलिनारो)।

संदर्भ

बेंगियो, वाई।, और ग्रैंडवेल्ट, वाई। (2005)। K- गुना क्रॉस-सत्यापन के विचरण का अनुमान लगाने में पूर्वाग्रह। सांख्यिकीय डेटा और जटिल डेटा समस्याओं के लिए विश्लेषण, 75-95।

ब्रागा-नेटो, यूएम (2004)। लघु-नमूना माइक्रोएरे वर्गीकरण जैव सूचना विज्ञान, 20 (3), 374–380 के लिए क्रॉस-मान्यता मान्य है। डोई: 10.1093 / जैव सूचना विज्ञान / btg419

एफ्रॉन, बी। (1983)। एक भविष्यवाणी नियम की त्रुटि दर का अनुमान: क्रॉस-सत्यापन पर सुधार। जर्नल ऑफ़ द अमेरिकन स्टैटिस्टिकल एसोसिएशन, 316–331।

एफ्रॉन, बी।, और तिब्शीरानी, ​​आर। (1997)। क्रॉस-सत्यापन पर सुधार: द। 632+ बूटस्ट्रैप विधि। जर्नल ऑफ़ द अमेरिकन स्टैटिस्टिकल एसोसिएशन, 548-560।

फुरलानेलो, सी।, मर्लर, एस।, चेमिनी, सी।, और रिज़ोली, ए। (1997)। पारिस्थितिक डेटा के लिए बूटस्ट्रैप 632+ नियम का एक अनुप्रयोग। WIRN 97।

जियांग, डब्ल्यू।, और साइमन, आर। (2007)। बूटस्ट्रैप विधियों की तुलना और माइक्रोएरे वर्गीकरण में भविष्यवाणी की त्रुटि का आकलन करने के लिए एक समायोजित बूटस्ट्रैप दृष्टिकोण। चिकित्सा में सांख्यिकी, 26 (29), 5320-5334।

जोनाथन, पी।, क्रिज़ानोव्स्की, डब्ल्यू।, और मैककार्थी, डब्ल्यू। (2000)। बहुभिन्नरूपी भविष्यवाणी में प्रदर्शन का आकलन करने के लिए क्रॉस-मान्यता के उपयोग पर। सांख्यिकी और कम्प्यूटिंग, 10 (3), 209–229।

किम, जे.एच. (2009)। वर्गीकरण त्रुटि दर का अनुमान लगाना: बार-बार क्रॉस-सत्यापन, बार-बार होल्ड-आउट और बूटस्ट्रैप। कम्प्यूटेशनल सांख्यिकी और डेटा विश्लेषण, 53 (11), 3735-3745। doi: 10.1016 / j.csda.2009.04.009

कोहावी, आर। (1995)। सटीकता अनुमान और मॉडल चयन के लिए क्रॉस-सत्यापन और बूटस्ट्रैप का एक अध्ययन। आर्टिफिशियल इंटेलिजेंस पर अंतर्राष्ट्रीय संयुक्त सम्मेलन, 14, 1137–1145।

मार्टिन, जे।, और हिर्शबर्ग, डी। (1996)। वर्गीकरण त्रुटि दर I के लिए छोटे नमूना आँकड़े: त्रुटि दर माप।

मोलिनारो, एएम (2005)। भविष्यवाणी की त्रुटि का अनुमान है: तुलनात्मक तरीकों की तुलना। जैव सूचना विज्ञान, 21 (15), 33013307। डोई: 10.1093 / जैव सूचना विज्ञान / bti499

सॉरेबरी, डब्ल्यू।, और शूमाकर 1, एम। (2000)। डेटा-चालित प्रतिगमन मॉडल की जटिलता का आकलन करने के लिए बूटस्ट्रैप और क्रॉस-वैलिडेशन। मेडिकल डेटा विश्लेषण, 26-28।

तिब्शीरानी, ​​आरजे, और तिब्शीरानी, ​​आर। (2009)। क्रॉस-सत्यापन में न्यूनतम त्रुटि दर के लिए एक पूर्वाग्रह सुधार। Arxiv प्रीपेयर arXiv: 0908.2904।


2
बूटस्ट्रैप पूर्वाग्रह निराशावादी नहीं है, यह आशावादी है (साधारण बूटस्ट्रैप नहीं .0632)। इसका कारण यह है कि बूटस्ट्रैप नमूना त्रुटि में बहुत अधिक वजन के लिए अग्रणी मॉडल का परीक्षण करने के लिए बहुत सारे प्रशिक्षण तत्वों का उपयोग करता है।
D1X

33

@ फ्रेंक हरेल ने इस सवाल पर बहुत काम किया है। मुझे विशिष्ट संदर्भों की जानकारी नहीं है।

लेकिन मैं दो तकनीकों को अलग-अलग उद्देश्यों के लिए देखता हूं। मॉडल पर निर्णय लेते समय क्रॉस सत्यापन एक अच्छा उपकरण है - यह आपको यह सोचकर मूर्ख बनाने से बचने में मदद करता है कि आपके पास एक अच्छा मॉडल है जब वास्तव में आप ओवरफिटिंग कर रहे हैं।

जब आपका मॉडल तय हो जाता है, तो बूटस्ट्रैप का उपयोग अधिक समझ में आता है (मुझे कम से कम)।

Http://www.burns-stat.com/pages/Tutor/bootstrap_resampling.html पर R का उपयोग करके इन अवधारणाओं (प्लस क्रमपरिवर्तन परीक्षण) का एक परिचय है


2
क्या मॉडल का चयन करने के लिए पहले सीवी का उपयोग करना समझ में आता है, और उसके बाद उसी डेटा पर बूटस्ट्रैपिंग का उपयोग करना है जो आपके अनुमानों की त्रुटियों को स्वीकार करता है? विशेष रूप से मैं अज्ञात गैर गौसियन शोर के साथ डेटा पर एमएल का उपयोग करके रैखिक प्रतिगमन करना चाहता हूं।
2

9

मेरी समझ यह है कि बूटस्ट्रैपिंग आपके मॉडल में अनिश्चितता की मात्रा निर्धारित करने का एक तरीका है, जबकि क्रॉस सत्यापन मॉडल चयन और पूर्वानुमान सटीकता को मापने के लिए उपयोग किया जाता है।


उत्तर के लिए बहुत बहुत धन्यवाद। मुझे लगा कि जब आप छोटा डेटा सेट (<30 अवलोकन) करते हैं तो बूटस्ट्रैपिंग बेहतर थी। नहीं?
अनुदान

मुझे ऐसा लगता होगा। जब आपके पास एक छोटा नमूना आकार होता है तो क्रॉस सत्यापन उचित नहीं हो सकता है। आप एक क्रॉस वैधीकरण छोड़ सकते हैं, लेकिन यह ओवरोप्टिमिस्टिक हो जाता है।
Glen

यह भी ध्यान दें कि एक छोटे से नमूने के साथ बूटस्ट्रैपिंग कुछ पक्षपाती अनुमानों को जन्म देगा, जैसा कि एफ्रोन के मूल पेपर में उल्लेख किया गया है।
Glen

क्या अनिश्चितता को मापने का तरीका अनिश्चितता को मापना नहीं है? मैं समझता हूं कि मॉडल चयन के लिए CV अधिक सामान्य है, लेकिन मान लीजिए कि मैं AASS के लिए AUC का अनुमान लगाना चाहता हूं, क्या CV या बूटस्ट्रैपिंग बेहतर है?
मैक्स गनीस

9

एक अंतर यह है कि क्रॉस-वैलिडेशन, जैसे कि जैकनाइफ, आपके सभी डेटा बिंदुओं का उपयोग करता है, जबकि बूटस्ट्रैपिंग, जो आपके डेटा को बेतरतीब ढंग से बचाता है, सभी बिंदुओं को हिट नहीं कर सकता है।

आप जब तक चाहें बूटस्ट्रैप कर सकते हैं, जिसका अर्थ है एक बड़ा आकार, जो छोटे नमूनों के साथ मदद करना चाहिए।

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

क्रॉस-वैलिडेशन और जैकनेफ वजन के रूप में सभी नमूने एक ही बिंदु पर हैं, उनके पास बूटस्ट्रैप की तुलना में एक छोटा (हालांकि संभवतः गलत) आत्मविश्वास अंतराल होना चाहिए।


2
नील, लगता है कम से कम 2 में से 4 आपके कथन गलत हैं। 1. भले ही प्रत्येक विशेष बूस्टर सैंपल में मूल डेटापॉइंट्स का ~ 63% कवर होता है, अगर हम आम तौर पर कई (जैसे 10k) बूटस्ट्रैप के नमूने लेते हैं, तो मौका है कि प्रत्येक बिंदु को कम से कम एक में कवर किया जाएगा। 2. मैंने अभी एक त्वरित संख्यात्मक जांच की है - बूटस्ट्रैप और आउट-ऑफ-बूटस्ट्रैप नमूनों का औसत पूरे डेटा औसत के बहुत करीब है। आप खुद की जांच कर सकते हैं
Kochede

यहाँ एक कोड है (इसे फ़ॉर्मेट करने के लिए "संपादित करें" पर क्लिक करें): np के रूप में सुन्नत आयात करें, pd n के रूप में p p n = 1000 B = 1000 y = np.random.randn (n) Meanb, meansoob =], [] के लिए b में रेंज (B): ib = np.random.choice (n, n, प्रतिस्थापित = ट्रू) माध्य = y [ib] .mean () meanb.append (माध्य) indoob = np.ones (n, dtype = bool) indoob [ib] = गलत अर्थोय = y [indoob] .mean () meansoob.append (meanoob) pd.Series (साधन) ।hist (histtype = 'step') pd.Series (meansoob) .hist (histtype = 'step')। ) प्रिंट np.mean (साधन), np.mean (मीनसॉब), pd.Series (y) .mean ()
Kochede

@ कोक्ड "अनिवार्य रूप से 100%" 100% नहीं है। "औसत के बहुत करीब" औसत के समान ही नहीं है। आप वैसल शब्द का उपयोग कर रहे हैं। मैं गलत नहीं हूँ
नील मैकगिन 21

इसलिए आप न केवल गलत उत्तर देते हैं, बल्कि आप उन पर जनसांख्यिकी के साथ जोर देते हैं, ठीक है। बूटस्ट्रैप नमूनों द्वारा डेटा की अपेक्षित कवरेज जल्दी से नमूनों की बढ़ती संख्या के साथ 100% तक पहुंच जाती है। 10 से कम बूटस्ट्रैप नमूनों के बाद उपरोक्त प्रयोग में, सभी डेटा पॉइंट्स बूटस्ट्रैप द्वारा प्रभावित होते हैं। इसी तरह, बूटस्ट्रैप नमूनों के औसत की उम्मीद नमूना माध्य के बराबर है। और 1000 बूटस्ट्रैप नमूनों के अंतर के बाद के उपरोक्त प्रयोग में अंतर 0.1% से कम है (रैंड के बजाय np.random.rand का उपयोग करें, क्योंकि रैंड का मतलब 0 है)
Kochede

यहाँ आपके संदर्भ के लिए अद्यतन कोड है: np के रूप में सुन्न आयात करें, पीडी के रूप में पांडा; n = 1000; बी = 1000; y = np.random.rand (n); माध्यम् = []; कवर = np.zeros (n, dtype = bool); कवरेज = []; बी में रेंज के लिए #begin लूप (B): ib = np.random.choice (n, n, प्रतिस्थापित = ट्रू); ढंका हुआ [ib] = सत्य; कवरेज.एपेंड (कवर.सम) (* * 1.0 / एन); meanb = y [ib] .mean (); meanb.append (माध्य); # लूप प्रिंट कवरेज [: 10]; प्रिंट np.mean (Meanb), pd.Series (y) .mean (); प्रिंट (np.mean (Meanb) - pd.Series (y) .mean ()) / pd.Series (y) .mean ();
कोकेड डे

2

ये पुनरुत्पादन की दो तकनीकें हैं:

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

https://lagunita.stanford.edu/c4x/HumanitiesScience/StatLearning/asset/cv_boot.pdf

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