लॉजिस्टिक रिग्रेशन मॉडल को बढ़ावा देना


11

Adaboost एक पहनावा विधि है जो कई कमजोर शिक्षार्थियों को एक मजबूत बनाने के लिए जोड़ती है। Adaboost के सभी उदाहरण जिन्हें मैंने पढ़ा है निर्णय स्टंप / पेड़ों को कमजोर शिक्षार्थियों के रूप में उपयोग किया है। क्या मैं adaboost में विभिन्न कमजोर शिक्षार्थियों का उपयोग कर सकता हूं? उदाहरण के लिए, लॉजिस्टिक रिग्रेशन मॉडल को बढ़ावा देने के लिए एडोबॉस्ट (आमतौर पर बूस्टिंग) को कैसे लागू किया जाए?

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

लेकिन मुझे लगता है कि निर्णय स्टंप से अलग कमजोर कमजोर शिक्षार्थियों को बढ़ावा देने के लिए एक सामान्य एल्गोरिथ्म मौजूद है जो संभावनाओं को आउटपुट करता है। मेरा मानना ​​था कि लोगिटबॉस्ट मेरे सवाल का जवाब है लेकिन मैंने "एडिटिव लॉजिस्टिक रिग्रेशन" पेपर पढ़ने की कोशिश की और बीच में ही अटक गया।

जवाबों:


7

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

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

इसलिए यदि आप एक लॉजिस्टिक-रिग्रेशन को बढ़ावा देने वाले रिग्रेशन के बराबर चाहते हैं, तो बेस लर्नर के बजाय लॉस फ़ंक्शन पर ध्यान दें। यही कारण है कि आप कागज़ में LogitBoost दृष्टिकोण क्या करता है: adaboost में निहित घातीय हानि के बजाय एक लॉग-नुकसान को कम करें। विकिपीडिया AdaBoost पेज इस अंतर का वर्णन करता है।

इस साइट में कई प्रतिभागियों का तर्क होगा कि एक लॉग-ऑड / संभावना आधारित भविष्यवाणी एक सख्त हाँ / नहीं वर्गीकरण भविष्यवाणी के लिए अत्यधिक बेहतर है, क्योंकि पूर्व में आमतौर पर झूठी-सकारात्मक और झूठी-नकारात्मक भविष्यवाणियों की अतिरिक्त लागतों के बीच विभिन्न ट्रेडऑफ़ के लिए अनुमति मिलती है। । जैसा कि आपके संबंधित प्रश्न का उत्तर इंगित करता है, AdaBoost से प्राप्त मजबूत क्लासिफ़ायर से अनुमानित संभावनाओं को प्राप्त करना संभव है, लेकिन LogitBoost बेहतर प्रदर्शन दे सकता है।

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


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

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

@gnikol मैंने अपने उत्तर को इस तरह से संशोधित किया है कि मुझे आशा है कि यह आपको और अन्य पाठकों को स्पष्ट कर देगा। ग्रेडियेंट बूस्टिंग में फिट होने वाले अवशेष छद्म अवशिष्ट हैं जिन्हें नुकसान फ़ंक्शन के ग्रेडिएंट से गणना की जाती है; नुकसान समारोह की पसंद है जो AditBoost को LogitBoost से अलग करती है। किसी भी मामले में मजबूत शिक्षार्थी से संभावनाएं प्राप्त की जा सकती हैं; मैंने अंतिम पैराग्राफ में कार्यान्वयन के एक उदाहरण के लिए एक लिंक प्रदान किया।
ईडीएम

5

वास्तव में हमारे यहां प्रतिगमन मामले पर एक समान प्रश्न है। और @ मट्टू ड्रुरी द्वारा हमारे पास बहुत अच्छा जवाब था

रैखिक प्रतिगमन के लिए धीरे-धीरे बूस्टिंग - यह काम क्यों नहीं करता है?

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

विवरण इस पोस्ट में पाया जा सकता है। इस लिंक में मैंने व्युत्पन्न किया कि दो रैखिक मॉडल जोड़ना क्यों दिलचस्प नहीं है। और मैं निर्णय स्टंप पुनरावृत्ति पर बढ़ाए जाने के प्रभाव को दिखा रहा हूं।

रैखिक बेस शिक्षार्थी को बढ़ाने में कैसे काम करता है? और यह xgboost लाइब्रेरी में कैसे काम करता है?

ध्यान दें, निर्णय वृक्ष / स्टंप लॉजिस्टिक प्रतिगमन के समान "रैखिक मॉडल" नहीं है।

जानकारी के लिए यह पोस्ट देखें

एक निर्णय एक रैखिक मॉडल स्टंप है?

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