কম্পিউটার

পাইথন ব্যবহার করে সিদ্ধান্ত গাছ বাস্তবায়ন


ডিসিশন ট্রি হল একটি অ্যালগরিদম যা মূলত ডেটা শ্রেণীবিভাগের পরিস্থিতিতে প্রয়োগ করা হয়। এটি একটি গাছের কাঠামো যেখানে প্রতিটি নোড বৈশিষ্ট্য উপস্থাপন করে এবং প্রতিটি প্রান্ত গৃহীত সিদ্ধান্তের প্রতিনিধিত্ব করে। রুট নোড থেকে শুরু করে আমরা শ্রেণিবিন্যাসের জন্য বৈশিষ্ট্যগুলি মূল্যায়ন করি এবং একটি নির্দিষ্ট প্রান্ত অনুসরণ করার সিদ্ধান্ত নিই। যখনই একটি নতুন ডেটা পয়েন্ট আসে, এই একই পদ্ধতি বারবার প্রয়োগ করা হয় এবং তারপর চূড়ান্ত উপসংহার নেওয়া হয় যখন সমস্ত প্রয়োজনীয় বৈশিষ্ট্যগুলি অধ্যয়ন করা হয় বা শ্রেণীবিভাগের দৃশ্যে প্রয়োগ করা হয়। তাই ডিসিশন ট্রি অ্যালগরিদম হল একটি তত্ত্বাবধানে শিক্ষার মডেল যা প্রশিক্ষণের ভেরিয়েবলের একটি সিরিজের সাথে নির্ভরশীল ভেরিয়েবলের পূর্বাভাস দিতে ব্যবহৃত হয়।

উদাহরণ

আমরা কাগলে উপলব্ধ ওষুধ পরীক্ষার ডেটা নেব। প্রথম ধাপ হিসেবে আমরা পান্ডা ব্যবহার করে একটি csv ফাইল থেকে ডেটা পড়ব এবং এর বিষয়বস্তু ও গঠন দেখব।

pddatainput =pd.read_csv("drug.csv", delimiter=",") #https://www.kaggle.com/gangliu/drugsetsprint(datainput) হিসাবে পান্ডা আমদানি করুন

উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয়:

<প্রে> বয়স লিঙ্গ বিপি কোলেস্টেরল Na_to_K ড্রাগ0 23 F উচ্চ উচ্চ 25.355 ড্রাগ Y1 47 M নিম্ন উচ্চ 13.093 ওষুধC2 47 M নিম্ন উচ্চ 10.114 ওষুধC3 28 F স্বাভাবিক উচ্চ 7..6138 ওষুধ ... LOWHIX ... LOWHIX ওষুধ ... LOWHIX ... .. ... ...195 56 F লো হাই 11.567 ড্রাগC196 16 M লো হাই 12.006 ড্রাগC197 52 M নরমাল হাই 9.894 ড্রাগএক্স[200 সারি x 6 কলাম]

ডেটা প্রাক-প্রসেসিং

পরবর্তী ধাপে আমরা ডেটাতে থাকা বিভিন্ন টেক্সট মানের জন্য সাংখ্যিক মান পেতে উপরের ডেটাগুলিকে প্রাক-প্রক্রিয়া করি। বয়স, লিঙ্গ, রক্তচাপ ইত্যাদির জন্য নির্দিষ্ট ওষুধ ব্যবহার করার সিদ্ধান্ত সম্পর্কে নমুনা ডেটা প্রশিক্ষণ এবং পরীক্ষা করার জন্য এটি দরকারী৷

উদাহরণ

sklearn.metrics import confusion_matrixdatainput =pd.read_csv("drug.csv", delimiter=",")X =ডেটাইনপুট[['বয়স', 'লিঙ্গ', 'BP', ' কোলেস্টেরল', 'Na_to_K']].মান থেকে sklearn import preprocessinglabel_gender =preprocessing.LabelEncoder()label_gender.fit(['F','M'])X[:,1] =label_gender.transform(X[:,1] )label_BP =প্রিপ্রসেসিং।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টি রেকর্ড প্রিন্ট (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.7979999999999999] [28 0 2 0 7.7979999999999999] [70201] [70201] [6002] [6001] [3001] [3002] [3002] [3001]> 

নির্ভরশীল পরিবর্তনশীলকে রূপান্তর করা হচ্ছে

পরবর্তীতে আমরা নির্ভরশীল ভেরিয়েবলকে সংখ্যাসূচক মানগুলিতে রূপান্তর করি যাতে এটি প্রশিক্ষণের পাশাপাশি মূল্যায়ন ডেটা সেটেও ব্যবহার করা যায়।

উদাহরণ

pddatainput =pd.read_csv("drug.csv", delimiter=",")X =datainput[['Age', 'Sex', 'BP', 'Colesterol', 'Na_to_K']] হিসাবে পান্ডা আমদানি করুন .valuesy =datainput["Drug"]print(y[0:6])

আউটপুট

উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয়:

0 drugY1 drugC2 drugC3 drugX4 drugY5 drugXName:ড্রাগ, dtype:অবজেক্ট

ডেটাসেট প্রশিক্ষণ

এরপরে আমরা প্রশিক্ষণ ডেটা সেট হিসাবে সরবরাহকৃত ডেটার 30 শতাংশ ব্যবহার করি। এটি অবশিষ্ট 70 শতাংশের জন্য শ্রেণীবিভাগ তৈরি করার ভিত্তি হিসাবে ব্যবহার করা হবে যাকে আমরা পরীক্ষা ডেটা হিসাবে বলব৷

উদাহরণ

sklearn.model_selection থেকে pd হিসাবে পান্ডা আমদানি করুন import train_test_splitdatainput =pd.read_csv("drug.csv", delimiter=",")X =datainput[['Age', 'Sex', 'BP', 'Colesterol', 'Na_to_K']].valuesy =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_ntest) y_train.shape)মুদ্রণ(y_test.shape)

আউটপুট

উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয়:

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

প্রশিক্ষিত ডেটা সেট থেকে ফলাফল পাওয়া

পরবর্তীতে আমরা প্রশিক্ষিত ডেটা সেটের ফলাফল দেখতে সিদ্ধান্ত ট্রি প্রয়োগ করতে পারি। এখানে আমরা আমাদের কাছে থাকা ইনপুটের উপর ভিত্তি করে এবং এনট্রপি নামক একটি মানদণ্ড ব্যবহার করে একটি গাছ তৈরি করি। এবং অবশেষে আমরা সিদ্ধান্ত গাছের নির্ভুলতা গণনা করি।

উদাহরণ

sklearn.tree থেকে pdf থেকে পান্ডা আমদানি করুন কোলেস্টেরল', 'Na_to_K']].values# ডেটা প্রিপ্রসেসিং ফ্রম sklearn import preprocessinglabel_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 =প্রিপ্রসেসিং .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_splitX_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)drugted (Train_Train=4) ওষুধ X_test)মুদ্রণ(ভবিষ্যদ্বাণী করা)মুদ্রণ("\nডিসিশনট্রিস এর যথার্থতা:", মেট্রিক্স.অ্যাকুরেসি_স্কোর(y) _পরীক্ষা, পূর্বাভাস))

আউটপুট

উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয়:

['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']ডিসিশনট্রিস এর যথার্থতা:0.9833333333333333333333333333 
  1. পাইথন ব্যবহার করে একটি এক্সপ্রেশন ট্রি তৈরি এবং মূল্যায়ন করার জন্য প্রোগ্রাম

  2. পাইথন - বোকেহ ব্যবহার করে ডেটা ভিজ্যুয়ালাইজেশন

  3. পাইথন ব্যবহার করে বেস64 ডেটা এনকোডিং

  4. পাইথনে CX_Freeze ব্যবহার করা