XGBoost बनाम पायथन Sklearn ढाल के पेड़ को बढ़ावा दिया


20

मैं समझने की कोशिश कर रहा हूं कि XGBoost कैसे काम करता है। मैं पहले से ही समझता हूं कि पाइथन स्केलेर पर पेड़ कैसे तेजी से काम करते हैं। मेरे लिए जो स्पष्ट नहीं है वह यह है कि अगर XGBoost उसी तरह काम करता है, लेकिन तेजी से, या अगर इसके और अजगर कार्यान्वयन के बीच बुनियादी अंतर हैं।

जब मैंने यह पेपर पढ़ा

http://learningsys.org/papers/LearningSys_2015_paper_32.pdf

यह मुझे ऐसा लगता है जैसे XGboost से निकलने वाला अंतिम परिणाम पायथन कार्यान्वयन के समान है, हालांकि मुख्य अंतर यह है कि XGboost प्रत्येक प्रतिगमन पेड़ में बनाने के लिए सबसे अच्छा विभाजन कैसे पाता है।

असल में, XGBoost एक ही परिणाम देता है, लेकिन यह तेज है।

क्या यह सही है, या मुझे कुछ और याद आ रहा है?

जवाबों:


18

आप सही हैं, XGBoost ('eXtreme Gradient Boosting') और sklearn's GradientBoost मौलिक रूप से समान हैं क्योंकि वे दोनों ग्रेडिएंट बूस्टिंग कार्यान्वयन हैं।

हालांकि, व्यावहारिक अर्थ में हुड के तहत बहुत महत्वपूर्ण अंतर हैं। XGBoost बहुत अधिक तेज है (देखें http://machinelearningmastery.com/gentle-introduction-xgboost-applied-machine-learning/ ) स्केलेन के मुकाबले। XGBoost काफी मेमोरी-कुशल है और इसे समानांतर किया जा सकता है (मुझे लगता है कि sklearn की डिफ़ॉल्ट रूप से ऐसा नहीं कर सकता, मुझे sklearn की मेमोरी-दक्षता के बारे में बिल्कुल नहीं पता है लेकिन मुझे पूरा विश्वास है कि यह XGBoost के नीचे है)।

दोनों का उपयोग करने के बाद, XGBoost की गति काफी प्रभावशाली है और इसका प्रदर्शन स्केलेर के GradientBoosting से बेहतर है।


1
एक प्रदर्शन अंतर भी है। Xgboost ने प्रत्येक टर्मिनल नोड में इष्टतम स्थिरांक खोजने के लिए दूसरे डेरिवेटिव का उपयोग किया। मानक कार्यान्वयन केवल पहले व्युत्पन्न का उपयोग करता है।
ज़ेलाज़ी 7

@ ज़ेलज़नी 7 क्या आपके पास अपने बयान के लिए कोई संदर्भ है? किसी को उम्मीद होगी कि 2 वें डेरिवेटिव की गणना प्रदर्शन को नीचा दिखाएगी। इसका मतलब यह भी होगा कि इसके अलावा (ढाल के) किसी भी स्वाद का उपयोग किया गया था।
meh



@ K88 के पद पर पुष्टि, sklearn के GradientBoostingClassifier एक नहीं है n_jobsउपलब्ध पैरामीटर इंटरफ़ेस; एल्गोरिथ्म के स्केलेर के कार्यान्वयन के साथ आंतरिक रूप से समानांतर प्रसंस्करण संभव नहीं है।
bmc

7

Sklearn की ढाल बढ़ाने के विपरीत, Xgboost ओवरफिटिंग से बचने के लिए पेड़ के नियमितीकरण के साथ-साथ यह लापता मूल्यों के साथ-साथ कुशलतापूर्वक व्यवहार करता है। Xgboost को जानने के लिए निम्नलिखित लिंक मददगार हो सकते हैं https://www.youtube.com/watch?v=Vly8xGnNiWs


SkLearn के GBM पैरामीटर Learning_rate के माध्यम से नियमितीकरण करता है।
तेजा चब्रोल

1

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

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