मशीन लर्निंग में बैगिंग, बूस्टिंग और स्टैकिंग


245

इन 3 तरीकों में क्या समानताएं और अंतर हैं:

  • जीतना,
  • बढ़ाने,
  • स्टैकिंग?

सबसे अच्छा कौन सा है? और क्यों?

क्या आप मुझे प्रत्येक के लिए एक उदाहरण दे सकते हैं?


3
पाठ्यपुस्तक संदर्भ के लिए, मैं सलाह देता हूं: झोउ, झी-हुआ
वादिम स्मोलियाकोव

जवाबों:


252

तीनों को तथाकथित "मेटा-एल्गोरिदम" कहा जाता है: कई मशीन लर्निंग तकनीकों को एक भविष्य कहनेवाला मॉडल में संयोजित करने के लिए दृष्टिकोण, ताकि वैरिएशन ( बैगिंग ), पूर्वाग्रह ( बूस्टिंग ) को कम किया जा सके या भविष्य कहनेवाला बल में सुधार हो ( उर्फ पहनावा का ढेर )।

हर एल्गोरिथ्म में दो चरण होते हैं:

  1. मूल डेटा के सबसेट पर सरल एमएल मॉडल के वितरण का उत्पादन।

  2. वितरण को एक "एकत्रित" मॉडल में संयोजित करना।

यहाँ तीनों विधियों का संक्षिप्त विवरण दिया गया है:

  1. जीतना (के लिए खड़ा बी ootstrap Agg regat ing ) का उपयोग कर अपने मूल डाटासेट से प्रशिक्षण के लिए अतिरिक्त डेटा उत्पन्न करके अपने भविष्यवाणी के विचरण को कम करने के लिए एक रास्ता है repetitions के साथ संयोजन का निर्माण करने के multisets आपका मूल डेटा के रूप में ही प्रमुखता / आकार की। अपने प्रशिक्षण सेट के आकार को बढ़ाकर आप मॉडल की पूर्वानुमेय शक्ति में सुधार नहीं कर सकते हैं, लेकिन केवल विचरण को कम कर सकते हैं, पूर्वानुमान को अनुमानित परिणाम तक सीमित कर सकते हैं।

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

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

यहाँ एक तुलना तालिका है:

तुलनात्मक तालिका

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

प्रत्येक के लघु उदाहरण:

  1. बैगिंग : ओजोन डेटा
  2. बूस्टिंग : ऑप्टिकल कैरेक्टर रिकग्निशन (OCR) सटीकता को बेहतर बनाने के लिए उपयोग किया जाता है ।
  3. स्टैकिंग : चिकित्सा में कैंसर माइक्रोएरे के वर्गीकरण में उपयोग किया जाता है ।

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

2
@ a-rodin: इस महत्वपूर्ण पहलू को इंगित करने के लिए धन्यवाद, मैंने इस खंड को बेहतर ढंग से प्रतिबिंबित करने के लिए इस खंड को फिर से लिखा। आपकी दूसरी टिप्पणी के अनुसार, मेरी समझ यह है कि बढ़ावा देना भी एक प्रकार का मतदान / औसत है, या क्या मैंने आपको गलत समझा है?
अलेक्जेंडर गल्किन

@AlexanderGalkin के मन में टिप्पणी करने के समय ग्रैडिएंट बूस्ट था: यह वोटिंग की तरह नहीं दिखता है, बल्कि एक पुनरावृत्ति कार्य सन्निकटन तकनीक के रूप में होता है। हालाँकि, AdaBoost मतदान को अधिक पसंद करता है, इसलिए मैं इसके बारे में बहस नहीं करूँगा।
अलेक्जेंडर रोडिन

3
आपके पहले वाक्य में आप कहते हैं कि बूस्टिंग से पूर्वाग्रह घटता है, लेकिन तुलना तालिका में आप कहते हैं कि यह भविष्य कहनेवाला बल बढ़ाता है। क्या ये दोनों सच हैं?
बेन लिंडसे

68

बैगिंग :

  1. समानांतर पहनावा: प्रत्येक मॉडल स्वतंत्र रूप से बनाया गया है

  2. लक्ष्य विचरण को कम करना है , पूर्वाग्रह को नहीं

  3. उच्च विचरण कम पूर्वाग्रह मॉडल (जटिल मॉडल) के लिए उपयुक्त

  4. वृक्ष आधारित विधि का एक उदाहरण यादृच्छिक वन है , जो पूरी तरह से विकसित पेड़ों को विकसित करता है (ध्यान दें कि आरएफ पेड़ों के बीच सहसंबंध को कम करने के लिए बढ़ी हुई प्रक्रिया को संशोधित करता है)

बूस्टिंग :

  1. अनुक्रमिक कलाकारों की टुकड़ी: नए मॉडल को जोड़ने की कोशिश करते हैं जो पिछले मॉडल की कमी है

  2. पूर्वाग्रह को कम करने का लक्ष्य है , न कि विचरण

  3. कम विचरण उच्च पूर्वाग्रह मॉडल के लिए उपयुक्त है

  4. वृक्ष आधारित विधि का एक उदाहरण ढाल बढ़ाने वाला है


5
ऐसा क्यों है और यह कैसे हासिल किया जाता है इसका जवाब देने के लिए प्रत्येक बिंदु पर टिप्पणी करना आपके उत्तर में एक बड़ा सुधार होगा।
टिम

2
क्या आप कोई दस्तावेज़ / लिंक साझा कर सकते हैं जो यह बताता हो कि वर्जन को कम करना और यह कैसे करता है? बस और अधिक गहराई में समझना चाहते हैं
जॉर्जऑफTheRF

1
धन्यवाद टिम, मैं बाद में कुछ टिप्पणियां जोड़ूंगा। @ML_Pro, बढ़ाने की प्रक्रिया से (जैसे कि cs.cornell.edu/courses/cs578/2005fa/… का पृष्ठ 23 ), यह समझ में आता है कि बूस्टिंग से पूर्वाग्रह कम हो सकते हैं।
युकियान

43

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

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

सभी गैरपारंपरिक प्रतिगमन या वर्गीकरण दृष्टिकोणों की तरह, कभी-कभी बैगिंग या बूस्टिंग महान काम करता है, कभी-कभी एक या दूसरा दृष्टिकोण औसत दर्जे का होता है, और कभी-कभी एक या दूसरा दृष्टिकोण (या दोनों) दुर्घटनाग्रस्त हो जाएगा और जल जाएगा।

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


3
ओवरफिट = विचरण के लिए +1, अंडरफिट = पूर्वाग्रह तर्क! निर्णय पेड़ों का उपयोग करने का एक कारण यह है कि वे संरचनात्मक रूप से अस्थिर हैं, इसलिए स्थितियों के थोड़े से बदलाव से अधिक लाभ होता है। ( abbottanalytics.com/assets/pdf/… )
मार्क


3

संक्षेप में पुनर्कथन करने के लिए, बैजिंग और बूस्टिंग का आमतौर पर एक एल्गोरिथ्म के अंदर उपयोग किया जाता है, जबकि स्टैकिंग का उपयोग आमतौर पर विभिन्न एल्गोरिदम से कई परिणामों को संक्षेप में करने के लिए किया जाता है।

  • बैजिंग : कई भविष्यवाणियां और औसत (या अन्य तरीके) परिणाम प्राप्त करने के लिए बूटस्ट्रैप सुविधाओं और नमूनों का उप-उदाहरण, उदाहरण के लिए Random Forest, जो विचरण को समाप्त करते हैं और इसमें ओवरफ़िटिंग समस्या नहीं होती है।
  • बूस्टिंग : बैजिंग से अंतर यह है कि बाद में मॉडल पिछले एक द्वारा की गई त्रुटि को सीखने की कोशिश कर रहा है, उदाहरण के लिए GBMऔर XGBoost, जो विचरण को समाप्त करते हैं, लेकिन ओवरफिटिंग समस्या है।
  • स्टैकिंग : आम तौर पर प्रतियोगिताओं में उपयोग किया जाता है, जब कोई एक ही डेटा सेट और औसत (अधिकतम, न्यूनतम या अन्य संयोजन) पर प्रशिक्षित करने के लिए कई एल्गोरिदम का उपयोग करता है, ताकि भविष्यवाणी की उच्च सटीकता प्राप्त हो सके।

2

सभी चरणों के लिए एकल शिक्षण एल्गोरिथ्म का उपयोग करना और बढ़ाना दोनों ही है; लेकिन वे प्रशिक्षण नमूनों को संभालने के विभिन्न तरीकों का उपयोग करते हैं। दोनों कलाकारों की टुकड़ी सीखने की विधि है कि एक से अधिक मॉडल से निर्णय को जोड़ती हैं
जीतना :
1. resamples प्रशिक्षण डेटा एम सबसेट (बूटस्ट्रैपिंग) प्राप्त करने के लिए;
2. एम डेटासेट (विभिन्न नमूनों) के आधार पर एम क्लासिफायर (एक ही एल्गोरिदम) को प्रशिक्षित करता है;
3. अंतिम क्लासिफायर मतदान द्वारा एम आउटपुट को जोड़ती है;
नमूने समान रूप से वजन;
समान रूप से वजन का वर्गीकरण;
विचरण को कम करने से त्रुटि कम हो जाती है
बूस्टिंग : यहां एडोबोस्ट एल्गोरिथ्म पर ध्यान केंद्रित किया
गया है। पहले दौर में सभी नमूनों के बराबर वजन के साथ शुरू करें;
2. निम्नलिखित एम -1 राउंड में, नमूनों की वेट बढ़ाई जाती है, जो अंतिम राउंड में मिसकॉलिफाइड होते हैं, अंतिम राउंड में सही ढंग से वर्गीकृत किए गए नमूनों की वेट घटाते हैं।
3. वेटेड वोटिंग का उपयोग करते हुए, अंतिम क्लासिफायरियर पिछले राउंड से कई क्लासिफायर को जोड़ती है, और बड़ा वेट देता है। कम गर्भस्राव वाले सहपाठियों के लिए।
चरण-वार प्रतिध्वनि के नमूने; प्रत्येक राउंड के लिए
वेटिंग (बैगिंग) के बजाय अंतिम राउंड -वेट सैंपल (बूस्टिंग) के परिणामों के आधार पर वेट करें।


0

कई सजातीय मॉडल का उपयोग करने के लिए बैगिंग और बूस्टिंग करते हैं।

स्टैकिंग, विषम मॉडल प्रकारों के परिणामों को जोड़ती है।

जैसा कि कोई भी एकल मॉडल प्रकार किसी भी संपूर्ण वितरण में सबसे अधिक फिट नहीं होता है, आप देख सकते हैं कि यह भविष्य कहनेवाला शक्ति क्यों बढ़ा सकता है।

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