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

पायथन का उपयोग करके निर्णय वृक्ष का कार्यान्वयन

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

उदाहरण

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

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]

डेटा को प्री-प्रोसेस करना

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

उदाहरण

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])

# Printing the first 6 records
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,)

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

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

उदाहरण

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

# Data Preprocessing
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. पायथन - बोकेह का उपयोग करके डेटा विज़ुअलाइज़ेशन

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

  1. बेस 64 डेटा एन्कोडिंग पायथन का उपयोग कर रहा है

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

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

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