5

में समेकन सीखने और इसके कार्यान्वयन को समझना ensemble learning एक विशेष वर्गीकृत के कई उदाहरणों का एक उदाहरण है, उदाहरण के लिए निर्णय ट्री क्लासिफायर; या यह न्यूरल नेटवर्क, निर्णय ट्री, एसवीएम और आगे के कुछ क्लासिफायरों का मिश्रण है?मैटलैब

मैंने विवरण Bagging पर एक समेकित शिक्षार्थी पर देखा है। इसमें कहा गया है कि:

जीतना ओर जाता है करने के लिए "अस्थिर प्रक्रियाओं के लिए सुधार" (Breiman, 1996), जिसमें शामिल, उदाहरण के लिए, तंत्रिका जाल, वर्गीकरण और प्रतिगमन पेड़, और रेखीय प्रतीपगमन में सबसेट चयन (Breiman, 1994) ।

मैं इस विवरण के बारे में थोड़ा उलझन में हूं। मैंने एंबेबल एल्गोरिदम के MATLAB के implementation में भी देखा है। उदाहरण के इस एक के लिए:

load fisheriris 
ens = fitensemble(meas,species,'AdaBoostM2',100,'Tree') 

meas और speciesfitensemble समारोह के आदानों कर रहे हैं। यहां इस उदाहरण में यह AdaBoostM2Tree प्रकार के कमजोर शिक्षार्थी का उपयोग कर रहा है और उनमें से 100 का उपयोग कर रहा है। इस फ़ंक्शन के इस सरल उदाहरण को यह दिखाने के लिए कैसे संबोधित किया जा रहा है कि विभिन्न वर्गीकरणकर्ताओं को Neural Net, KNN, Naive Bayes को एक साथ जोड़ने के लिए एकत्रित सीखने का उपयोग किया जाता है?

क्या कोई यह बता सकता है कि वास्तव में क्या सीख रहा है और MATLAB fitensemble फ़ंक्शन के कार्यान्वयन में क्या करने की कोशिश कर रहा है?

उत्तर

11

ensemble learning का मूल विचार भविष्यवाणी प्रदर्शन को बेहतर बनाने के लिए कई मॉडलों को जोड़ना है। उन्हें मेटा-एल्गोरिदम माना जाता है जो मौजूदा शिक्षण एल्गोरिदम के शीर्ष पर काम करने के लिए डिज़ाइन किया गया है। वहाँ विभिन्न दृष्टिकोण हैं:

  • Bagging प्रत्येक डेटा की एक यादृच्छिक नमूना पर प्रशिक्षित मॉडल का एक सेट उत्पन्न करता है (बी ootstrap Agg regation के लिए खड़ा है) (bootstrapresampling: नमूना एन प्रतिस्थापन के साथ उदाहरण)। औसत मॉडल का उपयोग करके अंतिम भविष्यवाणी का उत्पादन करने के लिए उन मॉडल की भविष्यवाणियों को संयुक्त/समेकित किया जाता है।

  • Random Subspace: विचार इस तरह के प्रशिक्षण एल्गोरिथ्म (लगता है उदाहरण के लिए Random Forest) लागू करने से पहले यादृच्छिक पर सुविधाओं के सबसेट उठा के रूप में सीखने एल्गोरिथ्म randomize करने के लिए, है। प्रत्येक मॉडल को यादृच्छिक रूप से चुने गए सबस्पेस पर प्रक्षेपित डेटा पर प्रशिक्षित किया जाता है। मॉडलों के आउटपुट को आम तौर पर एक साधारण बहुमत वोट द्वारा संयुक्त किया जाता है।

  • Boosting: वोटिंग/औसत मॉडलों के औसत की अवधारणा पर भी बनाया गया है, हालांकि यह उनके प्रदर्शन के अनुसार मॉडल को वजन देता है। यह मॉडलों को एक पुनरावृत्ति तरीके से बनाता है, जहां नए मॉडल को पहले मॉडल द्वारा गलत वर्गीकृत उदाहरणों के लिए "विशेषज्ञ" बनने के लिए प्रोत्साहित किया जाता है। बूस्टिंग सबसे अच्छा काम करता है अगर बेस लर्निंग एल्गोरिदम बहुत जटिल नहीं है (कमजोर शिक्षार्थी)। इस एल्गोरिदम के कई रूप हैं (AdaBoost, LogitBoost, जेंटलबुस्ट, LPBoost, आदि ..)।

  • Stacking: एकाधिक आधार शिक्षार्थियों की भविष्यवाणियों (आमतौर पर विभिन्न प्रकार के: KNN, एएनएन, SVM, आदि ..) को जोड़ती है, मतदान का उपयोग नहीं कर के रूप में पहले, लेकिन एक मेटा-शिक्षार्थी का उपयोग कर (एक मॉडल उत्पादन पर प्रशिक्षित किया आधार मॉडल के)।इसलिए अंतिम शिक्षा का उत्पादन करने के लिए आधार सीखने वालों की भविष्यवाणियों को मेटा-लर्नर को इनपुट परत के रूप में खिलाया जाता है।


fitensemble दोनों वर्गीकरण और प्रतिगमन के लिए एक ensemble learner निर्माण करने के लिए इस्तेमाल किया एक MATLAB कार्य है। यह तीन तरीकों का समर्थन करता है: बैगिंग, बूस्टिंग और सबस्पेस। आप तीन प्रकार के उपलब्ध कमजोर शिक्षार्थियों के बीच चयन कर सकते हैं: decision tree (decision stump वास्तव में), भेदभावपूर्ण विश्लेषण (linear और quadratic), या k-nearest neighbor क्लासिफायरफायर।

नोट:Subspace विधि के अलावा, सभी बढ़ाने और जीत एल्गोरिदम tree learners पर आधारित हैं। सब्सक्रिप्शन या तो discriminant analysis या k-nearest neighbor शिक्षार्थियों का उपयोग कर सकते हैं।

उदाहरण के लिए, निम्नलिखित कोड एक निर्णय वृक्ष कलाकारों की टुकड़ी वर्गीकारक (100 पेड़ से मिलकर) AdaBoost विधि इसी वर्गों Y के साथ प्रशिक्षण डाटासेट X पर फिट का उपयोग कर प्रशिक्षित करता है।

ens = fitensemble(X, Y, 'AdaBoostM1', 100, 'Tree') 

(M1 हिस्सा एक द्विआधारी वर्गीकारक इंगित करता है, multiclass समस्याओं के लिए एक विस्तारित M2 संस्करण है)

+1

आप पर [stats.SE] (http सवाल और जवाब ब्राउज़ कर कलाकारों की टुकड़ी के तरीकों के बारे में अधिक सीख सकते हैं: //stats.stackexchange.com/questions/tagged/ensemble) – Amro

+0

संपादन के लिए धन्यवाद, हाहा, वास्तव में सराहनीय। मैं इकट्ठा सीखने के बारे में उलझन में था, और इसके बारे में सीखने के बाद, संपादन करने के लिए बहुत आलसी था। – motiur

+0

क्या आप अपना खुद का शिक्षार्थी निर्दिष्ट कर सकते हैं? – JohnAndrews