কম্পিউটার

পাইথনে একটি শ্রেণীবিভাগ তৈরি করতে কীভাবে সিদ্ধান্ত গাছ ব্যবহার করা যেতে পারে?


ডিসিশন ট্রি হল এলোমেলো বন অ্যালগরিদমের মৌলিক বিল্ডিং ব্লক। এটি মেশিন লার্নিং-এর অন্যতম জনপ্রিয় অ্যালগরিদম হিসেবে বিবেচিত এবং শ্রেণীবিভাগের উদ্দেশ্যে ব্যবহৃত হয়। এগুলি অত্যন্ত জনপ্রিয় কারণ এগুলি বোঝা সহজ৷

একটি সিদ্ধান্ত গাছ দ্বারা প্রদত্ত সিদ্ধান্তটি ব্যাখ্যা করতে ব্যবহার করা যেতে পারে কেন একটি নির্দিষ্ট ভবিষ্যদ্বাণী করা হয়েছিল। এর মানে হল ব্যবহারকারীর কাছে প্রক্রিয়ার ভিতরে এবং বাইরে পরিষ্কার হবে। এগুলি ব্যাগিং, র্যান্ডম ফরেস্ট এবং গ্রেডিয়েন্ট বুস্টিং-এর মতো এনসেম্বল পদ্ধতির জন্য একটি ভিত্তি। এগুলি 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("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’ ফাংশনের সাহায্যে প্রশিক্ষণ এবং পরীক্ষার সেটে ডেটা বিভক্ত করা হয়।
  • ডিসিশনট্রিক্ল্যাসিফায়ার বলা হয় এবং ডেটা মডেলের সাথে মানানসই।
  • 'ভবিষ্যদ্বাণী' ফাংশনটি বৈশিষ্ট্যের মানগুলির মানগুলির পূর্বাভাস দিতে ব্যবহৃত হয়৷
  • আউটপুট কনসোলে প্রদর্শিত হয়।

  1. পাইথনে বার প্লট কল্পনা করতে বোকেহ কীভাবে ব্যবহার করা যেতে পারে?

  2. পাইথনে প্যাচ প্লট তৈরি করতে বোকেহ কীভাবে ব্যবহার করা যেতে পারে?

  3. পাইথনে সাইনোসয়েডাল তরঙ্গ তৈরি করতে বোকেহ কীভাবে ব্যবহার করা যেতে পারে?

  4. কিভাবে matplotlib পাইথন ব্যবহার করে হিস্টোগ্রাম তৈরি করতে ব্যবহার করা যেতে পারে?