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

Python में डिसीजन ट्री का उपयोग करके क्लासिफायर कैसे बनाएं?


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

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

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

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

हर डिसीजन ट्री एक रूट से शुरू होता है, और यह वह स्थान है जहां पहला विभाजन किया जाता है। यह सुनिश्चित करने के लिए एक कुशल तरीका तैयार किया जाना चाहिए कि नोड्स परिभाषित हों।

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

इसलिए, हर विभाजन के बाद जिनी वैल्यू की गणना की जाती है। जिनी वैल्यू/असमानता वैल्यू के आधार पर, सूचना लाभ को परिभाषित किया जा सकता है।

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("डिसीजन ट्री क्लासिफायर को कॉल किया जा रहा है")
DTclf = clf.fit(my_data, target_vals)
prediction = DTclf.predict([[135,29]])
print("भविष्यवाणी किया गया मान है")
print(prediction)

आउटपुट

डिसीजन ट्री क्लासिफायर को कॉल किया जा रहा है
भविष्यवाणी किया गया मान है ['Woman']

व्याख्या

  • आवश्यक पैकेज वातावरण में आयात किए गए हैं।
  • कोड का उपयोग फीचर वैल्यू के आधार पर टारगेट वैल्यू को वर्गीकृत करने के लिए किया जाता है।
  • फीचर वेक्टर और टारगेट वैल्यू परिभाषित की गई हैं।
  • 'train_test_split' फ़ंक्शन की मदद से डेटा को ट्रेनिंग और टेस्टिंग सेट में विभाजित किया जाता है।
  • DecisionTreeClassifier को कॉल किया जाता है और डेटा को मॉडल में फिट किया जाता है।
  • फीचर वैल्यू के लिए मानों की भविष्यवाणी करने के लिए 'predict' फ़ंक्शन का उपयोग किया जाता है।
  • आउटपुट कंसोल पर प्रदर्शित होता है।
  1. पायथन में Bokeh का उपयोग करके पैच प्लॉट कैसे उत्पन्न करें? पायथन में Bokeh का उपयोग करके पैच प्लॉट कैसे उत्पन्न करें?

    Bokeh एक पायथन पैकेज है जो डेटा विज़ुअलाइज़ेशन में मदद करता है। यह एक ओपन सोर्स प्रोजेक्ट है। Bokeh अपने प्लॉट को HTML और JavaScript का उपयोग करके रेंडर करता है। यह इंगित करता है कि यह वेब-आधारित डैशबोर्ड के साथ काम करते समय उपयोगी है। Matplotlib और Seaborn स्टैटिक प्लॉट उत्पन्न करते हैं, जबकि Boke

  1. पायथन में Bokeh का उपयोग करके साइनसोइडल तरंगें कैसे उत्पन्न करें? पायथन में Bokeh का उपयोग करके साइनसोइडल तरंगें कैसे उत्पन्न करें?

    Bokeh एक पायथन पैकेज है जो डेटा विज़ुअलाइज़ेशन में मदद करता है। यह एक ओपन सोर्स प्रोजेक्ट है। Bokeh अपने प्लॉट को HTML और JavaScript का उपयोग करके रेंडर करता है। यह इंगित करता है कि यह वेब-आधारित डैशबोर्ड के साथ काम करते समय उपयोगी है। डेटा विज़ुअलाइज़ेशन एक महत्वपूर्ण कदम है क्योंकि यह समझने में म

  1. Matplotlib का उपयोग करके Python में हिस्टोग्राम कैसे बनाएं? Matplotlib का उपयोग करके Python में हिस्टोग्राम कैसे बनाएं?

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