XGBoost (eXtreme Gradient Boosting) एक ओपन-सोर्स सॉफ्टवेयर लाइब्रेरी है जो C++, Java, Python, R, Julia, Perl, और Scala के लिए एक नियमितीकरण ग्रेडिएंट बूस्टिंग ढांचा प्रदान करती है। यह Linux, Microsoft Windows, और macOS पर संचालित होती है। परियोजना का उद्देश्य एक "स्केलेबल, पोर्टेबल और वितरित ग्रेडिएंट बूस्टिंग (GBM, GBRT, GBDT) लाइब्रेरी" प्रदान करना है, जो एक ही मशीन के साथ-साथ Apache Hadoop, Apache Spark, Apache Flink, और Dask जैसे वितरित प्रसंस्करण ढांचे पर चलती है। XGBoost ने 2010 के दशक के मध्य में महत्वपूर्ण लोकप्रियता हासिल की, विशेष रूप से Kaggle जैसे प्लेटफार्मों पर मशीन लर्निंग प्रतियोगिताओं में कई विजेता टीमों के लिए पसंदीदा एल्गोरिदम के रूप में।
लाइब्रेरी ग्रेडिएंट बूस्टिंग के सिद्धांत पर आधारित है, जो एक ensemble तकनीक है जो कई कमजोर भविष्यवाणी मॉडल, आमतौर पर निर्णय वृक्षों, को एक मजबूत मॉडल में जोड़ती है। XGBoost गति, स्केलेबिलिटी और नियमितीकरण में अनुकूलन के माध्यम से खुद को अलग करता है, जिससे यह वित्त से लेकर स्वास्थ्य देखभाल तक विभिन्न क्षेत्रों में वर्गीकरण, प्रतिगमन और रैंकिंग कार्यों के लिए एक बहुमुखी उपकरण बन जाता है।
इतिहास
XGBoost की उत्पत्ति Tianqi Chen के शोध परियोजना के रूप में हुई, जिसे टोरंटो विश्वविद्यालय में Distributed (Deep) Machine Learning Community (DMLC) समूह के हिस्से के रूप में विकसित किया गया था (हालांकि प्रारंभिक कार्य वाशिंगटन विश्वविद्यालय में हुआ था)। यह एक टर्मिनल एप्लिकेशन के रूप में शुरू हुआ जिसे libsvm कॉन्फ़िगरेशन फ़ाइल का उपयोग करके कॉन्फ़िगर किया गया था। परियोजना ने मशीन लर्निंग प्रतियोगिता हलकों में पहचान प्राप्त की, जब इसे Higgs Machine Learning Challenge के विजेता समाधान में उपयोग किया गया, जो CERN और अन्य संस्थानों द्वारा कण घटनाओं को वर्गीकृत करने के लिए आयोजित एक प्रतियोगिता थी। इस सफलता ने Python और R पैकेजों के तेजी से विकास का नेतृत्व किया, इसके बाद Java, Scala, Julia, Perl, और अन्य भाषाओं के लिए कार्यान्वयन किए गए, जिससे इसका उपयोगकर्ता आधार व्यापक हुआ और Kaggle समुदाय में इसकी लोकप्रियता में योगदान मिला।
XGBoost को जल्द ही अन्य पैकेजों के साथ एकीकृत किया गया ताकि अपनाना आसान हो सके। यह Python उपयोगकर्ताओं के लिए scikit-learn और R उपयोगकर्ताओं के लिए caret पैकेज के साथ उपलब्ध हो गया। Apache Spark, Apache Hadoop, और Apache Flink जैसे डेटा प्रवाह ढांचे के साथ एकीकरण अमूर्त Rabit और XGBoost4J इंटरफेस के माध्यम से प्राप्त किया गया। इसके अतिरिक्त, XGBoost FPGAs के लिए OpenCL पर उपलब्ध है। एक कुशल, स्केलेबल कार्यान्वयन Tianqi Chen और Carlos Guestrin द्वारा प्रकाशित किया गया था, जिसमें एल्गोरिदमिक और सिस्टम अनुकूलन का विवरण दिया गया था।
जबकि XGBoost अक्सर एकल निर्णय वृक्ष की तुलना में उच्च सटीकता प्राप्त करता है, यह निर्णय वृक्षों की आंतरिक व्याख्यात्मकता का त्याग करता है। एक वृक्ष द्वारा निर्णय लेने के लिए लिया गया मार्ग का अनुसरण करना आसान और आत्म-व्याख्यात्मक है, लेकिन सैकड़ों या हजारों वृक्षों के मार्गों का पता लगाना अधिक कठिन है, जिससे मॉडल स्पष्टीकरण अधिक जटिल हो जाता है।
विशेषताएँ
XGBoost में कई प्रमुख विशेषताएं शामिल हैं जो इसे अन्य ग्रेडिएंट बूस्टिंग एल्गोरिदम से अलग करती हैं:
- वृक्षों की स्मार्ट दंड, जो ओवरफिटिंग को कम करने के लिए नियमितीकरण लागू करती है।
- पत्ती नोड्स का आनुपातिक संकुचन, जो प्रत्येक वृक्ष के योगदान को स्केल करता है।
- न्यूटन बूस्टिंग, जो अनुकूलन के लिए द्वितीय-क्रम व्युत्पन्न का उपयोग करता है।
- वृक्षों के बीच सहसंबंध कम करने के लिए अतिरिक्त यादृच्छिकरण पैरामीटर।
- एकल, वितरित प्रणालियों पर कार्यान्वयन और बड़े डेटासेट के लिए आउट-ऑफ-कोर गणना।
- प्रशिक्षण के दौरान स्वचालित फीचर चयन।
- बड़े डेटा पर कुशल गणना के लिए सैद्धांतिक रूप से उचित भारित क्वांटाइल स्केचिंग।
- स्पार्सिटी जागरूकता के साथ समानांतर वृक्ष संरचना बूस्टिंग, लापता मानों को प्रभावी ढंग से संभालना।
- निर्णय वृक्ष प्रशिक्षण के लिए कुशल cacheable ब्लॉक संरचना, जो मेमोरी एक्सेस पैटर्न में सुधार करती है।
ये विशेषताएं विविध सेटिंग्स में उच्च प्रदर्शन और मजबूती के लिए XGBoost की प्रतिष्ठा में योगदान करती हैं।
एल्गोरिदम
XGBoost फ़ंक्शन स्पेस में न्यूटन-राफसन के रूप में काम करता है, मानक ग्रेडिएंट बूस्टिंग के विपरीत जो फ़ंक्शन स्पेस में ग्रेडिएंट डिसेंट के रूप में संचालित होता है। हानि फ़ंक्शन में द्वितीय-क्रम टेलर सन्निकटन का उपयोग किया जाता है, जो न्यूटन-राफसन विधि से संबंध स्थापित करता है। यह दृष्टिकोण एल्गोरिदम को वक्रता जानकारी पकड़ने की अनुमति देता है, जिससे तेजी से अभिसरण और अक्सर बेहतर सटीकता मिलती है।
सामान्य अनियमित XGBoost एल्गोरिदम हानि फ़ंक्शन को कम करने के लिए पुनरावृत्त रूप से वृक्ष जोड़ता है। प्रत्येक चरण में, एल्गोरिदम वर्तमान भविष्यवाणियों के संबंध में हानि के ग्रेडिएंट और हेसियन की गणना करता है, फिर इन मानों के लिए एक वृक्ष फिट करता है। वृक्ष संरचना को स्प्लिट उम्मीदवारों का मूल्यांकन करके सीखा जाता है जो हानि कमी को अधिकतम करते हैं, जटिलता को नियंत्रित करने वाले नियमितीकरण शर्तों के साथ।
स्पार्सिटी को एक डिफ़ॉल्ट दिशा तंत्र के माध्यम से संभाला जाता है, जहां प्रशिक्षण डेटा के आधार पर लापता मानों को इष्टतम शाखा में भेजा जाता है। समानांतर वृक्ष बूस्टिंग एक ब्लॉक संरचना का उपयोग करके कार्यान्वित की जाती है जो कुशल कॉलम-वार एक्सेस को सक्षम करती है, आउट-ऑफ-कोर गणना और वितरित प्रशिक्षण का समर्थन करती है।
पैरामीटर
XGBoost कई पैरामीटर उजागर करता है जो इसके व्यवहार और प्रदर्शन को प्रभावित करते हैं। मुख्य पैरामीटर शामिल हैं:
- लर्निंग रेट (जिसे "स्टेप साइज़" या "shrinking" भी कहा जाता है): 0 और 1 के बीच एक संख्या, डिफ़ॉल्ट 0.3, जो निर्धारित करती है कि एल्गोरिदम प्रत्येक पुनरावृत्ति से कितना सीखता है। कम मान अधिक वृक्षों की आवश्यकता होती है लेकिन सामान्यीकरण में सुधार कर सकते हैं।
- n_estimators: ensemble में बनाए जाने वाले वृक्षों की संख्या निर्धारित करता है। अधिक वृक्ष मॉडल जटिलता बढ़ाते हैं लेकिन बहुत अधिक होने पर ओवरफिटिंग का कारण बन सकते हैं।
- गामा (जिसे Lagrange multiplier या न्यूनतम हानि कमी पैरामीटर भी कहा जाता है): एक पत्ती नोड पर आगे स्प्लिट करने के लिए आवश्यक न्यूनतम हानि कमी की मात्रा को नियंत्रित करता है। डिफ़ॉल्ट 0 है।
- max_depth: दर्शाता है कि प्रशिक्षण के दौरान प्रत्येक वृक्ष कितनी गहराई तक बढ़ सकता है, डिफ़ॉल्ट 6 के साथ। गहरे वृक्ष अधिक जटिल पैटर्न पकड़ते हैं लेकिन ओवरफिटिंग का जोखिम उठाते हैं।
अन्य पैरामीटर में subsample, colsample_bytree, reg_alpha, और reg_lambda शामिल हैं, जो नियमितीकरण और सैंपलिंग पर अतिरिक्त नियंत्रण प्रदान करते हैं।
अनुप्रयोग और प्रभाव
XGBoost को उद्योग और शिक्षा में व्यापक रूप से अपनाया गया है। वित्त में, इसका उपयोग क्रेडिट स्कोरिंग, धोखाधड़ी का पता लगाने और जोखिम मॉडलिंग के लिए किया जाता है। स्वास्थ्य देखभाल में, यह रोग भविष्यवाणी और रोगी परिणाम विश्लेषण का समर्थन करता है। ई-कॉमर्स में, यह अनुशंसा प्रणाली और ग्राहक विचलन भविष्यवाणी को शक्ति देता है। प्रतियोगिताओं में इसका प्रदर्शन, जैसे कि Kaggle पर, ने इसे टेबुलर डेटा समस्याओं के लिए एक बेंचमार्क बना दिया है।
लाइब्रेरी का Machine learning ढांचे के साथ एकीकरण और वितरित कंप्यूटिंग के लिए समर्थन ने इसे बड़े पैमाने के अनुप्रयोगों में उपयोग करने में सक्षम बनाया है। इसे प्रबंधित मशीन लर्निंग सेवाओं के लिए अमेज़न वेब सर्विसेज और गूगल क्लाउड जैसे प्लेटफार्मों में शामिल किया गया है।
पुरस्कार और मान्यता
XGBoost को कई पुरस्कार मिले हैं, जिनमें 2016 में जॉन चैम्बर्स पुरस्कार, 2016 में हाई एनर्जी फिजिक्स मीट्स मशीन लर्निंग पुरस्कार (HEP meets ML), और KDD 2026 में "टेस्ट ऑफ टाइम पुरस्कार" शामिल हैं। ये मान्यताएं मशीन लर्निंग के लागू और सैद्धांतिक दोनों पहलुओं में इसके योगदान को उजागर करती हैं।
यह भी देखें
- मशीन लर्निंग सॉफ्टवेयर की तुलना
- TabPFN
- LightGBM
- CatBoost
संदर्भ
- Chen, T., & Guestrin, C. (2016). XGBoost: A Scalable Tree Boosting System. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.
- परियोजना दस्तावेज़ीकरण और स्रोत कोड आधिकारिक रिपॉजिटरी में उपलब्ध है।