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


9

मुझे पता है कि XGBoost में रैखिक उद्देश्य फ़ंक्शन और रैखिक बूस्ट को कैसे लागू किया जाए। मेरा ठोस सवाल यह है: जब एल्गोरिथ्म यह अवशिष्ट (या नकारात्मक ढाल) फिट बैठता है तो क्या यह प्रत्येक चरण में एक विशेषता का उपयोग कर रहा है (यानी एकतरफा मॉडल) या सभी विशेषताएं (बहुभिन्नरूपी मॉडल)?

XGBoost में रैखिक बूस्ट के बारे में दस्तावेज़ीकरण के किसी भी संदर्भ की सराहना की जाएगी।

EDIT: 'बूस्टर' पैरामीटर को 'gblinear' सेट करके XGBoost में रैखिक बूस्ट लागू किया जा सकता है। देखें: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3885826/ रेखीय बूस्टिंग पर उपयोगी जानकारी के लिए। ध्यान दें कि मैं ऑब्जेक्टिव फंक्शन (जो कि रैखिक भी हो सकता है) के बारे में नहीं बोल रहा हूँ, बल्कि उन्हें बढ़ाने के बारे में बोल रहा हूँ।

धन्यवाद!


1
मुझे नहीं पता कि यह कैसे लागू किया गया है, लेकिन मुझे कोई कारण नहीं दिखता है कि इसे एक बार में केवल एक ही विशेषता पर क्यों विचार करना चाहिए
अलेक्सी ग्रिगोरेव

@AlexeyGrigorev सबसे शायद एक समय में कई सुविधाएँ लेता है, लेकिन फिर, इन सुविधाओं का चयन कैसे किया जाता है? रेखीय बूस्टिंग के लिए विशिष्ट प्रक्रिया पर कोई भी दस्तावेज बहुत स्पष्ट होगा।
एस्काटाटर

जवाबों:


17

आपके प्रश्न का संक्षिप्त उत्तर:

जब एल्गोरिथ्म यह अवशिष्ट (या नकारात्मक ढाल) को फिट करता है, तो क्या यह प्रत्येक चरण (यानी यूनीवेट मॉडल) या सभी सुविधाओं (बहुभिन्नरूपी मॉडल) में एक विशेषता का उपयोग कर रहा है?

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

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


बूस्टिंग के लिए कमजोर शिक्षार्थी के रूप में रैखिक के लिए लंबा जवाब:

ज्यादातर मामलों में, हम बेस लर्नर के रूप में रैखिक शिक्षार्थी का उपयोग नहीं कर सकते हैं। कारण सरल है: कई रैखिक मॉडल को एक साथ जोड़ना अभी भी एक रैखिक मॉडल होगा।

हमारे मॉडल को बढ़ाने में आधार शिक्षार्थियों का योग है:

f(x)=m=1Mbm(x)

जहां बूस्टिंग में पुनरावृत्तियों की संख्या है, पुनरावृति के लिए मॉडल है ।Mbmmth

यदि आधार शिक्षार्थी रैखिक है, उदाहरण के लिए, मान लें कि हम सिर्फ पुनरावृत्तियों को चलाते हैं , और और , तब2b1=β0+β1xb2=θ0+θ1x

f(x)=m=12bm(x)=β0+β1x+θ0+θ1x=(β0+θ0)+(β1+θ1)x

जो एक सरल रैखिक मॉडल है! दूसरे शब्दों में, पहनावा मॉडल में बेस लर्नर के साथ "समान शक्ति" है!

इससे भी महत्वपूर्ण बात यह है कि अगर हम रेखीय मॉडल को आधार शिक्षार्थी के रूप में उपयोग करते हैं, तो हम इसे रेखीय प्रणाली को हल करने के बजाय एक कदम कर सकते हैं, हालांकि बूस्टिंग में कई पुनरावृत्तियों।XTXβ=XTy


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

मैं एक फ़ंक्शन फिटिंग कर रहा हूं, जहां डेटा एक साधारण द्विघात फ़ंक्शन, द्वारा उत्पन्न होता है । यहाँ भरा समोच्च जमीनी सच्चाई (बाएं) और अंतिम निर्णय स्टंप बूस्टिंग फिटिंग (दाएं) है।f(x,y)=x2+y2

यहाँ छवि विवरण दर्ज करें

अब, पहले चार पुनरावृत्तियों की जाँच करें।

यहाँ छवि विवरण दर्ज करें

ध्यान दें, रैखिक शिक्षार्थी से भिन्न, 4 पुनरावृति में मॉडल को एक पुनरावृत्ति (एक एकल निर्णय स्टंप) अन्य मापदंडों के साथ प्राप्त नहीं किया जा सकता है।


अब तक, मैंने समझाया, क्यों लोग रैखिक शिक्षार्थी को आधार शिक्षार्थी के रूप में उपयोग नहीं कर रहे हैं। हालांकि, कुछ भी लोगों को ऐसा करने से नहीं रोकता है। यदि हम रेखीय मॉडल को आधार शिक्षार्थी के रूप में उपयोग करते हैं, और पुनरावृत्तियों की संख्या को प्रतिबंधित करते हैं, तो यह एक रेखीय प्रणाली को हल करने के बराबर है, लेकिन हल करने की प्रक्रिया के दौरान पुनरावृत्तियों की संख्या को सीमित करता है।

एक ही उदाहरण, लेकिन 3 डी प्लॉट में, लाल वक्र डेटा हैं, और हरा विमान अंतिम फिट है। आप आसानी से देख सकते हैं, अंतिम मॉडल एक रैखिक मॉडल है, और यह वह है z=mean(data$label)जो x, y विमान के समानांतर है। (आप सोच सकते हैं कि ऐसा क्यों है क्योंकि हमारा डेटा "सममित" है, इसलिए विमान के किसी भी झुकाव से नुकसान बढ़ जाएगा)। अब, पहले 4 पुनरावृत्तियों में क्या हुआ है इसकी जांच करें: सज्जित मॉडल धीरे-धीरे इष्टतम मूल्य (माध्य) पर जा रहा है।

यहाँ छवि विवरण दर्ज करें


अंतिम निष्कर्ष, लीनियर लर्नर का व्यापक रूप से उपयोग नहीं किया जाता है, लेकिन कुछ भी लोगों को इसका उपयोग करने या इसे आर लाइब्रेरी में लागू करने से नहीं रोकता है। इसके अलावा, आप इसका उपयोग कर सकते हैं और मॉडल को नियमित करने के लिए पुनरावृत्तियों की संख्या को सीमित कर सकते हैं।

संबंधित पोस्ट:

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

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


1
मैं कहूंगा कि n पेड़ का संयोजन एक पेड़ है, कोई फर्क नहीं पड़ता कि n कितना बड़ा है!
मेटेरियट

@Metariat नहीं !, संयोजन पेड़ एक पेड़ नहीं है !. पेड़ के लिए, आप विभाजन पर "टी" आकार देखेंगे। लेकिन बढ़ाया स्टंप आपको "#" आकार दिखाई देगा। यानी, विभाजन अन्य विभाजन को पार कर जाएगा!
१it:

क्या आप n पेड़ों का उदाहरण दे सकते हैं? मैं तुम्हें एक बराबर पेड़ दूंगा!
५५ पर मेटेरियट

@Metariat माफ करना मेरे पास अभी समय नहीं है। लेकिन मुझे यकीन है कि निर्णय के पेड़ पर स्टंप आसानी से उत्पन्न नहीं किया जा सकता है। समय मिलने पर इस सवाल पर वापस आऊंगा।
हाइताओ डू

1
मैं मानता हूं कि n पेड़ों का संयोजन अभी भी एक पेड़ है, लेकिन यह पेड़ काफी बड़ा होगा। सबसे खराब स्थिति में पत्तियों की संख्या सभी इनपुट पेड़ों में पत्तियों की संख्या के उत्पाद के बराबर होती है, इसलिए ऐसे पेड़ की जटिलता अव्यावहारिक है। दूसरी ओर रैखिक कार्यों के मामले में जटिलता बिल्कुल समान है।
टोमेक टारसिनेस्की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.