Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

निर्णय वृक्ष कैसे बनाएं?


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

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

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

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

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

निर्णय वृक्ष सीखने के लिए एल्गोरिदम

एल्गोरिदम - दिए गए प्रशिक्षण जानकारी से एक निर्णय वृक्ष बनाएं।

इनपुट - प्रशिक्षण नमूने, नमूने, असतत-मूल्यवान विशेषताओं द्वारा वर्णित; छात्र विशेषताओं का समूह, विशेषता-सूची।

आउटपुट - एक निर्णय वृक्ष।

विधि

  • एक नोड N बनाएं;

  • यदि नमूने कुछ समान कक्षा C के हैं तो

  • कक्षा C के साथ लेबल किए गए पत्ती नोड के रूप में N लौटाएं

  • यदि विशेषता-सूची शून्य है तो

  • नमूनों में सबसे अधिक बार आने वाली कक्षा के साथ लेबल किए गए पत्ती नोड के रूप में N लौटाएं। // बहुमत मतदान

  • टेस्ट-विशेषता चुनें, विशेषता-सूची में सबसे बड़े सूचना लाभ वाली विशेषता।

  • नोड N को टेस्ट विशेषता के साथ लेबल करें।

  • टेस्ट-विशेषता के प्रत्येक ज्ञात मूल्य ai के लिए // नमूनों को विभाजित करें।

  • शर्त टेस्ट-विशेषता = ai के लिए नोड N से एक शाखा विकसित करें।

  • si को नमूनों में नमूनों का समूह होने दें जिनके लिए टेस्ट-विशेषता = ai।

  • यदि si खाली है तो

  • इसे नमूनों में सबसे आम कक्षा के साथ लेबल किए गए पत्ती से जोड़ा जा सकता है।

  • अन्यथा Generate decision tree (si, विशेषता-सूची - टेस्ट-विशेषता) द्वारा लौटाए गए नोड को संलग्न करें


  1. जावाएफएक्स में टेक्स्ट नोड कैसे बनाएं जावाएफएक्स में टेक्स्ट नोड कैसे बनाएं

    जावाएफएक्स में, टेक्स्ट नोड को javafx.scene.text.Text क्लास द्वारा दर्शाया जाता है। आप इस क्लास को इंस्टेंटिएट करके जावाएफएक्स विंडो में टेक्स्ट जोड़ सकते हैं। टेक्स्ट नोड की बुनियादी प्रॉपर्टीज निम्नलिखित हैं - X - यह प्रॉपर्टी टेक्स्ट के x कोऑर्डिनेट को दर्शाती है। आप setX() मेथड का उपयोग करके इ

  1. पायथन में बाइनरी ट्री से स्ट्रिंग बनाएं पायथन में बाइनरी ट्री से स्ट्रिंग बनाएं

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें प्रीऑर्डर ट्रैवर्सल तरीके से बाइनरी ट्री से पैरेंथेसिस और पूर्णांकों से बनी एक स्ट्रिंग बनानी है। एक नल नोड को खाली पैरेंथेसिस जोड़ी () द्वारा दर्शाया जाएगा। और हमें उन सभी खाली पैरेंथेसिस जोड़ियों को छोड़ना होगा जो स्ट्रिंग और मूल बाइनरी ट्री के बीच एक-स

  1. पायथन में प्रीऑर्डर और पोस्टऑर्डर ट्रैवर्सल से बाइनरी ट्री निर्माण पायथन में प्रीऑर्डर और पोस्टऑर्डर ट्रैवर्सल से बाइनरी ट्री निर्माण

    मान लीजिए हमारे पास दो ट्रैवर्सल अनुक्रम प्रीऑर्डर और पोस्टऑर्डर हैं, हमें इन दो अनुक्रमों से बाइनरी ट्री उत्पन्न करना है। इसलिए यदि अनुक्रम [1,2,4,5,3,6,7], [4,5,2,6,7,3,1] हैं, तो आउटपुट होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - ans := pre[0] मान लेकर एक ट्री नोड बनाएं, stack := खा