ग्रेडिंग बूस्टिंग ट्री: "अधिक चर बेहतर"?


11

XGBoost के ट्यूटोरियल से, मुझे लगता है कि जब प्रत्येक पेड़ बढ़ता है, तो सभी वेरिएबल्स को विभाजित नोड्स के लिए चुने जाने के लिए स्कैन किया जाता है, और अधिकतम लाभ विभाजन वाले को चुना जाएगा। तो मेरा प्रश्न यह है कि अगर मैं डेटा सेट में कुछ शोर चर जोड़ूं, तो क्या ये शोर चर चर के चयन को प्रभावित करेंगे (प्रत्येक वृक्ष के लिए)? मेरा तर्क यह है कि क्योंकि ये शोर चर अधिकतम लाभ को विभाजित नहीं करते हैं, इसलिए उन्हें कभी नहीं चुना जाएगा ताकि वे पेड़ की वृद्धि को प्रभावित न करें।

यदि जवाब हाँ है, तो क्या यह सच है कि "अधिक चर XGBoost के लिए बेहतर है"? चलो प्रशिक्षण समय पर विचार नहीं करते हैं।

इसके अलावा, यदि उत्तर हाँ है, तो क्या यह सच है कि "हमें मॉडल से गैर-महत्वपूर्ण चर को फ़िल्टर करने की आवश्यकता नहीं है"।

धन्यवाद!

जवाबों:


12

मेरा तर्क यह है कि क्योंकि ये शोर चर अधिकतम लाभ को विभाजित नहीं करते हैं, इसलिए उन्हें कभी नहीं चुना जाएगा ताकि वे पेड़ की वृद्धि को प्रभावित न करें।

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

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

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

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


बहुत अच्छा। धन्यवाद! तो क्या आपको लगता है कि XGBoost की फिटिंग से पहले फीचर का चयन आपके अनुभव के आधार पर आवश्यक है?
WCMC

@ फ्रांक: हो सकता है। आप समान रूप से सुविधाओं के पूरे सेट के साथ शुरू कर सकते हैं और आपकी सहायता के लिए xgboost चर महत्व रिपोर्ट का उपयोग कर सकते हैं। सामान्य तौर पर, XGBoost सुविधा चयन और इंजीनियरिंग के बारे में किसी भी सामान्य चिंता से पूरी तरह से आपको बचाता नहीं है।
नील स्लेटर

हाय @Neil, जब भी आपको मौका मिले, कृपया datascience.stackexchange.com/questions/17288/… पर एक नज़र डालें । धन्यवाद।
WCMC

@ फ्रेंक: मैंने पहले ही कल कर लिया था और स्पष्टीकरण के लिए एक सवाल छोड़ दिया क्योंकि संख्या थोड़ी दूर लग रही थी।
नील स्लेटर

हाय @Neil, चूंकि पिछले पोस्टर ने आपके प्रश्न का उत्तर नहीं दिया था, इसलिए मैं इसे अपने प्रोजेक्ट के साथ यहाँ पुनः पोस्ट कर रहा हूँ। मैंने वहां डेटा सेट और आर स्क्रिप्ट भी प्रदान की, जो मुझे उम्मीद है कि दूसरों के लिए समस्या को समझना अधिक सुविधाजनक होगा। अगर आप कुछ मदद प्रदान करना पसंद करेंगे तो मैं सराहना करता हूं।
WCMC
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.