2013-02-22 2 views
6

मैं सोच रहा हूं कि अल्फा (एक कमजोर वर्गीकृत का वजन) होना चाहिए जब अल्फा के लिए एल्गोरिदम के बाद त्रुटि दर (सही वर्गीकरण) हो (0.5) * Math.log(((1 - errorRate)/errorRate))त्रुटि दर शून्य होने पर अल्फा की गणना कैसे करें (Adaboost)

धन्यवाद।

उत्तर

1

मैं इस समस्या में कुछ बार भाग गया और आमतौर पर मैं यह जांचता हूं कि त्रुटि 0 के बराबर है और यदि यह है, तो इसे न्यूनतम वजन के 1/10 के बराबर सेट करें। यह एक हैक है, लेकिन यह आमतौर पर बहुत अच्छी तरह से काम खत्म होता है।

+0

इसका मतलब यह है कि इसे 1/10 मिनट के वजन के बराबर सेट करने का क्या मतलब है? –

+0

एडोबूस्ट के हिस्से के रूप में, आपके पास उदाहरण के लिए वजन है कि आप अपने प्रशिक्षण के लिए उपयोग कर रहे हैं। उन उदाहरणों को आम तौर पर शुरुआत में 1/मानक पर सेट किया जाता है और एडोबूस्ट के प्रत्येक पुनरावृत्ति पर अपडेट किया जाता है। आपकी त्रुटि केवल उदाहरणों के लिए वजन का योग है कि आपका कमजोर वर्गीकरण गलत हो जाता है। यदि आपकी त्रुटि शून्य है, तो बस इसे कम से कम वजन के 1/10 पर सेट करें, इस प्रकार यह कहकर कि आपका वर्गीकरण इतना अच्छा है (लेकिन सही नहीं है) कि यह कम से कम महत्वपूर्ण उदाहरण का केवल 1/10 गलत है। – nikola

3

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

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

अब, अगर ऐसा होता है तो आप पुन: प्रयास करके बढ़ रहे हैं, और आपका नमूना केवल आपके प्रशिक्षण डेटा का सबसेट है, मुझे विश्वास है कि आपको इस सबसेट को छोड़ना चाहिए और दूसरे नमूने के साथ पुनः प्रयास करना चाहिए।

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

4

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

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

यह एडोबूस्ट के Schapire & Singer's Confidence Rated Predictions संस्करण की धारा 4.2 में शामिल है। वे स्थिरता के लिए अपने अंश और हर के लिए एक छोटे एप्सिलॉन जोड़ने का सुझाव: किसी भी घटना में

alpha = (0.5) * Math.log(((1 - errorRate + epsilon)/(errorRate + epsilon))) 

, इस अल्फा एक छोटा सा मान पर सेट नहीं किया जाना चाहिए (यह बड़े होना चाहिए)। और इसे 1 तक सेट करना केवल तभी समझ में आता है जब बूस्टिंग के सभी अन्य राउंड के लिए अन्य सभी सामान्य होते हैं, इसलिए सभी जोरों का योग लगभग 1 है, उदाहरण के लिए

0

यदि आप इस तरह के क्लासिफ़ायर का उपयोग नहीं करते हैं तो यह वास्तव में बेहतर होता है Adaboost की भविष्यवाणी के रूप में यह इसे बेहतर नहीं करेगा क्योंकि यह एक कमजोर वर्गीकृत नहीं है और सभी वजन खाएगा।

संबंधित मुद्दे