स्किटिट-लर्न बूटस्ट्रैप फ़ंक्शन टेस्ट सेट को फिर से क्यों करता है?


15

मॉडल मूल्यांकन के लिए बूटस्ट्रैपिंग का उपयोग करते समय, मैंने हमेशा सोचा कि आउट-ऑफ-बैग नमूने सीधे परीक्षण सेट के रूप में उपयोग किए जाते थे। हालाँकि, ऐसा प्रतीत नहीं होता है कि हटाए गए डरावने-सीखने केBootstrap दृष्टिकोण के लिए मामला है , जो आउट-ऑफ-द-बैग डेटा सब्मिट से ड्राइंग से परीक्षण सेट का निर्माण करता है। इसके पीछे सांख्यिकीय तर्क क्या है? क्या ऐसे विशिष्ट परिदृश्य हैं जहां यह तकनीक केवल आउट-ऑफ-बैग-सैंपल या इसके विपरीत का मूल्यांकन करने से बेहतर है?


परिणाम का सत्यापन करना? resampling?
EngrStudent

यदि आप उस टैग का जिक्र कर रहे हैं, जो मेरे द्वारा नहीं जोड़ा गया था। मैं वास्तव में CV के विकल्प के रूप में बूटस्ट्रैपिंग कर रहा हूं।
जिबरफिश

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

जवाबों:


3

कई पुनरावृत्तियों द्वारा एल्गोरिथ्म के प्रदर्शन का मूल्यांकन करने के लिए बूटस्ट्रैप नमूनों का उपयोग किया जाता है। ऐसा करते समय, यादृच्छिक रूप से परिवर्तित सेट पर प्रदर्शन का मूल्यांकन किया जाता है।

इसके विपरीत जब उदाहरण के लिए 10 गुना क्रॉस सत्यापन आप विभिन्न ट्रेन और परीक्षण डेटा सेट पर केवल 10 पुनरावृत्तियों प्रदर्शन कर रहे हैं।

अब जब आपका नमूना आकार छोटा है, तो आपको और बूटस्ट्रैप पुनरावृत्तियों की संख्या अधिक है, चयन करने देता , और आप अपने परीक्षण डेटा को फिर से नहीं बनाते हैं जैसा कि आप अपने ट्रेन डेटा सेट के साथ करते हैं, आपके पास ऐसी परिस्थितियाँ होंगी जहाँ आपके एल्गोरिथ्म एक या अधिक समान परीक्षण को एक से अधिक बार देखता है। ऐसी स्थिति जिसे आप मूल रूप से बूटस्ट्रैप के उपयोग से बचना चाहते थे।n=20i=10,000

आपके द्वारा पोस्ट किया गया लिंक नीचे है, इसलिए मैंने स्केलेर के वर्तमान (0.14) संस्करण में फ़ंक्शन का विवरण जोड़ा

विधि का वर्णन

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


2

शायद आप कुछ पर थे। ऐसा लगता है कि दूसरों को उसी धागे पर खींचा Bootstrapगया था और इस तरह की कोशिश की गई और सही दृष्टिकोण के साथ विधि के अधिक जानबूझकर उपयोग के पक्ष में हटा दिया गया था ।resamplesklearn.cross_validationStratifiedKFold

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