ডিসিসন ট্রি

Arefin Anwar

ডিসিসন ট্রি (Decision Tree) একটি মেশিন লার্নিং অ্যালগরিদম যা ডেটা থেকে সহজেই সিদ্ধান্ত নিতে শেখে। এটি এক ধরনের চার্টের মতো, যেখানে প্রতিটি গাছের শাখা একটি প্রশ্ন বা শর্তের উপর নির্ভর করে এবং প্রতিটি পাতা (যাকে নড-ও বলা হয়) একটি সিদ্ধান্ত বা ফলাফল নির্দেশ করে। চল একটু বুঝে নেওয়া যাক!

ভাবো, তুমি একটি ফলের দোকানে আছো এবং জানতে চাচ্ছো কোনটি আপেল আর কোনটি কমলা।

  • প্রথমে একটি প্রশ্ন করো: ফলটির রং কি লাল?
    • যদি “হ্যাঁ” হয়, তাহলে এটি আপেল হতে পারে।
    • যদি “না” হয়, তাহলে এটি কমলার দিকে যাবে।
  • এরপর আরেকটি প্রশ্ন হতে পারে: ফলটির গায়ে কি নরম দাগ আছে?
    • এইভাবে, প্রশ্নের পর প্রশ্ন করে তুমি ফলাফলে পৌঁছে যাবে।

চল আরেকটা উদাহরন দেখি, ভাবো, তুমি একটি পোষা প্রাণীর দোকানে আছো এবং জানতে চাচ্ছো একটি প্রাণী কুকুর না বিড়াল।

১ম প্রশ্ন: প্রাণীটি কি দৌড়াতে পছন্দ করে?

  • যদি “হ্যাঁ” হয়, তাহলে এটি কুকুর হতে পারে।
  • যদি “না” হয়, তাহলে এটি বিড়াল হতে পারে।

২য় প্রশ্ন: প্রাণীটির কি লম্বা লেজ আছে?

  • যদি “হ্যাঁ” হয়, তাহলে এটি বিড়াল হতে পারে।
  • যদি “না” হয়, তাহলে এটি কুকুর হতে পারে।

৩য় প্রশ্ন: প্রাণীটি কি উচ্চস্বরে ঘেউ ঘেউ করে?

  • যদি “হ্যাঁ” হয়, তাহলে এটি নিশ্চিতভাবে কুকুর।
  • যদি “না” হয়, তাহলে এটি বিড়াল।

৪র্থ প্রশ্ন: প্রাণীটি কি মাংস খেতে বেশি পছন্দ করে?

  • যদি “হ্যাঁ” হয়, তাহলে এটি কুকুর হতে পারে।
  • যদি “না” হয়, তাহলে এটি বিড়াল হতে পারে।

৫ম প্রশ্ন: প্রাণীটি কি কখনো কাত হয়ে পায়ের নীচে ঘুরে?

  • যদি “হ্যাঁ” হয়, তাহলে এটি বিড়াল।
  • যদি “না” হয়, তাহলে এটি কুকুর।

এভাবে, পাঁচটি প্রশ্নের মাধ্যমে তুমি কুকুর আর বিড়ালকে আলাদা করতে পারবে।

ডিসিসন ট্রি মূলত এই “হ্যাঁ/না” প্রশ্নগুলোকে অথবা কোন গাণিতিক শর্ত ব্যাবহার করে গাছের শাখার পাতাr মতো সাজিয়ে কোনকিছু প্রেডিক্ট করে।

একটু ডিসিশন ট্রি এর পিছনের কিছু জিনিস বুঝা যাক। এখন যেগুলা বুঝানো হচ্ছে টা সবি লাইব্রেরি ফাংশন এর মাধ্যমে ব্যবহার করা যায় মাত্র 2-3 লাইন কোড লিখে সো, ডোন্ট ওয়ারি!!

এন্ট্রপি (Entropy) হল ডিসিসন ট্রির মূল মাপকাঠি, যা ডেটার এলোমেলোতা বা বিশৃঙ্খলতার একটি পরিমাপ। সহজভাবে বললে, এন্ট্রপি বুঝতে সাহায্য করে একটি ডেটাসেট কতটা সুনির্দিষ্ট বা অনিশ্চিত। যদি ডেটার সব অংশ একই রকম হয়, যেমন একটি বাক্সে শুধুমাত্র আপেল থাকে, তাহলে এন্ট্রপি হবে ০, কারণ এখানে কোনো অনিশ্চয়তা নেই। অন্যদিকে, যদি বাক্সে ৫০% আপেল আর ৫০% কমলা থাকে, তাহলে এন্ট্রপি বেশি হবে, কারণ এখানে কোন ফলটি কী তা নিয়ে বিভ্রান্তি তৈরি হয়। ডিসিসন ট্রি এন্ট্রপির সাহায্যে এমন প্রশ্ন তৈরি করে যেগুলো ডেটাকে বিভিন্ন অংশে ভাগ করে বিশৃঙ্খলতা কমায় এবং একটি নির্দিষ্ট প্যাটার্ন খুঁজে বের করে। এভাবেই এন্ট্রপি ডিসিসন ট্রির শর্ত তৈরি এবং সিদ্ধান্ত গ্রহণের মূল ভিত্তি হিসেবে কাজ করে। 

একটা বাস্তব উদাহরণ শুনা যাক: একটি বাক্সে ১০টি আপেল আর ১০টি কমলা থাকলে সেটি খুব এলোমেলো (উচ্চ এন্ট্রপি)। কিন্তু যদি ২০টি আপেল থাকে, তাহলে সেটি এলোমেলো নয় (নিম্ন এন্ট্রপি)। ডিসিসন ট্রি এমনভাবে শর্ত তৈরি করে যাতে এন্ট্রপি কমে এবং গাছটি ডেটাকে সঠিকভাবে ভাগ করতে পারে।

নানা ফিচার এর এন্ট্রপির উপর নির্ভর করেই ট্রি তৈরি হয়, যেটিতে একুরেসি বেশি সেটই শেষ পর্যন্ত আমদের মডেল।

ডিসিসন ট্রি বেশি গভীর হলে এটি অপ্রয়োজনীয় শাখা তৈরি করে, যাকে ওভারফিটিং বলে। এজন্য প্রুনিং (Pruning) বা ছাঁটাই ব্যবহার করা হয়। এটি অপ্রয়োজনীয় শাখাগুলো কেটে দেয়, যাতে মডেল সহজ হয় এবং নতুন ডেটার সাথে ভালোভাবে কাজ করে।

ডিসিসন ট্রি Python-এর স্কাই-লার্ন (Scikit-learn) লাইব্রেরি ব্যবহার করে বাস্তবায়ন করা হয়। নিচে স্কিকিট-লার্ন ব্যবহার করে ডিসিশন ট্রি তৈরির একটি সহজ কোড দেখানো হয়েছে। এখানে আমরা আইরিস ডেটাসেট ব্যবহার করব, যা ফুলের প্রজাতি সনাক্ত করতে ব্যবহৃত হয়। প্রথমে ডেটাসেট লোড করা হয়, তারপর তা ট্রেনিং এবং টেস্ট সেটে ভাগ (একটু পরেই তা ব্যাখ্যা করছি) করা হয়। এরপর ডিসিশন ট্রি ক্লাসিফায়ার দিয়ে মডেল ট্রেন করানো হয়। মডেলের সঠিকতা যাচাই এবং টেস্ট ডেটা দিয়ে প্রেডিকশন করার পাশাপাশি ডিসিশন ট্রি ভিজুয়ালাইজও করা হয়েছে।

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier, plot_tree
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
# ধাপ ১: ডেটাসেট লোড
data = load_iris()
X = data.data  # ফিচার (ফুলের বৈশিষ্ট্য)
y = data.target  # লেবেল (ফুলের প্রজাতি)
# ধাপ ২: ডেটাসেট ভাগ করা (ট্রেনিং এবং টেস্ট সেটে)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# ধাপ ৩: ডিসিশন ট্রি মডেল তৈরি এবং ট্রেনিং
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
# ধাপ ৪: মডেলের সঠিকতা যাচাই
accuracy = model.score(X_test, y_test)
print(f"মডেলের একুরেসি: {accuracy*100:.2f}%")
# ধাপ ৫: ডিসিশন ট্রি ভিজুয়ালাইজ
plt.figure(figsize=(12, 8))
plot_tree(model, feature_names=data.feature_names, class_names=data.target_names, filled=True)
plt.show()

ডিসিসন ট্রি এমন একটি মডেল যা প্রশ্ন করে ডেটা বিশ্লেষণ করে। এন্ট্রপি কমিয়ে এটি ডেটার প্যাটার্ন বের করে। আর অপ্রয়োজনীয় শাখা ছেঁটে এটিকে কার্যকর রাখা হয়। বাস্তব জীবনে সমস্যার সমাধানে এটি একটি শক্তিশালী হাতিয়ার।

38 thoughts on “ডিসিসন ট্রি”

  1. Dice games are so much fun – the math behind them is fascinating! Seeing platforms like sugal777 casino embrace variety, like those fishing games, is great. A safe, playful environment is key for enjoying any game! ✨

  2. Yo, C77com fam! Just checked out the site, and it’s looking fresh. Easy to navigate, and the games are legit. Definitely worth a spin! Check it out here c77com.

  3. Spending money on any gaming is always daunting, but kubetkucasino made me feel right at home. Everything felt so accessible to the normal bloke from the UK, like myself, meaning I didn’t end up losing all my money – what a result!

  4. Interesting points! Responsible gaming is key, and platforms like minibet are gaining traction in Asia. Ensuring legitimacy & security is crucial for players exploring new online casino options – good to see regulation discussed!

  5. Just signed up on 89win1 and the signup bonus was pretty sweet! Been having some fun checking things out. Might stick around for a bit. Check them out yourself 89win1.

  6. Alright, listen up! jljl88club is where it’s at if you’re looking for a good time. They’ve got a decent selection of games and it’s pretty easy to navigate. Definitely worth a look. See for yourself: jljl88club

  7. Downloaded the 79betapp the other day. Gotta say, it’s smoother than I expected! Quick loading times and everything’s laid out clearly. Give it a whirl! Find it here: 79betapp

  8. Alright, folks! I gave vn6vip a shot and honestly? It’s not bad at all. Quick payouts and plenty of games to keep things interesting. Definitely worth checking out if you’re looking for something new. Check it out yourself! vn6vip

  9. Interesting read! Competitive gaming is definitely heating up, especially in the Philippines. Seeing platforms like JL33 prioritize security & fair play is key. Need to jl33 login to check out those tournaments – sounds intense! Always gamble responsibly, though. 😉

  10. Okay, so 77ball – I gave it a shot! Honestly, it’s pretty decent. Didn’t win big (yet!), but the games were smooth and easy to understand. Worth checking out if you’re looking for something new. Learn more here: 77ball

  11. Yo, TV88bet! Been playin’ here a bit. Got some decent luck on the slots. Layout’s alright, nothin’ fancy but it does the job. Could use a bit more variety in the games, to be honest. Still, a solid enough spot to gamble. Check it out: tv88bet

  12. 711php Online Casino Philippines: Top Slot Games, Easy Register & Login, and Official App Download. Join 711php Online Casino Philippines for top 711php slot games. Experience easy 711php register and 711php login processes. Secure the official 711php app download for mobile play. Start winning today at the premier 711php online casino! visit: 711php

  13. HP88game, pretty cool site. I like how easy it is to navigate, and they have a bunch of games I’ve never seen before. Withdrawal process was smooth, so that’s a big plus for me. Check it out if you’re looking for something new via hp88game.

  14. MX37, another one of those sites. Nothing really stands out, but also nothing really wrong with it. If you are looking for something simple this is it! More information is on mx37

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top