निर्णय वृक्ष एल्गोरिथम - एक संपूर्ण मार्गदर्शिका

स्रोत नोड: 1062812

इस लेख के एक भाग के रूप में प्रकाशित किया गया था डेटा साइंस ब्लॉगथॉन

निर्णय वृक्ष एल्गोरिथ्म

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

विषय-सूची

1. निर्णय वृक्ष क्या है?

2. निर्णय वृक्ष का उदाहरण

3. एन्ट्रॉपी

4. सूचना लाभ

5. बंटवारे को कब रोकें?

6. ओवरफिटिंग को कैसे रोकें?

  • अधिकतम गहराई
  • min_sample_split
  • min_sample_leaf
  • मैक्स_फीचर्स

7. प्रूनिंग

  • पोस्ट-प्रूनिंग
  • पूर्व छंटाई

8. एंडनोट्स

निर्णय वृक्ष क्या है?

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

निर्णय वृक्ष क्या है

छवि 1

निर्णय वृक्षों के बारे में अधिक जानने से पहले आइए कुछ शब्दावली से परिचित हों।

रूट नोड्स - यह एक निर्णय वृक्ष की शुरुआत में मौजूद नोड है इस नोड से जनसंख्या विभिन्न विशेषताओं के अनुसार विभाजित होने लगती है।

निर्णय नोड्स - रूट नोड्स को विभाजित करने के बाद हमें जो नोड मिलते हैं उन्हें डिसीजन नोड कहा जाता है

लीफ नोड्स - जिन नोड्स में आगे विभाजन संभव नहीं है, उन्हें लीफ नोड्स या टर्मिनल नोड्स कहा जाता है

उप पेड़ - जैसे ग्राफ के एक छोटे से हिस्से को सब-ग्राफ कहा जाता है, वैसे ही इस डिसीजन ट्री के एक सब-सेक्शन को सब-ट्री कहा जाता है।

छंटाई - ओवरफिटिंग को रोकने के लिए कुछ नोड्स को काटने के अलावा और कुछ नहीं है।

शाखा निर्णय वृक्ष एल्गोरिथ्म

छवि 2

निर्णय वृक्ष का उदाहरण

आइए एक उदाहरण की मदद से डिसीजन ट्री को समझते हैं।

उदाहरण डेटा

छवि 3

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

नीचे दिए गए चित्र में पेड़ सबसे पहले पूछेगा कि मौसम क्या है? क्या यह धूप, बादल या बरसात है? यदि हाँ तो यह अगले फीचर पर जाएगा जो नमी और हवा है। यह फिर से जांच करेगा कि तेज हवा है या कमजोर है, अगर यह कमजोर हवा है और बारिश है तो व्यक्ति जा सकता है और खेल सकता है।

निर्णय वृक्ष उदाहरण

छवि 4

क्या आपने उपरोक्त फ़्लोचार्ट में कुछ देखा? हम देखते हैं कि यदि मौसम बादल है तो हमें खेलने जाना चाहिए। यह और अधिक विभाजित क्यों नहीं हुआ? यह वहाँ क्यों रुक गया?

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

मशीन लर्निंग का लक्ष्य डेटासेट से अनिश्चितता या विकारों को कम करना है और इसके लिए हम डिसीजन ट्री का उपयोग करते हैं।

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

एन्ट्रापी

एन्ट्रापी हमारे डेटासेट या विकार के माप में अनिश्चितता के अलावा और कुछ नहीं है। इसे मैं एक उदाहरण की मदद से समझाने की कोशिश करता हूं।

मान लीजिए कि आपके पास दोस्तों का एक समूह है जो यह तय करता है कि वे रविवार को एक साथ कौन सी फिल्म देख सकते हैं। फिल्मों के लिए 2 विकल्प हैं, एक है "लुसी" और दूसरा है "टाइटैनिक" और अब सभी को अपनी पसंद बतानी है। सभी के उत्तर देने के बाद हम देखते हैं कि "लुसी" को मिले 4 वोट और "टाइटैनिक" को मिले 5 वोट. अब हम कौन सी फिल्म देखते हैं? क्या अब 1 फिल्म चुनना मुश्किल नहीं है क्योंकि दोनों फिल्मों के वोट कुछ हद तक बराबर हैं।

इसे ही हम अव्यवस्था कहते हैं, दोनों फिल्मों के लिए समान संख्या में वोट हैं, और हम वास्तव में यह तय नहीं कर सकते कि हमें कौन सी फिल्म देखनी चाहिए। यह बहुत आसान होता अगर "लुसी" के लिए वोट 8 थे और "टाइटैनिक" के लिए 2 थे। यहां हम आसानी से कह सकते हैं कि अधिकांश वोट "लुसी" के लिए हैं इसलिए हर कोई इस फिल्म को देख रहा होगा।

एक निर्णय वृक्ष में, आउटपुट ज्यादातर "हां" या "नहीं" होता है

एन्ट्रॉपी का सूत्र नीचे दिखाया गया है:

एन्ट्रापी डिसीजन ट्री एल्गोरिथम

यहाँ पी+ सकारात्मक वर्ग की संभावना है

p- नकारात्मक वर्ग की संभावना है

एस प्रशिक्षण उदाहरण का सबसेट है

निर्णय वृक्ष एन्ट्रापी का उपयोग कैसे करते हैं?

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

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

मान लीजिए ए सुविधा प्रारंभ में 8 "हाँ" और 4 "नहीं" हैं, पहले बाएँ नोड को विभाजित करने के बाद 5 'हाँ' और 2 'नहीं' मिलते हैं जबकि दायां नोड 3 'हाँ' और 2 'नहीं' मिलते हैं।

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

फीचर 2 और फीचर 3 की अशुद्धता की जांच के लिए हम एंट्रॉपी फॉर्मूला की मदद लेंगे।

सुविधा 2

छवि स्रोत: लेखक

एन्ट्रापी गणना

फीचर 3 के लिए,

फ़ीचर 3 डिसीजन ट्री एल्गोरिथम

हम पेड़ से ही स्पष्ट रूप से देख सकते हैं कि बाएं नोड में दाएं नोड की तुलना में कम एन्ट्रापी या अधिक शुद्धता है क्योंकि बाएं नोड में "हां" की संख्या अधिक है और यहां निर्णय लेना आसान है।

हमेशा याद रखें कि एन्ट्रापी जितनी अधिक होगी, शुद्धता उतनी ही कम होगी और अशुद्धता उतनी ही अधिक होगी।

जैसा कि पहले उल्लेख किया गया है कि मशीन लर्निंग का लक्ष्य डेटासेट में अनिश्चितता या अशुद्धता को कम करना है, यहां एन्ट्रॉपी का उपयोग करके हम एक विशेष नोड की अशुद्धता प्राप्त कर रहे हैं, हम नहीं जानते कि मूल एन्ट्रॉपी या किसी विशेष नोड की एन्ट्रॉपी कम हुआ है या नहीं.

इसके लिए हम "सूचना लाभ" नामक एक नया मीट्रिक लाते हैं जो हमें बताता है कि किसी विशेषता के साथ इसे विभाजित करने के बाद माता-पिता की एन्ट्रॉपी कितनी कम हो गई है।

सूचना प्राप्ति

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

सूचना लाभ निर्णय वृक्ष एल्गोरिथ्म

यह केवल पूर्ण डेटासेट की एन्ट्रापी है - कुछ विशेषता दिए गए डेटासेट की एन्ट्रापी।

इसे बेहतर ढंग से समझने के लिए आइए एक उदाहरण पर विचार करें:
मान लीजिए कि हमारी पूरी आबादी में कुल 30 उदाहरण हैं। डेटासेट यह अनुमान लगाने के लिए है कि व्यक्ति जिम जाएगा या नहीं। मान लें कि 16 लोग जिम जाते हैं और 14 लोग नहीं करते हैं

अब हमारे पास यह अनुमान लगाने के लिए दो विशेषताएं हैं कि वह जिम जाएगा या नहीं।

फ़ीचर 1 is "ऊर्जा" जो दो मान लेता है "उँचा और नीचा"

फ़ीचर 2 is "प्रेरणा" जो 3 मान लेता है "कोई प्रेरणा नहीं", "तटस्थ" और "अत्यधिक प्रेरित"।

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

फ़ीचर1 ऊर्जा

छवि स्रोत: लेखक

आइए एन्ट्रापी की गणना करें:

एन्ट्रापी की गणना | निर्णय वृक्ष एल्गोरिथ्म

प्रत्येक नोड की एन्ट्रापी का भारित औसत देखने के लिए हम निम्नानुसार करेंगे:

एन्ट्रापी भारित औसत

अब हमारे पास ई (माता-पिता) और ई (माता-पिता | ऊर्जा) का मूल्य है, सूचना लाभ होगा:

सूचना लाभ उदाहरण

हमारी मूल एन्ट्रापी 0.99 के करीब थी और सूचना लाभ के इस मूल्य को देखने के बाद, हम कह सकते हैं कि अगर हम "एनर्जी" को अपना रूट नोड बनाते हैं तो डेटासेट की एन्ट्रापी 0.37 घट जाएगी।

इसी तरह, हम इसे अन्य फीचर "प्रेरणा" के साथ करेंगे और इसके सूचना लाभ की गणना करेंगे।

फीचर2 | निर्णय वृक्ष एल्गोरिथ्म

छवि स्रोत: लेखक

आइए यहां एन्ट्रापी की गणना करें:

फ़ीचर 2 एन्ट्रॉपी

प्रत्येक नोड की एन्ट्रापी का भारित औसत देखने के लिए हम निम्नानुसार करेंगे:

भारित एन्ट्रापी

अब हमारे पास ई (माता-पिता) और ई (माता-पिता | प्रेरणा) का मूल्य है, सूचना लाभ होगा:

फीचर 2 सूचना लाभ

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

अंतिम विभाजन | निर्णय वृक्ष एल्गोरिथ्म
छवि स्रोत: लेखक

इस उदाहरण में "ऊर्जा" हमारा रूट नोड होगा और हम सब-नोड्स के लिए भी ऐसा ही करेंगे। यहां हम देख सकते हैं कि जब ऊर्जा "उच्च" होती है तो एन्ट्रापी कम होती है और इसलिए हम कह सकते हैं कि यदि कोई व्यक्ति उच्च ऊर्जा रखता है तो वह निश्चित रूप से जिम जाएगा, लेकिन यदि ऊर्जा कम हो तो क्या होगा? हम फिर से नई सुविधा के आधार पर नोड को विभाजित करेंगे जो "प्रेरणा" है।

बंटवारा कब बंद करें?

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

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

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

अधिक हाइपरपैरामीटर हैं जैसे:

min_sample_leaf - लीफ नोड में होने के लिए आवश्यक नमूनों की न्यूनतम संख्या का प्रतिनिधित्व करता है। जितना अधिक आप संख्या बढ़ाते हैं, उतनी ही अधिक होने की संभावना अधिक होती है।

मैक्स_फीचर्स - यह हमें यह तय करने में मदद करता है कि सर्वोत्तम विभाजन की तलाश करते समय किन विशेषताओं पर विचार किया जाए।

इन हाइपरपैरामीटर के बारे में अधिक पढ़ने के लिए आप इसे पढ़ सकते हैं यहाँ उत्पन्न करें.

छंटाई

यह एक और तरीका है जो हमें ओवरफिटिंग से बचने में मदद कर सकता है। यह उन नोड्स या उप-नोड्स को काटकर पेड़ के प्रदर्शन में सुधार करने में मदद करता है जो महत्वपूर्ण नहीं हैं। यह उन शाखाओं को हटा देता है जिनका बहुत कम महत्व है।

छंटाई के मुख्य रूप से 2 तरीके हैं:

(I) पूर्व छंटाई - हम पहले पेड़ को उगाना बंद कर सकते हैं, जिसका अर्थ है कि हम एक नोड को काट सकते हैं / हटा सकते हैं / काट सकते हैं यदि इसका महत्व कम है बढ़ते समय पेड़।

(Ii) पोस्ट-प्रूनिंग - एक बार हमारा पेड़ अपनी गहराई तक बनाया गया है, हम नोड्स को उनके महत्व के आधार पर काटना शुरू कर सकते हैं।

एंडनोट्स

संक्षेप में, इस लेख में हमने निर्णय वृक्षों के बारे में सीखा। पेड़ किस आधार पर नोड्स को विभाजित करता है और ओवरफिटिंग को कैसे रोक सकता है। वर्गीकरण समस्याओं के मामले में रैखिक प्रतिगमन काम क्यों नहीं करता है।

अगले लेख में मैं रैंडम फॉरेस्ट के बारे में बताऊंगा, जो फिर से ओवरफिटिंग से बचने की एक नई तकनीक है।
निर्णय वृक्षों के पूर्ण कार्यान्वयन की जाँच करने के लिए कृपया my . देखें Github भंडार।

मुझे बताएं कि क्या आपके पास नीचे टिप्पणी में कोई प्रश्न हैं।

लेखक के बारे में

मैं वर्तमान में सांख्यिकी (बैचलर्स ऑफ स्टैटिस्टिक्स) में अपने अंतिम वर्ष में स्नातक छात्र हूं और डेटा साइंस, मशीन लर्निंग और आर्टिफिशियल इंटेलिजेंस के क्षेत्र में मेरी गहरी रुचि है। मुझे डेटा के बारे में रुझान और अन्य मूल्यवान अंतर्दृष्टि खोजने के लिए डेटा में गोता लगाने में मज़ा आता है। मैं लगातार सीख रहा हूं और नई चीजों को आजमाने के लिए प्रेरित हूं।

मैं सहयोग और काम करने के लिए तैयार हूं।

किसी के लिए संदेह और प्रश्न, बेझिझक मुझसे संपर्क करें ईमेल

मेरे साथ कनेक्ट करें लिंक्डइन और ट्विटर

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

छवि सूत्रों का कहना है

  1. छवि 1 - https://wiki.pathmind.com/decision-tree
  2. छवि 2 - https://wiki.pathmind.com/decision-tree
  3. छवि 3 - www.hackerearth.com
  4. छवि 4 - www.hackerearth.com

स्रोत: https://www.analyticsvidhya.com/blog/2021/08/decision-tree-algorithm/

समय टिकट:

से अधिक एनालिटिक्स विधा