GBM बनाम XGBOOST? मुख्य अंतर?


40

मैं GBM और XGBOOST के बीच महत्वपूर्ण अंतर को समझने की कोशिश कर रहा हूं। मैंने इसे Google करने की कोशिश की, लेकिन दोनों एल्गोरिदम के बीच अंतर को समझाते हुए कोई अच्छा जवाब नहीं मिल सका और क्यों xgboost लगभग हमेशा GBM से बेहतर प्रदर्शन करता है। क्या है XGBOOST इतनी जल्दी?


XGBoost नहीं है कि fast.Refer को इस प्रयोग
agcala

जवाबों:


36

के लेखक से उद्धरण xgboost:

Xgboost और gbm दोनों ग्रेडिएंट बूस्टिंग के सिद्धांत का पालन करते हैं। हालांकि, मॉडलिंग के विवरण में अंतर है। विशेष रूप से, xgboost ने ओवर-फिटिंग को नियंत्रित करने के लिए एक अधिक नियमित मॉडल औपचारिकता का उपयोग किया, जो इसे बेहतर प्रदर्शन देता है।

हमने मॉडल के परिचय पर एक व्यापक ट्यूटोरियल अपडेट किया है, जिसे आप देखना चाहते हैं। बूस्टेड ट्री का परिचय

नाम xgboost, हालांकि, वास्तव में बढ़ावा देने के पेड़ एल्गोरिदम के लिए गणना संसाधनों की सीमा को धक्का करने के लिए इंजीनियरिंग लक्ष्य को संदर्भित करता है। यही कारण है कि बहुत से लोग xgboost का उपयोग करते हैं। मॉडल के लिए, इसे नियमित रूप से ढाल को बढ़ावा देने के रूप में कहा जाना अधिक उपयुक्त हो सकता है।

संपादित करें: xgboost की एक विस्तृत मार्गदर्शिका है जो अधिक अंतर दिखाती है।

संदर्भ

https://www.quora.com/What-is-the-difference-between-the-R-gbm-gradient-boosting-machine-and-xgboost-extreme-gradient-boosting

https://xgboost.readthedocs.io/en/latest/tutorials/model.html


2
अच्छा उत्तर। ओपी ने यह भी पूछा कि xgboost इतना तेज क्यों है। कारण यह है कि जबकि यह सुनिश्चित करने के लिए संभव नहीं है कि वे स्वयं को लकवाग्रस्त करें क्योंकि प्रत्येक पेड़ पिछले पर निर्भर है, आप प्रत्येक पेड़ की गहराई के भीतर कई नोड्स के निर्माण को लकवाग्रस्त कर सकते हैं। इन प्रकारों का विवरण है जो xgboost को इतनी तेज बनाता है।
रिकार्डो क्रूज़

13

इग्ब्लेड द्वारा दिए गए उत्तर के अलावा, एक्सगबोस्ट के डेवलपर्स ने कार्यान्वयन के विभिन्न हिस्सों में कई महत्वपूर्ण प्रदर्शन संवर्द्धन किए हैं जो गति और स्मृति उपयोग में बड़ा अंतर करते हैं:

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

बड़े डेटासेट (5 मिलियन + रिकॉर्ड) का प्रशिक्षण देते समय GBM और xgboost का उपयोग करते समय मैंने अपने अनुभव में, एक ही डेटासेट के लिए मेमोरी उपयोग (आर में) को काफी कम कर दिया है और प्रशिक्षण समय को कम करने के लिए कई कोर का उपयोग करना आसान पाया।


10

एक बहुत ही महत्वपूर्ण अंतर xgboostने DART को लागू किया है , रिग्रेशन पेड़ों के लिए नियमितीकरण

संदर्भ

रश्मि, केवी, और गिलाद-बछराच, आर। (2015)। डार्ट: ड्रॉपआउट कई एडिटिव रिग्रेशन ट्री से मिलते हैं। arXiv प्रीप्रिंट arXiv: 1505.01866।


1
डार्ट को LGBM में xgboost_dart_mode शामिल किया गया है
अगकला

0

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

ग्रेडिंग बूस्ट केवल विचरण पर केंद्रित होता है, लेकिन पूर्वाग्रह के बीच व्यापार बंद नहीं होता जहां एक्सग बूस्ट नियमितीकरण कारक पर भी ध्यान केंद्रित कर सकता है।


-1

XGBoost कार्यान्वयन छोटी गाड़ी है। वी 082 पर GPU पर प्रशिक्षण के दौरान चुपचाप क्रैश हो गया । यह मेरे साथ ही v 0.90 पर हुआ , इसलिए इस मुद्दे को अब तक संबोधित नहीं किया गया है, और GitHub में प्रदान किए गए "फिक्स" ने मेरे लिए काम नहीं किया।

LGBM 2.3.1 बॉक्स के बाहर एक आकर्षण की तरह काम करता है, हालांकि इसे स्थापित करने के लिए थोड़ा अधिक प्रयास की आवश्यकता होती है। अभी तक जीपीयू पर कोई प्रशिक्षण जारी नहीं किया गया है।

XGBoost के " इतना तेज़ " होने के बारे में , आपको इन बेंचमार्क पर एक नज़र डालनी चाहिए ।


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