ভূমিকা
মেশিন লার্নিংয়ের দুনিয়ায় 'র্যান্ডম ফরেস্ট' (Random Forest) খুব জনপ্রিয় একটি অ্যালগরিদম। এটি মূলত রিগ্রেশন (Regression) এবং ক্লাসিফিকেশন (Classification) উভয় ক্ষেত্রেই ব্যবহৃত হয়। সহজ কথায় বলতে গেলে, র্যান্ডম ফরেস্ট হলো অনেকগুলো ডিসিশন ট্রি (Decision Tree)-এর একটি সমষ্টি। আজকের এই গাইডে আমরা সহজ বাংলায় বুঝব কীভাবে এটি কাজ করে এবং কীভাবে পাইথন কোডিংয়ের মাধ্যমে একে ব্যবহার করা যায়।
ভিডিও রেফারেন্স
এই বিষয়ের বিস্তারিত আলোচনার জন্য আপনারা কোডবেসিকস-এর এই ভিডিওটি দেখতে পারেন: র্যান্ডম ফরেস্ট টিউটোরিয়াল - https://www.youtube.com/watch?v=ok2s1vV9XW0
র্যান্ডম ফরেস্ট কী?
'ফরেস্ট' মানে হলো জঙ্গল, আর জঙ্গলে থাকে অনেক গাছ। এখানে একেকটি 'গাছ' বা 'ট্রি' হলো একটি ডিসিশন ট্রি। যখন আমরা একটি মাত্র ডিসিশন ট্রির বদলে অনেকগুলো ডিসিশন ট্রি ব্যবহার করি এবং তাদের সবার মতামতের ওপর ভিত্তি করে চূড়ান্ত সিদ্ধান্ত নিই, তখনই তাকে বলা হয় র্যান্ডম ফরেস্ট।
সহজ উদাহরণ: ধরুন, আপনি কোনো কিছু কেনার আগে আপনার ৫ জন বন্ধুর কাছে পরামর্শ চাইলেন। সবাই তাদের নিজ নিজ যুক্তি দিল। এখন আপনি কি করবেন? আপনি সবার মতামতের ওপর ভিত্তি করে দেখবেন বেশিরভাগ বন্ধু কী বলছে (Majority Vote)। র্যান্ডম ফরেস্টও ঠিক এই কাজটিই করে। এটি অনেকগুলো ডিসিশন ট্রি তৈরি করে এবং সবগুলোর উত্তরের গড় বা সংখ্যাগরিষ্ঠতা নিয়ে চূড়ান্ত ফলাফল দেয়।
পাইথনে র্যান্ডম ফরেস্টের ব্যবহার
আমরা এখানে sklearn-এর digits ডেটাসেট ব্যবহার করে হাতে লেখা সংখ্যা শনাক্ত করার একটি মডেল তৈরি করব।
কোড এবং ব্যাখ্যা:
Python
# লাইব্রেরি ইমপোর্ট করা
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_digits
# ডেটাসেট লোড করা
digits = load_digits()
# ডেটাকে ট্রেইনিং এবং টেস্টিং সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.2)
# র্যান্ডম ফরেস্ট মডেল তৈরি (এখানে ২০টি গাছ বা ট্রি ব্যবহার করা হয়েছে)
model = RandomForestClassifier(n_estimators=20)
# মডেল ট্রেইন করা
model.fit(X_train, y_train)
# মডেলের একুরেসি বা নির্ভুলতা পরীক্ষা করা
print(model.score(X_test, y_test))
কোড ব্যাখ্যা: ১. RandomForestClassifier: এটিই আমাদের মূল অ্যালগরিদম। ২. n_estimators=20: এটি দিয়ে বোঝানো হচ্ছে আমরা ২০টি ডিসিশন ট্রি ব্যবহার করছি। আপনি এই সংখ্যা বাড়িয়ে বা কমিয়ে মডেলের পারফরম্যান্স যাচাই করতে পারেন। ৩. model.fit: এটি আমাদের ডেটা ব্যবহার করে মডেলকে শিখতে সাহায্য করে। ৪. model.score: মডেলটি টেস্ট ডেটায় কতটুকু সঠিকভাবে কাজ করছে তা দেখা যায়।
কনফিউশন ম্যাট্রিক্স (Confusion Matrix)
মডেলটি কোথায় ভুল করছে তা বোঝার জন্য 'কনফিউশন ম্যাট্রিক্স' দারুণ একটি উপায়। এটি একটি টেবিল বা গ্রাফের মতো, যেখানে দেখা যায় মডেলটি কোন সংখ্যাকে ভুল করে অন্য সংখ্যা বলছে। যেমন—হয়তো মডেলটি ৮-কে ১ হিসেবে ভুল করছে। এটি দেখলে বোঝা যায় মডেলের কোথায় উন্নতি করা দরকার।
বিশ্লেষণ এবং আমার চিন্তা
র্যান্ডম ফরেস্ট একটি অত্যন্ত শক্তিশালী এবং কার্যকর অ্যালগরিদম। এর প্রধান সুবিধা হলো এটি ওভারফিটিং (Overfitting - অর্থাৎ ডেটা খুব বেশি মুখস্থ করে ফেলা) সমস্যা খুব ভালোভাবে নিয়ন্ত্রণ করতে পারে, যা একটি সাধারণ ডিসিশন ট্রিতে খুব সহজেই হয়ে যায়।
বাস্তবতা ও পরামর্শ:
-
র্যান্ডম ফরেস্ট অনেক বড় ডেটাসেটের জন্য খুব ভালো কাজ করে।
-
শুরুতেই অনেক বেশি গাছ বা
n_estimatorsনা দিয়ে ছোট সংখ্যা দিয়ে শুরু করুন, এরপর ধীরে ধীরে বাড়ান। -
আপনার যদি বুঝতে সমস্যা হয়, তবে প্রথমে অবশ্যই ডিসিশন ট্রি কীভাবে কাজ করে তা একবার দেখে নেবেন।
আপনি যদি ডেটা সায়েন্সে নতুন হন, তবে iris বা digits ডেটাসেট দিয়ে নিজে কোডগুলো প্র্যাকটিস করুন। ভুল হলে ভয় পাওয়ার কিছু নেই, কারণ এই প্র্যাকটিসই আপনাকে দক্ষ করে তুলবে। শুভকামনা!
[
Machine Learning Tutorial Python - 11 Random Forest
codebasics · 448K views
](http://www.youtube.com/watch?v=ok2s1vV9XW0)

মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন
আপনার সমস্যাটি কমেন্ট করে আমাদের জানান :-d