मशीन लर्निंग एल्गोरिदम को बढ़ावा देने के लिए एक व्यापक गाइड



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

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

आर्टिफिशियल इंटेलिजेंस और मशीन लर्निंग के गहन ज्ञान प्राप्त करने के लिए, आप लाइव के लिए नामांकन कर सकते हैं 24/7 समर्थन और आजीवन पहुंच के साथ Edureka द्वारा।





यहां उन विषयों की सूची दी गई है, जिन्हें कवर किया जाएगा इस ब्लॉग में:

  1. क्यों बूस्टिंग का उपयोग किया जाता है?
  2. बूस्टिंग क्या है?
  3. एल्गोरिथ्म कैसे काम करता है बूस्टिंग?
  4. बूस्टिंग के प्रकार
  5. डेमो

बूस्टिंग का उपयोग क्यों किया जाता है?

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



  1. छवि में नुकीले कान हैं: बिल्ली

  2. छवि में बिल्ली के आकार की आंखें हैं: बिल्ली

  3. छवि में बड़े अंग हैं: डॉग



  4. छवि ने पंजे तेज कर दिए हैं: बिल्ली

  5. छवि में एक व्यापक मुंह संरचना है: डॉग

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

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

उपरोक्त उदाहरण में, हमने 5 कमजोर शिक्षार्थियों को परिभाषित किया है और इन नियमों के बहुमत (यानी 5 शिक्षार्थियों में से 3 एक बिल्ली के रूप में छवि की भविष्यवाणी करते हैं) हमें भविष्यवाणी देती है कि छवि एक बिल्ली है। इसलिए, हमारा अंतिम आउटपुट एक बिल्ली है।

तो यह हमें प्रश्न पर लाता है,

बूस्टिंग क्या है?

बूस्टिंग एक पहनावा सीखने की तकनीक है जो मॉडल की सटीकता को बढ़ाने के लिए कमजोर शिक्षार्थी को मजबूत शिक्षार्थियों में बदलने के लिए मशीन लर्निंग एल्गोरिदम का एक सेट का उपयोग करता है।

What-Is-Boosting-Boosting-Machine-Learning-Edureka

बूस्टिंग क्या है - बूस्टिंग मशीन सीखना - एडुर्का

जैसा कि मैंने उल्लेख किया है कि बूस्टिंग एक पहनावा सीखने की विधि है, लेकिन वास्तव में सीखने के लिए पहनावा क्या है?

मशीन लर्निंग में पहनावा क्या है?

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

लर्निंग मशीन क्या है - बूस्टिंग मशीन लर्निंग - एडुर्का

जावा वस्तुओं का सरणी बनाते हैं

नीचे मैंने बूस्टिंग और बैगिंग के बीच के अंतर पर भी चर्चा की है।

बैगिंग बनाम बूस्टिंग

पहनावा सीखना दो तरीकों से किया जा सकता है:

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

  2. समानांतर सेट , लोकप्रिय रूप में जाना जाता है बैगिंग , यहां कमजोर शिक्षार्थियों को प्रशिक्षण चरण के दौरान समानांतर रूप से उत्पादित किया जाता है। मॉडल का प्रदर्शन समानांतर रूप से बूटस्ट्रैप्ड डेटा सेट पर कई कमजोर शिक्षार्थियों को प्रशिक्षित करके बढ़ाया जा सकता है। बैगिंग का एक उदाहरण रैंडम फॉरेस्ट है कलन विधि।

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

एल्गोरिथ्म कैसे काम करता है बूस्टिंग?

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

कैसे बूस्टिंग एल्गोरिदम काम करता है - बूस्टिंग मशीन लर्निंग - एडुर्का

यहाँ एल्गोरिदम कैसे काम करता है:

स्टेप 1: आधार एल्गोरिथ्म डेटा को पढ़ता है और प्रत्येक नमूना अवलोकन के बराबर वजन प्रदान करता है।

चरण 2: आधार शिक्षार्थी द्वारा की गई गलत भविष्यवाणियों की पहचान की जाती है। अगले पुनरावृत्ति में, इन गलत भविष्यवाणियों पर उच्च भार के साथ इन झूठे पूर्वानुमानों को अगले आधार शिक्षार्थी को सौंपा जाता है।

चरण 3: चरण 2 को तब तक दोहराएं जब तक एल्गोरिदम आउटपुट को सही ढंग से वर्गीकृत नहीं कर सकता।

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

अब जब हम जानते हैं कि बूस्टिंग एल्गोरिदम कैसे काम करता है, तो आइए विभिन्न प्रकार की बूस्टिंग तकनीकों को समझें।

बूस्टिंग के प्रकार

तीन मुख्य तरीके हैं जिनके माध्यम से बढ़ावा दिया जा सकता है:

  1. अनुकूली बूस्टिंग या AdaBoost

  2. धीरे-धीरे बूस्टिंग

  3. XGBoost

मैं इनमें से प्रत्येक प्रकार के पीछे की मूल बातें पर चर्चा करूंगा।

अनुकूली बूस्टिंग

  • AdaBoost को कई कमजोर शिक्षार्थियों को एक एकल मजबूत शिक्षार्थी के रूप में मिलाकर कार्यान्वित किया जाता है।

  • AdaBoost में कमजोर शिक्षार्थी एक एकल इनपुट सुविधा को ध्यान में रखते हैं और एक सिंगल स्प्लिट डिसिजन ट्री तैयार करते हैं जिसे निर्णय स्टंप कहा जाता है। प्रत्येक निर्णय को समान रूप से तौला जाता है, जबकि पहला निर्णय स्टंप का होता है।

  • पहले निर्णय स्टंप से परिणामों का विश्लेषण किया जाता है और यदि किसी भी अवलोकन को गलत तरीके से वर्गीकृत किया जाता है, तो उन्हें उच्च भार सौंपा जाता है।

  • इसे पोस्ट करें, अधिक वजन के साथ टिप्पणियों को अधिक महत्वपूर्ण मानते हुए एक नया निर्णय स्टंप तैयार किया गया है।

  • यदि कोई अवलोकन गलत माना जाता है, तो उन्हें अधिक वजन दिया जाता है और यह प्रक्रिया तब तक जारी रहती है जब तक कि सभी अवलोकन सही कक्षा में नहीं आते।

  • Adaboost का उपयोग वर्गीकरण और प्रतिगमन-आधारित समस्याओं दोनों के लिए किया जा सकता है, हालांकि, इसका उपयोग आमतौर पर वर्गीकरण उद्देश्य के लिए किया जाता है।

धीरे-धीरे बूस्टिंग

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

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

यहां मुख्य विचार पिछले शिक्षार्थी की भविष्यवाणियों में त्रुटियों को दूर करना है। इस प्रकार के बूस्टिंग में तीन मुख्य घटक होते हैं:

  1. लॉस फंकशन जिसे अमलीजामा पहनाने की जरूरत है।

  2. कमजोर सीखने वाला पूर्वानुमानों की गणना और मजबूत शिक्षार्थियों के गठन के लिए।

  3. एक एडिटिव मॉडल कि नुकसान समारोह को नियमित करेगा।

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

XGBoost

XGBoost ग्रेडिएंट बूस्टिंग विधि का एक उन्नत संस्करण है, इसका शाब्दिक अर्थ है एक्सट्रीम ग्रेडिएंट बूस्टिंग। तियान्की चेन द्वारा विकसित XGBoost, डिस्ट्रीब्यूटेड मशीन लर्निंग कम्युनिटी (DMLC) की श्रेणी में आता है।

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

XGBoost - बूस्टिंग मशीन लर्निंग - एडुरका

XGBoost को कम्प्यूटेशनल गति और मॉडल दक्षता पर ध्यान केंद्रित करने के लिए डिज़ाइन किया गया है। XGBoost द्वारा प्रदान की जाने वाली मुख्य विशेषताएं हैं:

  • समानांतर रूप से निर्णय पेड़ बनाता है।

  • बड़े और जटिल मॉडल के मूल्यांकन के लिए वितरित कंप्यूटिंग विधियों को लागू करना।

  • विशाल डेटासेट का विश्लेषण करने के लिए आउट-ऑफ-कोर कम्प्यूटिंग का उपयोग करना।

  • संसाधनों का सबसे अच्छा उपयोग करने के लिए कैश ऑप्टिमाइज़ेशन को लागू करना।

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

पाइथन में बूस्टिंग मशीन सीखना

एक संक्षिप्त अस्वीकरण: मैं इस डेमो को चलाने के लिए पायथन का उपयोग कर रहा हूं, इसलिए यदि आप पायथन को नहीं जानते हैं, तो आप निम्नलिखित ब्लॉगों के माध्यम से जा सकते हैं:

  1. स्क्रैच से पायथन 3 कैसे सीखें - एक शुरुआती गाइड

अब आपके हाथों को गंदा करने और कोडिंग शुरू करने का समय है।

समस्या का विवरण: एक मशीनी डेटा सेट का अध्ययन करने और एक मशीन लर्निंग मॉडल का निर्माण करने के लिए जो अपनी विशेषताओं का विश्लेषण करके एक मशरूम को जहरीला या नहीं के रूप में वर्गीकृत कर सकता है।

डेटा सेट विवरण: यह डेटा सेट 23 प्रजातियों के ग्रील्ड मशरूम के अनुसार काल्पनिक नमूनों का विस्तृत विवरण प्रदान करता है। प्रत्येक प्रजाति को खाद्य मशरूम या गैर-खाद्य (जहरीला) के रूप में वर्गीकृत किया जाता है।

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

चरण 1: आवश्यक पैकेज आयात करें

sklearn.ensemble आयात से adaBoostClassifier से sklearn.preprocessing import LabelEncoder from sklearn.tree import DecisionTreeClassifier import pandas as pd # आयात train_estest_split function से sklearn.model_selection import train_test_split #Iplp #mpl #mpl #Mpl #

चरण 2: डेटा सेट आयात करें

# डेटा डेटासेट में लोड करें = pd.read_csv ('C: //Users//NeelTemp//Desktop//mushroomsdataset.csv')

चरण 3: डाटा प्रोसेसिंग

# कॉलम को डेटासेट में नाम दें। कोलम्बस = ['लक्ष्य', 'कैप-शेप', 'कैप-सरफेस', 'कैप-कलर', 'ब्रूज', 'गंध', 'गिल-अटैचमेंट', 'गिल-स्पेसिंग' ',' गिल-साइज ',' गिल-कलर ',' स्टाल-शेप ',' स्टाल-रूट ',' स्टैक-सतह-एवरेज रिंग ',' स्टाल-सतह-नीचे-रिंग ',' स्टाल-कलर -आब-अंगूठी ',' डंठल-रंग-नीचे-अंगूठी ',' घूंघट-प्रकार ',' घूंघट-रंग ',' अंगूठी-संख्या ',' अंगूठी-प्रकार ',' बीजाणु-प्रिंट-रंग ',' जनसंख्या ' डेटासेट में लेबल के लिए '' निवास स्थान '] कॉलम: डेटासेट [लेबल] = लेबलइन्कोडर () फिट (डेटासेट (लेबल))। रूपांतरण (डेटासेट [लेबल]) # डेटा सेट प्रिंट (डेटासेट) के बारे में जानकारी। )) Int64Index: 4१२४ प्रविष्टियाँ, ६० 6४ से ६ columns६ डेटा कॉलम (कुल २३ कॉलम): लक्ष्य n१२४ नॉन-इनल इंट ३२ कैप-शेप 4१२४ नॉन-न्यूल इंट ३२ कैप-सरफेस 4१२४ नॉन-नॉट इंट ३२ कैप-कलर 12१२४ नॉन-इन्टल इंट ३२ ब्रूज 8124 गैर- null int32 गंध 8124 गैर-नल int32 गिल-लगाव 8124 गैर-नल int32 गिल-अंतर 8124 गैर-नल int32 गिल-आकार 8124 गैर-शून्य int32 गिल-रंग 8124 गैर-अशक्त int32 डंठल-आकार 8124 गैर-शून्य int32 डंठल-जड़ 8124 गैर-अशक्त int32 डंठल-सतह-ऊपर की अंगूठी 8124 गैर-अशक्त इंट32, डंठल-सतह-नीचे-अंगूठी -8124 गैर-अशक्त int32, रंग-से-ऊपर की अंगूठी -8124 गैर-अशक्त int32, रंग-नीचे-अंगूठी-8124 गैर-अशक्त int32 घूंघट- टाइप करें type१२४ नॉन-नेल इंट ३ घूंघट-रंग non१२४ नॉन-इनल ३२ रिंग-नंबर n१२४ नॉन-इनल ३२ रिंग-टाइप 4१२४ नॉन-इनल ३२ स्पोर-प्रिंट-कलर 4१२४ नॉन-इनल ३२ आबादी 12१२४ नॉन-इनल -३२ हसैट null int32 dtypes: int32 (23) मेमोरी उपयोग: 793.4 KB

चरण 4: डेटा विभाजन

X = डेटासेट.drop (['लक्ष्य'], अक्ष = 1) Y = डेटासेट ['लक्ष्य'] X_train, X_test, Y_train, Y_test = train_test_split (X, Y, test_size = 0.3)

चरण 5: मॉडल बनाएँ

मॉडल = DecisionTreeClassifier (मानदंड = 'एन्ट्रॉपी', मैक्स_डेप्थ = 1) AdaBoost = AdaBoostClassifier (base_estimator = मॉडल, n_estimators = 400, Learning_rate = 1)

उपरोक्त कोड स्निपेट में, हमने AdaBoost एल्गोरिथ्म को लागू किया है। Takes AdaBoostClassifier 'फ़ंक्शन तीन महत्वपूर्ण पैरामीटर लेता है:

  • base_estimator: आधार अनुमानक (कमजोर सीखने वाला) डिफ़ॉल्ट रूप से निर्णय पेड़ है
  • n_estimator: यह फ़ील्ड उपयोग किए जाने वाले आधार शिक्षार्थियों की संख्या को निर्दिष्ट करती है।
  • Learning_rate: यह फ़ील्ड सीखने की दर को निर्दिष्ट करता है, जिसे हमने डिफ़ॉल्ट मान पर सेट किया है, अर्थात 1।
# प्रशिक्षण डेटा बूस्टमॉडल के साथ मॉडल = AdaBoost.fit (X_train, Y_train)

चरण 6: मॉडल मूल्यांकन

# मॉडल की सटीकता को बढ़ाएँ y_pred = boostmodel.predict (X_test) भविष्यवाणियाँ = metrics.accuracy_score (Y_test, y_pred) # प्रतिशत प्रिंट में सटीकता की पुष्टि करते हुए ('सटीकता:', पूर्वानुमान * 100, '%') सटीकता को स्पष्ट करें। है: 100.0%

हमें 100% सटीकता प्राप्त हुई है, जो एकदम सही है!

तो इसके साथ, हम इस बूस्टिंग मशीन लर्निंग ब्लॉग के अंत में आते हैं। यदि आप मशीन लर्निंग के बारे में अधिक जानना चाहते हैं, तो आप इन ब्लॉगों को पढ़ सकते हैं:

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