मुख्य सामग्री पर जाएं

एंसेंबल मॉडलिंग ट्यूटोरियल: एंसेंबल लर्निंग तकनीकों का अन्वेषण करें

इस ट्यूटोरियल में, आप जानेंगे कि एंसेंबल क्या है और यह किसी मशीन लर्निंग मॉडल के प्रदर्शन में कैसे सुधार करता है।
अपडेट किया गया 25 सित॰ 2026  · 14 मि॰ पढ़ें

AI के साथ खोजें

ChatGPTClaudePerplexity

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

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

हमारा SuperLearner के साथ R में एंसेंबल लर्निंग ट्यूटोरियल बताता है कि R में SuperLearner पैकेज का उपयोग करके एंसेंबल लर्निंग दृष्टिकोण के आधार पर अपने मशीन लर्निंग परिणामों को कैसे बेहतर किया जाए।

मशीन लर्निंग में एंसेंबल मॉडल

मान लीजिए एक म्यूजिक मैनेजर अंतरराष्ट्रीय प्रतियोगिता में हिस्सा ले रहा है। उसके पास विभिन्न विशेषज्ञता वाले संगीतकारों की एक विस्तृत श्रृंखला तक पहुंच है:

  • शास्त्रीय संगीतकार जो पारंपरिक रचनाएँ बना सकते हैं।
  • इलेक्ट्रॉनिक संगीतकार जो इलेक्ट्रॉनिक वाद्ययंत्रों के उपयोग में विशेषज्ञ हैं।
  • जैज़ संगीतकार जिनमें उत्कृष्ट इम्प्रोवाइजेशन की क्षमता है।
  • सोलो कलाकार जो जटिल सोलो पेश कर सकते हैं और अपनी तकनीकी क्षमताओं को उभार सकते हैं।

संगीतिक विशेषज्ञता और पृष्ठभूमि के इस व्यापक स्पेक्ट्रम को देखते हुए, मैनेजर इन सबको मिलाकर एक अनोखा और यादगार प्रदर्शन तैयार कर सकता है।

एंसेंबल मॉडलों को संगीतकारों के एक ऑर्केस्ट्रा की तरह समझें, जहाँ हर व्यक्ति पियानो, ट्रम्पेट, ड्रम आदि जैसे किसी खास वाद्य में विशेषज्ञ होता है। इन कौशलों का संयोजन एक मधुर संगति बनाता है।

एंसेंबल लर्निंग भी इसी तर्क का उपयोग करती है:

यह कई एल्गोरिदमों को मिलाकर एकल मॉडल की तुलना में बेहतर प्रेडिक्टिव प्रदर्शन प्राप्त करती है। विचार करने के लिए मॉडलों की कोई पूर्व-परिभाषित संख्या नहीं होती, और कुछ व्यावसायिक लक्ष्यों के लिए अन्य की तुलना में अधिक मॉडलों की आवश्यकता हो सकती है।

मॉडल त्रुटि और एंसेंबल से इसे कम करना

किसी भी मशीन मॉडल से उत्पन्न त्रुटि को गणितीय रूप से तीन घटकों में बांटा जा सकता है:

बायस + वैरिएंस + अपरिवर्तनीय त्रुटि

यह वर्तमान संदर्भ में क्यों महत्वपूर्ण है? किसी एंसेंबल मॉडल के पीछे क्या चलता है, यह समझने के लिए पहले यह जानना जरूरी है कि मॉडल में त्रुटि किन कारणों से आती है।

आइए इन त्रुटियों पर नज़र डालें:

बायस त्रुटि

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

वैरिएंस

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

Bias/Variance Charts

आमतौर पर, जैसे-जैसे आप अपने मॉडल की जटिलता बढ़ाते हैं, मॉडल में बायस कम होने से त्रुटि में कमी दिखाई देती है। हालाँकि, यह केवल एक खास बिंदु तक होता है। जैसे-जैसे आप अपने मॉडल को और जटिल बनाते हैं, आप मॉडल को ओवर-फिट कर बैठते हैं और आपका मॉडल उच्च वैरिएंस से ग्रस्त होने लगता है।

अब जब आप एंसेंबल लर्निंग की मूल बातें जान चुके हैं, तो आइए विभिन्न एंसेंबल लर्निंग तकनीकों पर नज़र डालते हैं:

एंसेंबल विधियों के प्रकार

एंसेंबल विधियों के अलग-अलग प्रकार हैं, और प्रत्येक अपने साथ कुछ फायदे और कुछ सीमाएँ लाता है। यह खंड उन पहलुओं को कवर करता है ताकि आप अपने उपयोग मामलों के लिए सही विकल्प चुन सकें।

प्रत्येक विधि में जाने से पहले, बेहतर समझ के लिए यह समझते हैं कि मेटा और बेस लर्नर क्या होते हैं।

  • बेस लर्नर एंसेंबल लर्निंग आर्किटेक्चर का पहला स्तर होते हैं, और प्रत्येक को अलग-अलग भविष्यवाणियाँ करने के लिए प्रशिक्षित किया जाता है।
  • मेटा लर्नर इसके विपरीत दूसरे स्तर पर होते हैं, और इन्हें बेस लर्नरों के आउटपुट पर प्रशिक्षित किया जाता है।

बैगिंग

बैगिंग को बूटस्ट्रैप एग्रीगेशन भी कहा जाता है। यह तकनीक रैंडम फॉरेस्ट के समान है, लेकिन यह सभी प्रेडिक्टर्स का उपयोग करती है, जबकि रैंडम फॉरेस्ट प्रत्येक ट्री में केवल प्रेडिक्टर्स के एक सबसेट का उपयोग करता है।

बैगिंग में, प्रशिक्षण सेट से डेटा का एक रैंडम सैंपल रिप्लेसमेंट के साथ चुना जाता है, जो किसी सेट में सैंपल इंस्टैंसेज़ के डुप्लिकेशन को सक्षम करता है। नीचे बैगिंग में शामिल मुख्य चरण दिए गए हैं:

  • कई बूटस्ट्रैप री-सैंपल का निर्माण।
  • प्रत्येक री-सैंपल पर एक एल्गोरिदम चलाकर भविष्यवाणियाँ करना।
  • भविष्यवाणियों को औसत लेकर या (क्लासिफिकेशन के लिए) बहुमत मत लेकर संयोजित करना।

Bagging process diagram

क्लासिफिकेशन या रिग्रेशन कार्यों में बैगिंग के कई प्रमुख फायदे और सीमाएँ हैं।

फायदे

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

सीमाएँ

  • कई मॉडलों के उपयोग के कारण बैगिंग कम्प्यूटेशनल रूप से महंगी होती है।
  • भविष्यवाणियों के औसत लेने से अंतिम परिणाम की व्याख्या करना कठिन हो जाता है।

बूस्टिंग

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

Boosting process diagram

फायदे

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

सीमाएँ

  • बूस्टिंग का अनुक्रमिक दृष्टिकोण अगले मॉडलों को पूर्ववर्ती की गलतियाँ सुधारने पर मजबूर करता है। इससे समग्र मॉडल आउटलायर के प्रति संवेदनशील हो जाता है।
  • इसी अनुक्रमिक पहलू के कारण बूस्टिंग स्केलेबल नहीं होता।

स्टैकिंग

स्टैकिंग बूस्टिंग के काफी समान है। बेस लर्नरों की भविष्यवाणियों को एक साथ स्टैक किया जाता है और उन्हें मेटा लर्नर को प्रशिक्षित करने के इनपुट के रूप में उपयोग किया जाता है ताकि अधिक मजबूत भविष्यवाणियाँ प्राप्त हों। फिर मेटा लर्नर का उपयोग अंतिम भविष्यवाणियाँ करने के लिए किया जाता है। बैगिंग और बूस्टिंग आमतौर पर समरूप (होमोजीनियस) बेस लर्नर का उपयोग करते हैं, जबकि स्टैकिंग विषम (हेटरोजीनियस) लर्नरों को शामिल करने की प्रवृत्ति रखता है।

Stacking process diagram

फायदे

  • यह क्लासिफिकेशन और रिग्रेशन दोनों कार्यों के लिए कई उच्च-प्रदर्शन वाले मॉडलों की ताकत का लाभ उठाता है।
  • अन्य एंसेंबल मॉडलों की तरह, स्टैकिंग अकेले उपयोग किए गए व्यक्तिगत मॉडलों की तुलना में अधिक सटीक मॉडल बनाने में मदद करता है।

सीमाएँ

  • जटिल बेसिक मॉडलों का उपयोग करने से ओवरफिटिंग का जोखिम बढ़ सकता है।
  • मॉडल के विभिन्न स्तरों का प्रशिक्षण स्टैकिंग आर्किटेक्चर को लागू करना जटिल बना सकता है।

ब्लेंडिंग

ब्लेंडिंग स्टैकिंग के समान है। ब्लेंडिंग में, डेटा की संरचना प्रशिक्षण, होल्ड-आउट और टेस्ट डेटा से बनी होती है। मेटा लर्नरों को प्रशिक्षण डेटा पर प्रशिक्षित किया जाता है। फिर उनकी भविष्यवाणियों को होल्ड-आउट डेटा के साथ मिलाकर अंतिम मेटा मॉडल बनाया जाता है, जो टेस्ट डेटा का उपयोग कर अंतिम भविष्यवाणियाँ करता है।

फायदे

  • स्टैकिंग और कई अन्य एंसेंबल विधियों की तरह, ब्लेंडिंग कई मामलों में अंतिम मॉडल के प्रदर्शन को बढ़ा सकती है।
  • इस तकनीक का उपयोग कई प्रतियोगिताएँ जीतने में सफल रहा है।

सीमाएँ

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

वोटिंग

वोटिंग में, कई मॉडलों को स्वतंत्र रूप से प्रशिक्षित किया जाता है, और उनकी भविष्यवाणियों को हार्ड वोटिंग, सॉफ्ट वोटिंग, या वेटेड वोटिंग में से किसी एक का उपयोग करके अंतिम भविष्यवाणी बनाने के लिए मिलाया जाता है:

  • हार्ड वोटिंग में, अंतिम भविष्यवाणी सभी मॉडलों की सबसे सामान्य भविष्यवाणी होती है।
  • सॉफ्ट वोटिंग में, प्रत्येक मॉडल बाइनरी भविष्यवाणी के बजाय एक प्रायिकता वितरण उत्पन्न करता है। फिर, सबसे अधिक प्रायिकता वाली कक्षा को भविष्यवाणी माना जाता है।
  • अंत में, वेटेड वोटिंग में यह मान लिया जाता है कि कुछ मॉडलों की दक्षता अन्य की तुलना में अधिक है, और भविष्यवाणियाँ करते समय उन मॉडलों को अधिक योगदान सौंपा जाता है।

फायदे

  • वोटिंग आर्किटेक्चर, स्टैकिंग और ब्लेंडिंग की तुलना में लागू करने में सरल है। साथ ही, इसे जटिल फाइन-ट्यूनिंग की जरूरत नहीं होती।
  • वोटिंग में कई बेस लर्नरों का उपयोग इसे व्यक्तिगत मॉडलों के प्रभाव से कम प्रभावित बनाता है, जिससे अधिक स्थिर और विश्वसनीय भविष्यवाणियाँ मिलती हैं।

सीमाएँ

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

कैस्केडिंग

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

फायदे

  • अगला मॉडल पिछले मॉडल के आउटपुट में विशेषज्ञ हो जाता है, जिससे डेटा में शोर कम होता है।
  • ओवरफिटिंग के प्रति अधिक मजबूत और वास्तविक-जीवन डेटा पर अच्छा प्रदर्शन कर सकता है।

सीमाएँ

  • कैस्केडिंग को लागू करना जटिल हो सकता है क्योंकि इसमें क्रम में प्रत्येक मॉडल को प्रशिक्षित करना शामिल है।
  • इष्टतम कैस्केडिंग आर्किटेक्चर प्राप्त करने के लिए बहुत सारे प्रयोग और फाइन-ट्यूनिंग की आवश्यकता हो सकती है।

एंसेंबल एल्गोरिदम का अवलोकन

पिछले खंडों में एंसेंबल मॉडलों के विभिन्न प्रकारों को कवर किया गया। अब, कुछ लोकप्रिय मॉडलों का संक्षिप्त अवलोकन करते हैं।

रैंडम फॉरेस्ट

रैंडम फॉरेस्ट एक आमतौर पर उपयोग होने वाला मॉडल है जो क्लासिफिकेशन और रिग्रेशन दोनों समस्याएँ हल कर सकता है। रैंडम फॉरेस्ट कई डिसीजन ट्री से बना होता है जिन्हें बैगिंग का उपयोग करके प्रशिक्षित किया जाता है। इसका परिणाम व्यक्तिगत ट्री की भविष्यवाणियों का औसत लेकर तय किया जाता है।

नोड साइज, ट्री की संख्या, और सैंपल की गई फीचर्स की संख्या—ये तीन मुख्य हाइपरपैरामीटर हैं जिन्हें रैंडम फॉरेस्ट को प्रशिक्षित करने से पहले सेट करना होता है।

रैंडम फॉरेस्ट में रैंडमनेस क्या है?

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

XGBoost

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

यह बड़े पैमाने के डेटा सेट को प्रोसेस करने के लिए उपयुक्त है, और Hadoop, MPI (Message Passing Inference), और SGI (Sun Grid Engine) जैसे प्रमुख डिस्ट्रीब्यूटेड एनवायरनमेंट्स के साथ संगत है। आप हमारे XGBoost ट्यूटोरियल में और जान सकते हैं।

AdaBoost

एडाप्टिव बूस्टिंग, या AdaBoost, बाइनरी क्लासिफिकेशन के लिए सफल बूस्टिंग एल्गोरिदम में से एक शुरुआती एंसेंबल बूस्टिंग क्लासिफायर है। यह एडाप्टिव है क्योंकि वेट्स हर इंस्टेंस को फिर से असाइन किए जाते हैं, और गलत वर्गीकृत इंस्टेंस को अधिक वेट दिया जाता है। हमारे अलग ट्यूटोरियल में Python में AdaBoost क्लासिफिकेशन के बारे में अधिक पढ़ें।

एंसेंबल मॉडलों का चरण-दर-चरण इम्प्लीमेंटेशन

अब जब आप एंसेंबल मॉडलिंग की मुख्य अवधारणा और कुछ मॉडलों का कार्य-प्रणाली समझ चुके हैं, तो यह खंड Python का उपयोग करते हुए तकनीकी इम्प्लीमेंटेशन पर केंद्रित होगा।

पर्यावरण सेटअप

शुरू करने के लिए, आपके कंप्यूटर पर Python इंस्टॉल होना चाहिए, साथ ही निम्नलिखित लाइब्रेरीज़ भी:

  • pandas, डेटा फ्रेम लोड करने के लिए।
  • Scikit-learn, मौजूदा मशीन लर्निंग एल्गोरिदम का उपयोग करने के लिए।
  • Seaborn और matplotlib, विज़ुअलाइज़ेशन के लिए।

आप इन लाइब्रेरीज़ को Python पैकेज मैनेजर pip का उपयोग करके इस प्रकार इंस्टॉल कर सकते हैं:

pip install scikit-learn
pip install pandas
pip install matplotlib seaborn

उपयोग-मामले को बेहतर ढंग से दर्शाने के लिए, हम DataLab पर उपलब्ध Loan Data का उपयोग करेंगे। इस ट्यूटोरियल का कोड भी DataLab में इस वर्कबुक में उपलब्ध है; आप अपनी खुद की वर्कबुक कॉपी बना सकते हैं और अपने ब्राउज़र में ही कोड को एडिट और रन कर सकते हैं, अपने कंप्यूटर पर कुछ भी इंस्टॉल करने की आवश्यकता नहीं है।

डेटा को समझना

इस डेटा सेट में 9,500 लोन हैं, जिनमें लोन की संरचना, उधारकर्ता की जानकारी, और लोन पूर्ण रूप से चुकाया गया या नहीं, इसका विवरण not.fully.paid कॉलम से मिलता है। पहले पाँच ऑब्ज़र्वेशन नीचे दिखाए गए हैं:

import pandas as pd
loan_data = pd.read_csv("loan_data.csv")
loan_data.head()

pandas dataset gif

info() फ़ंक्शन का उपयोग करने से डेटा के बारे में निम्नलिखित प्रासंगिक जानकारी मिलती है:

  • 9,578 पंक्तियाँ (0 से 9577 तक), और 14 कॉलम, जो संख्यात्मक प्रकार के हैं, सिवाय purpose के, जो object है और लोन के उद्देश्य का टेक्स्टुअल विवरण देता है।
  • हर कॉलम के लिए non-null टैग का मतलब है कि किसी भी कॉलम में कोई मिसिंग जानकारी नहीं है।
loan_data.info()

Information about the data

हम एक असंतुलित डेटा परिदृश्य देखते हैं, जहाँ श्रेणी 0 (8045 ऑब्ज़र्वेशन) की तुलना में श्रेणी 1 (सिर्फ 1533 ऑब्ज़र्वेशन) बहुत कम है।

print(loan_data['not.fully.paid'].value_counts())
loan_data['not.fully.paid'].value_counts().plot(kind='barh')

Loan data target distribution

ऐसे असंतुलित डेटा का उपयोग कर मॉडल प्रशिक्षण करना समग्र प्रदर्शन को प्रभावित करता है।

इस समस्या का एक समाधान अंडरसैंपलिंग दृष्टिकोण अपनाना है, यानी हम बहुसंख्यक (श्रेणी 0) के ऑब्ज़र्वेशनों की संख्या कम करते हैं। इस परिदृश्य में, श्रेणी 0 के ऑब्ज़र्वेशन उतने ही होंगे जितने श्रेणी 1 के हैं, और प्रक्रिया इस प्रकार है:

  • पहले श्रेणी 1 की संख्या प्राप्त करें।

  • श्रेणी 0 से N रैंडम ऑब्ज़र्वेशन चुनें, जहाँ N श्रेणी 1 के डेटा फ्रेम का आकार है।

  • पिछले दो डेटा फ्रेम को जोड़ दें।

loan_data_class_1 = loan_data[loan_data['not.fully.paid'] == 1]
number_class_1 = len(loan_data_class_1)
loan_data_class_0 = loan_data[loan_data['not.fully.paid'] == 0].sample(number_class_1)

final_loan_data = pd.concat([loan_data_class_1,
                         	loan_data_class_0])

print(final_loan_data.shape)

Diving Deep with Imbalanced Data ट्यूटोरियल असंतुलित डेटा सेट से निपटने की तकनीकों को सीखने के लिए और संसाधन प्रदान करता है।

अंडरसैंपलिंग के बाद हमें मिलता है:

  • कुल 3066 ऑब्ज़र्वेशन और 14 कॉलम।

और अंतिम संतुलित वितरण नीचे दिखाया गया है।

Loan data target distribution after undersampling

प्रशिक्षण के लिए डेटा तैयार करें

डेटा सेट को देखते हुए, हम नोटिस करते हैं कि सभी फीचर्स एक ही स्केल पर नहीं हैं, और KNN जैसे कुछ मशीन लर्निंग मॉडल ऐसे स्केलिंग के प्रति संवेदनशील होते हैं। इस समस्या का समाधान MinMaxScaler मॉड्यूल का उपयोग करके फीचर्स की रेंज को एक ही स्केल पर सामान्यीकृत करके किया जा सकता है। इस मामले में, 0 और 1 के बीच।

सादगी के लिए हम purpose कॉलम को भी हटा देंगे क्योंकि इसके लिए अतिरिक्त प्रीप्रोसेसिंग की आवश्यकता है।

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler(feature_range=(0, 1))

# Remove unwanted 'purpose' column and get the data
final_loan_data.drop('purpose', axis=1, inplace=True)
X = final_loan_data.drop('not.fully.paid', axis=1)

normalized_X = scaler.fit_transform(X)

किसी भी प्रेडिक्टिव कार्य की तरह, हमें डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करने की जरूरत होती है। इस मामले में, हम 77% प्रशिक्षण और शेष 33% परीक्षण के लिए उपयोग करेंगे।

  • रिज़ल्ट्स की पुनरुत्पादकता सुनिश्चित करने के लिए रैंडम स्टेट एट्रिब्यूट को एक रैंडम मान (हमारे मामले में 2023) से इनिशियलाइज़ किया गया है।

Stratify का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि y टार्गेट वैल्यू प्रशिक्षण और परीक्षण दोनों डेटा में समान रूप से वितरित हो।

from sklearn.model_selection import train_test_split

y = final_loan_data['not.fully.paid']
r_state = 2023
t_size = 0.33

X_train, X_test, y_train, y_test = train_test_split(normalized_X, y,
                                                	test_size=t_size,
                                                	random_state=r_state,
                                                	stratify=y)

सभी मॉडल प्रशिक्षण डेटा पर ट्रेन, परीक्षण डेटा पर प्रेडिक्ट, और मॉडलों के प्रदर्शन का मूल्यांकन—इस क्रम का पालन करेंगे।

बैगिंग मॉडल

इस खंड में बैगिंग मॉडल के रूप में रैंडम फॉरेस्ट का उपयोग किया गया है। सादगी के लिए हम डिफ़ॉल्ट पैरामीटर उपयोग करेंगे।

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score

# Define the model
random_forest_model = RandomForestClassifier()
# Fit the random search object to the data
random_forest_model.fit(X_train, y_train)

मॉडल को प्रशिक्षित करने के बाद, प्रदर्शन को accuracy_score फ़ंक्शन का उपयोग करके इस प्रकार निकाला जाता है:

# Make predictions
y_pred = random_forest_model.predict(X_test)

# Get the performance
accuracy = accuracy_score(y_test, y_pred)

print("Accuracy:", accuracy) 

उपरोक्त print स्टेटमेंट 0.6156 जनरेट करता है, जो 61.56% है।

अब आइए इस स्कोर की तुलना ब्लेंडिंग एग्रीगेशन दृष्टिकोण के प्रदर्शन से करें।

ब्लेंडिंग मॉडल

ब्लेंडिंग के लिए, हम दो बेस मॉडल का उपयोग करेंगे: एक डिसीजन ट्री और एक K-Nearest Neighbors क्लासिफायर। अंतिम भविष्यवाणियाँ करने के लिए एक अंतिम रिग्रेशन मॉडल उपयोग किया जाएगा।

from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.linear_model import LogisticRegression

मूल प्रशिक्षण डेटा को एक नए प्रशिक्षण डेटा सेट और एक वैलिडेशन डेटा सेट में विभाजित किया जाता है। बेस मॉडल प्रशिक्षण डेटा पर प्रशिक्षित किए जाते हैं।

X_train, X_val, y_train, y_val = train_test_split(
                                            	X_train, y_train,
                                            	test_size=t_size,
                                            	random_state=r_state)

इसके बाद दो डेटा फ्रेम बेस मॉडलों की भविष्यवाणियों से बनाए जाते हैं:

  • पहला डेटा फ्रेम: वैलिडेशन डेटा पर भविष्यवाणियाँ, जिन्हें मूल वैलिडेशन डेटा के साथ जोड़ दिया जाता है।
  • दूसरा डेटा फ्रेम: टेस्ट डेटा पर भविष्यवाणियाँ, जिन्हें मूल टेस्ट डेटा के साथ जोड़ दिया जाता है।
# Decision Tree Model
dt_model = DecisionTreeClassifier()
dt_model.fit(X_train, y_train)
dt_model_pred_val = dt_model.predict(X_val)
dt_model_pred_test= dt_model.predict(X_test)

dt_model_pred_val = pd.DataFrame(dt_model_pred_val)
dt_model_pred_test = pd.DataFrame(dt_model_pred_test)

# KNN Model
knn_model = KNeighborsClassifier()
knn_model.fit(X_train,y_train)
knn_model_pred_val = knn_model.predict(X_val)
knn_model_pred_test = knn_model.predict(X_test)

knn_model_pred_val = pd.DataFrame(knn_model_pred_val)
knn_model_pred_test = pd.DataFrame(knn_model_pred_test)

अंतिम लॉजिस्टिक रिग्रेशन मॉडल को कंसैटिनेटेड वैलिडेशन डेटा का उपयोग करके बनाया जाता है, और कंसैटिनेटेड टेस्ट डेटा का उपयोग करके इसका मूल्यांकन किया जाता है।

x_val = pd.DataFrame(X_val)
x_test = pd.DataFrame(X_test)

df_val_lr = pd.concat([x_val, knn_model_pred_val,
                    	dt_model_pred_val], axis=1)

df_test_lr = pd.concat([x_test, dt_model_pred_test,
                     	knn_model_pred_test],axis=1)

# Logistic Regression Model
lr_model = LogisticRegression()

lr_model.fit(df_val_lr,y_val)
lr_model.score(df_test_lr,y_test)

.score() फ़ंक्शन का उपयोग डिफ़ॉल्ट रूप से एक्युरेसी स्कोर की गणना करता है और इसे वास्तविक भविष्यवाणियों की आवश्यकता नहीं होती।

प्रदर्शन परिणाम 0.6383 है, जो 63.83% है और प्रारंभिक रैंडम फॉरेस्ट से लगभग 2% अधिक है; इसलिए ब्लेंडिंग मॉडल सर्वश्रेष्ठ प्रदर्शन प्रदान करता है।

हमारे Ensemble Methods in Python और Machine Learning with Tree-Based Models in R कोर्स क्रमशः Python और R में एंसेंबल क्लासिफायर विधियों की दुनिया में गहराई से जाने के लिए आपके मशीन लर्निंग सफर का एक बढ़िया अगला कदम हो सकते हैं।

निष्कर्ष

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

एंसेंबल मॉडल बनाते समय, बेहतर व्यावसायिक अंतर्दृष्टि के लिए उनके गुण-दोषों से अवगत होना महत्वपूर्ण है।

FAQs

होमोजीनियस और हेटरोजीनियस लर्नर में क्या अंतर है?

होमोजीनियस लर्नर वे होते हैं जिनके एल्गोरिदम और हाइपरपैरामीटर का प्रकार समान होता है। रैंडम फॉरेस्ट को होमोजीनियस लर्नरों के एंसेंबल के रूप में माना जा सकता है।

इसके विपरीत, हेटरोजीनियस लर्नरों के एल्गोरिदम और हाइपरपैरामीटर अलग-अलग होते हैं। रैंडम फॉरेस्ट, न्यूरल नेटवर्क और KNN किसी एंसेंबल मॉडल के हेटरोजीनियस लर्नर हो सकते हैं।

एंसेंबल मॉडलों के एकल मॉडलों पर क्या फायदे हैं?

एंसेंबल मॉडल का उपयोग एकल मॉडल की तुलना में बेहतर भविष्यवाणियाँ करा सकता है।

एंसेंबलिंग मॉडलों की क्या सीमा है?

एंसेंबल मॉडल व्याख्यात्मकता की कमी से ग्रस्त हो सकते हैं, यानी एंसेंबल मॉडल द्वारा सीखी गई जानकारी अंतिम उपयोगकर्ताओं के लिए समझ में नहीं आती।

आपको कब एंसेंबल मॉडल का उपयोग करने से बचना चाहिए?

निम्न परिस्थितियों में लेकिन इन्हीं तक सीमित नहीं: उच्च व्याख्यात्मकता की आवश्यकता, सीमित डेटा, रियल-टाइम बाधा, और उच्च कम्प्यूटेशन लागत—एंसेंबल मॉडलों का उपयोग करने से बचना चाहिए।

मशीन लर्निंग में एंसेंबल विधियों के विभिन्न प्रकार क्या हैं?

बैगिंग, बूस्टिंग, स्टैकिंग, वोटिंग, ब्लेंडिंग और कैस्केडिंग मशीन लर्निंग में एंसेंबल विधियों के मुख्य प्रकार हैं।

विषय
Python
मशीन लर्निंग

Python और मशीन लर्निंग के बारे में और जानें

कोर्स

Python में Machine Learning के लिए Preprocessing

4 घंटा
68.8K
मशीन लर्निंग के लिए अपने डेटा को साफ़ और तैयार करना सीखें!
विवरण देखेंRight Arrow
पाठ्यक्रम शुरू करें

कोर्स

Python में Machine Learning के साथ CTR प्रेडिक्शन

4 घंटा
3.9K
विज्ञापनों पर क्लिक-थ्रू दरों का अनुमान लगाना और Python में बुनियादी मशीन लर्निंग मॉडल लागू करना सीखें, ताकि आप अपने विज्ञापनों को बेहतर अनुकूलित कर सकें।
और देखेंRight Arrow