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

पायथन का उपयोग करके डिसीजन ट्री कार्यान्वयन


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

उदाहरण

हम kaggle पर उपलब्ध ड्रग टेस्ट डेटा लेंगे। पहले चरण के रूप में हम पैंडास का उपयोग करके सीएसवी फाइल से डेटा पढ़ेंगे और इसकी सामग्री और संरचना देखेंगे।

import pandas as pd
datainput = pd.read_csv("drug.csv", delimiter=",")
#https://www.kaggle.com/gangliu/drugsets
print(datainput)

उपरोक्त कोड चलाने से हमें निम्नलिखित परिणाम मिलता है:

   Age Sex BP  Cholesterol Na_to_K Drug
0   23  F HIGH HIGH        25.355 drugY
1   47  M LOW  HIGH        13.093 drugC
2   47  M LOW  HIGH        10.114 drugC
3   28  F NORMAL HIGH       7.798 drugX
4   61  F LOW  HIGH        18.043 drugY
.. ... .. ... ... ... ...
195 56  F LOW  HIGH        11.567 drugC
196 16  M LOW  HIGH        12.006 drugC
197 52  M NORMAL HIGH       9.894 drugX
[200 rows x 6 columns]

डेटा प्री-प्रोसेसिंग

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

उदाहरण

import numpy as np
import pandas as pd
from sklearn.metrics import confusion_matrix
datainput = pd.read_csv("drug.csv", delimiter=",")
X = datainput[['Age', 'Sex', 'BP', 'Cholesterol', 'Na_to_K']].values
from sklearn import preprocessing
label_gender = preprocessing.LabelEncoder()
label_gender.fit(['F','M'])
X[:,1] = label_gender.transform(X[:,1])
label_BP = preprocessing.LabelEncoder()
label_BP.fit(['LOW', 'NORMAL', 'HIGH'])
X[:,2] = label_BP.transform(X[:,2])
label_Chol = preprocessing.LabelEncoder()
label_Chol.fit(['NORMAL', 'HIGH'])
X[:,3] = label_Chol.transform(X[:,3])
# पहले 6 रिकॉर्ड प्रिंट करना
print(X[0:6])

उपरोक्त कोड चलाने से हमें निम्नलिखित परिणाम मिलता है -

[[23 0 0 0 25.355]
 [47 1 1 0 13.093]
 [47 1 1 0 10.113999999999999]
 [28 0 2 0 7.797999999999999]
 [61 0 1 0 18.043]
 [22 0 2 0 8.607000000000001]]

निर्भर चर को बदलना

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

उदाहरण

import pandas as pd
datainput = pd.read_csv("drug.csv", delimiter=",")
X = datainput[['Age', 'Sex', 'BP', 'Cholesterol', 'Na_to_K']].values
y = datainput["Drug"]
print(y[0:6])

आउटपुट

उपरोक्त कोड चलाने से हमें निम्नलिखित परिणाम मिलता है:

0    drugY
1    drugC
2    drugC
3    drugX
4    drugY
5    drugX
Name: Drug, dtype: object

डेटासेट को प्रशिक्षित करना

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

उदाहरण

import pandas as pd
from sklearn.model_selection import train_test_split
datainput = pd.read_csv("drug.csv", delimiter=",")
X = datainput[['Age', 'Sex', 'BP', 'Cholesterol', 'Na_to_K']].values
y = datainput["Drug"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=3)
print(X_train.shape)
print(X_test.shape)
print(y_train.shape)
print(y_test.shape)

आउटपुट

उपरोक्त कोड चलाने से हमें निम्नलिखित परिणाम मिलता है:

(140, 5)
(60, 5)
(140,)
(60,)

प्रशिक्षित डेटा सेट से परिणाम प्राप्त करना

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

उदाहरण

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn import metrics
datainput = pd.read_csv("drug.csv", delimiter=",")
X = datainput[['Age', 'Sex', 'BP', 'Cholesterol', 'Na_to_K']].values
# डेटा प्रीप्रोसेसिंग
from sklearn import preprocessing
label_gender = preprocessing.LabelEncoder()
label_gender.fit(['F', 'M'])
X[:, 1] = label_gender.transform(X[:, 1])
label_BP = preprocessing.LabelEncoder()
label_BP.fit(['LOW', 'NORMAL', 'HIGH'])
X[:, 2] = label_BP.transform(X[:, 2])
label_Chol = preprocessing.LabelEncoder()
label_Chol.fit(['NORMAL', 'HIGH'])
X[:, 3] = label_Chol.transform(X[:, 3])
y = datainput["Drug"]
# train_test_split
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=3)
drugTree = DecisionTreeClassifier(criterion="entropy", max_depth=4)
drugTree.fit(X_train, y_train)
predicted = drugTree.predict(X_test)
print(predicted)
print("\nDecisionTrees's Accuracy: ", metrics.accuracy_score(y_test, predicted))

आउटपुट

उपरोक्त कोड चलाने से हमें निम्नलिखित परिणाम मिलता है:

['drugY' 'drugX' 'drugX' 'drugX' 'drugX' 'drugC' 'drugY' 'drugA' 'drugB' 'drugA' 'drugY' 'drugA' 'drugY' 'drugY' 'drugX' 'drugY' 'drugX' 'drugX' 'drugB' 'drugX' 'drugX' 'drugY' 'drugY' 'drugY' 'drugX' 'drugB' 'drugY' 'drugY' 'drugA' 'drugX' 'drugB' 'drugC' 'drugC' 'drugX' 'drugX' 'drugC' 'drugY' 'drugX' 'drugX' 'drugX' 'drugA' 'drugY' 'drugC' 'drugY' 'drugA' 'drugY' 'drugY' 'drugY' 'drugY' 'drugY' 'drugB' 'drugX' 'drugY' 'drugX' 'drugY' 'drugY' 'drugA' 'drugX' 'drugY' 'drugX']
DecisionTrees's Accuracy: 0.9833333333333333

  1. पायथन Bokeh: डेटा विज़ुअलाइज़ेशन (लाइन, सर्कल, बार चार्ट) पायथन Bokeh: डेटा विज़ुअलाइज़ेशन (लाइन, सर्कल, बार चार्ट)

    Bokeh परिचय Bokeh वेब ब्राउज़र के लिए इंटरैक्टिव डेटा विज़ुअलाइज़ेशन लाइब्रेरी है। यह HTML/JS आउटपुट उत्पन्न करता है जिसे ब्राउज़र में देखा जा सकता है। 1. लाइन प्लॉट from bokeh.io import show from bokeh.plotting import figure p = figure(plot_width=300, plot_height=300, title=Line Plot) p.line([2,

  1. पायथन का उपयोग करके Base64 डेटा एन्कोडिंग पायथन का उपयोग करके Base64 डेटा एन्कोडिंग

    base64 मॉड्यूल में फंक्शन बाइनरी डेटा को ASCII के एक सबसेट में अनुवादित करते हैं जो प्लेनटेक्स्ट प्रोटोकॉल का उपयोग करके ट्रांसमिशन के लिए उपयुक्त है। एन्कोडिंग और डिकोडिंग फंक्शन RFC 3548 में विनिर्देशों को लागू करते हैं, जो Base16, Base32, और Base64 एल्गोरिदम को परिभाषित करता है, और डी-फैक्टो मान

  1. पायथन में CX_Freeze का उपयोग पायथन में CX_Freeze का उपयोग

    कभी-कभी हम कुछ अलग बनाना चाहते हैं जो बहुत रोमांचक हो, और मानव स्वभाव के अनुसार, हम हमेशा इसे साझा करना पसंद करते हैं। पायथन भी उन इच्छाओं को पूरा करता है। पायथन का उपयोग करके, अगर हम अपने पायथन प्रोग्राम को अपने दोस्तों के साथ साझा करना चाहते हैं तो हम ऐसा कर सकते हैं, बस उनके मशीन पर वही पायथन सं