সরাসরি প্রধান সামগ্রীতে চলে যান

র‍্যান্ডম ফরেস্ট (Random Forest) মেশিন লার্নিং টিউটোরিয়াল

ভূমিকা

মেশিন লার্নিংয়ের দুনিয়ায় 'র‍্যান্ডম ফরেস্ট' (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)

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

তারাবিহ সমগ্র - প্রথম আলো

রামাদান ২০২৪ উপলক্ষে প্রথম আলোর নিয়মিত আয়োজন - খতমে তারাবিহ'র সূরা গুলো নিয়ে সংক্ষিপ্ত আলোচনা'র লিংক  নিচে দেওয়া হলো।  লিংকে ক্লিক করলেই আপনাকে আলোচনা তে নিয়ে যাবে। তারাবিহ: ১ | একটি খুন ও গাভি নিয়ে বনি ইসরাইলের বাড়াবাড়ি তারাবিহ: ২ | নারীর মর্যাদা ও অধিকার এবং অলৌকিক তিন ঘটনা তারাবিহ: ৩ | যে ১৪ নারীকে বিয়ে করা হারাম তারাবিতে: ১২ | মহানবী (সা.)–এর আকাশভ্রমণ এবং আসহাবে কাহাফের কাহিনি

রেডমি নোট ৯ এর বিস্তারিত | Redmi Note 9 in Bangla

৩০ এপ্রিল, ২০২০ এ শাওমির ঘোষনা আসে এই ফোনটি নিয়ে। কিন্তু ফোনটি মার্কেটে আসে মে মাসের শেষের দিকে৷ করোনার কারনে ফোনটি বাংলাদেশে আসতে আরো সময় নেয়। বর্তমানে বাংলাদেশে আন অফিশিয়াল ভাবে ফোনটি পাওয়া যাচ্ছে৷ বাংলাদেশে অফিশিয়াল ভাবে এখনো ফোনটি আসার তথ্য নেয়৷ চলুন ফোনটি নিয়ে বিস্তারিত আলোচনা করা যাক। শাওমি নোট সিরিজের ফোন বের করে এদের রেডমি নামে সাব ব্যান্ড৷ এদের কাজ হল এই নোট সিরিজ নিয়ে কাজ করা৷ প্রতিবছর নোট সিরিজের ১/২ টা ফোন বাজারে আসে। সাথে সেই ফোন গুলার বিভিন্ন ভার্সন (যেমন - র‍্যাম ও রমের ভিত্তিতে) বাজারে আসে। এই বছরও তারা রেডমি সিরিজের নোট ৯ বাজারে আনে। এই বছর হয়তো এই সিরিজের আরো ফোন বাজারে আসবে। ডিস্পলেঃ ফোনটির ডিসপ্লে সাইজ ৬.৫৩ ইঞ্চি। এতে আইপিএস এলসিডি ডিসপ্লে ব্যবহার করা হয়েছে। এই ফোনের ডিসপ্লে প্রটেকশন হিসেবে আছে গরিলা গ্লাস ফাইভ। স্ক্রিন আর ফোনের বডির অনুপাত প্রায় ৮৩.৫%। এই ফোনের ডিসপ্লে ফুলএইচডি মানে ১০৮০পি। এই ডিস্পলের দৈর্ঘ্য ১৯.৫ একক এবং প্রস্থ হল ৯ একক। এত বড় ফোনের কারনে এই ফোনের পিপি আই ডেনসিটি ৩৯৫। যা একটু কম। প্লাটফর্মঃ এই ফোনের অপারেটিং সিস্টেম এন্ড্রয়েড ১০ এবং এর...