निर्णय वृक्ष यादृच्छिक वन एल्गोरिथम का मूल निर्माण खंड है। इसे मशीन लर्निंग में सबसे लोकप्रिय एल्गोरिदम में से एक माना जाता है और इसका उपयोग वर्गीकरण उद्देश्यों के लिए किया जाता है। वे बेहद लोकप्रिय हैं क्योंकि उन्हें समझना आसान है।
एक निर्णय वृक्ष द्वारा दिए गए निर्णय का उपयोग यह समझाने के लिए किया जा सकता है कि एक निश्चित भविष्यवाणी क्यों की गई थी। इसका मतलब है कि प्रक्रिया के अंदर और बाहर उपयोगकर्ता के लिए स्पष्ट होगा। वे बैगिंग, रैंडम फॉरेस्ट और ग्रेडिएंट बूस्टिंग जैसे पहनावा विधियों के लिए भी एक आधार हैं। उन्हें कार्ट, यानी वर्गीकरण और प्रतिगमन पेड़ के रूप में भी जाना जाता है। इसे एक बाइनरी ट्री (डेटा संरचनाओं और एल्गोरिदम में अध्ययन किया गया) के रूप में देखा जा सकता है।
ट्री में प्रत्येक नोड एक इनपुट वैरिएबल का प्रतिनिधित्व करता है, और लीफ नोड्स (जिन्हें टर्मिनल नोड्स के रूप में भी जाना जाता है) में आउटपुट वेरिएबल होता है। इन लीफ नोड्स का उपयोग नोड पर भविष्यवाणी करने के लिए किया जाता है। जब एक निर्णय वृक्ष बनाया जा रहा है, तो मूल विचार यह है कि दिए गए स्थान को कई खंडों में विभाजित किया जा रहा है। सभी मूल्यों को रखा जाता है और कम लागत और सर्वोत्तम भविष्यवाणी मूल्यों को प्राप्त करने के लिए विभिन्न विभाजनों की कोशिश की जाती है। इन मूल्यों को लालची तरीके से चुना जाता है।
इन नोड्स का विभाजन पेड़ की अधिकतम गहराई तक पहुंचने तक चलता रहता है। डिसीजन ट्री का उपयोग करने के पीछे का विचार विशिष्ट फीचर वैल्यू के आधार पर इनपुट डेटासेट को छोटे डेटासेट में विभाजित करना है, जब तक कि प्रत्येक लक्ष्य चर एक ही श्रेणी में न आ जाए। यह विभाजन इसलिए किया गया है ताकि प्रत्येक चरण के लिए अधिकतम जानकारी प्राप्त हो सके।
प्रत्येक निर्णय वृक्ष एक जड़ से शुरू होता है, और यह वह स्थान है जहाँ पहला विभाजन होता है। यह सुनिश्चित करने के लिए कि नोड्स परिभाषित हैं, एक कुशल तरीका तैयार किया जाना चाहिए।
यहीं से गिन्नी का मूल्य सामने आता है। गिन्नी को असमानता को मापने के लिए सबसे अधिक इस्तेमाल किए जाने वाले मापों में से एक माना जाता है। असमानता लक्ष्य वर्ग (आउटपुट) को संदर्भित करती है, जो एक नोड में प्रत्येक उपसमुच्चय से संबंधित हो सकता है।
इसलिए, प्रत्येक विभाजन के बाद गिनी मूल्य की गणना की जाती है। गिनी मूल्य/असमानता मूल्य के आधार पर, सूचना लाभ को परिभाषित किया जा सकता है।
DecisionTreeClassifier का उपयोग मल्टीक्लास वर्गीकरण करने के लिए किया जाता है।
नीचे उसी का सिंटैक्स दिया गया है।
class sklearn.tree.DecisionTreeClassifier(*, criterion='gini',…)
निम्नलिखित उदाहरण है -
उदाहरण
from sklearn import tree from sklearn.model_selection import train_test_split my_data = [[16,19],[17,32],[13,3],[14,5],[141,28],[13,34],[186,2],[126,25],[176,28], [131,32],[166,6],[128,32],[79,110],[12,38],[19,91],[71,136],[116,25],[17,200], [15,25], [14,32],[13,35]] target_vals =['Man','Woman','Man','Woman', 'Woman','Man','Woman','Woman', 'Woman','Woman','Woman','Man','Man', 'Man','Woman', 'Woman', 'Woman', 'Woman','Man','Woman','Woman'] data_feature_names = ['Feature_1','Feature_2'] X_train, X_test, y_train, y_test = train_test_split(my_data, target_vals, test_size = 0.2, random_state = 1) clf = tree.DecisionTreeClassifier() print("The decision tree classifier is being called") DTclf = clf.fit(my_data,target_vals) prediction = DTclf.predict([[135,29]]) print("The predicted value is ") print(prediction). है
आउटपुट
The decision tree classifier is being called The predicted value is ['Woman']
स्पष्टीकरण
- आवश्यक पैकेज पर्यावरण में आयात किए जाते हैं।
- कोड का उपयोग फीचर मूल्यों के आधार पर लक्ष्य मूल्यों के मूल्यों को वर्गीकृत करने के लिए किया जाता है।
- सुविधा वेक्टर और लक्ष्य मान परिभाषित हैं।
- डेटा को 'train_test_split' फ़ंक्शन की सहायता से प्रशिक्षण और परीक्षण सेट में विभाजित किया गया है।
- DecisionTreeClassifier को कॉल किया जाता है और डेटा मॉडल के अनुकूल होता है।
- 'पूर्वानुमान' फ़ंक्शन का उपयोग फ़ीचर मानों के मानों का अनुमान लगाने के लिए किया जाता है।
- आउटपुट कंसोल पर प्रदर्शित होता है।