Decision Trees এবং Random Forests
Decision Trees এবং Random Forests হল জনপ্রিয় মেশিন লার্নিং অ্যালগরিদম যা শ্রেণিবিন্যাস (classification) এবং প্রক্ষেপণ (regression) উভয় কাজেই ব্যবহৃত হয়। Decision Trees ডেটাকে গাছের মতো বিভিন্ন শাখায় বিভক্ত করে সিদ্ধান্ত নেয়, যেখানে Random Forests অনেকগুলো Decision Tree একত্রে ব্যবহার করে একটি শক্তিশালী মডেল তৈরি করে।
Decision Trees
Decision Tree একটি গাছের মতো কাঠামো, যা বিভিন্ন শর্ত (conditions) ব্যবহার করে ডেটাকে একাধিক শাখায় বিভক্ত করে। প্রতিটি শাখা একটি শর্তকে প্রতিনিধিত্ব করে এবং শেষের পাতাগুলি (leaves) সিদ্ধান্ত বা আউটপুট হিসেবে কাজ করে।
Decision Tree এর মূল উপাদান:
- Root Node: Decision Tree-এর প্রথম বা শুরুর নোড, যা ডেটার প্রথম বিভাজন নির্ধারণ করে।
- Decision Nodes: এর পরবর্তী নোডগুলি, যেখানে বিভিন্ন শর্ত অনুযায়ী ডেটা বিভক্ত হয়।
- Leaf Nodes: Decision Tree-এর শেষের নোড, যেখানে সিদ্ধান্ত বা আউটপুট প্রদান করা হয়।
R-এ Decision Tree তৈরি করা
R-এ Decision Tree তৈরি করার জন্য rpart প্যাকেজ ব্যবহার করা হয়।
# rpart প্যাকেজ ইন্সটল এবং লোড করা
install.packages("rpart")
library(rpart)
# উদাহরণ ডেটাসেট ব্যবহার করা
data(iris)
# Decision Tree মডেল তৈরি করা
tree_model <- rpart(Species ~ ., data = iris, method = "class")
# Decision Tree প্লট করা
plot(tree_model)
text(tree_model, use.n = TRUE)এখানে rpart() ফাংশনের মাধ্যমে Decision Tree মডেল তৈরি করা হয়েছে। plot() এবং text() ফাংশন দিয়ে Decision Tree প্লট এবং লেবেল করা হয়েছে।
Random Forests
Random Forest হল Decision Trees-এর একটি ensemble মডেল, যেখানে একাধিক Decision Tree তৈরি করা হয় এবং তাদের সম্মিলিত ভবিষ্যদ্বাণী (prediction) গ্রহণ করা হয়। এটি সাধারণত Decision Trees থেকে আরও নির্ভুল এবং কার্যকরী ফলাফল প্রদান করে কারণ এটি Overfitting কমায়।
Random Forest এর মূল বৈশিষ্ট্য:
- Bagging (Bootstrap Aggregating): বিভিন্ন Decision Tree তৈরি করার জন্য ডেটার random subsets নির্বাচন করা হয়।
- Random Feature Selection: প্রতিটি Decision Tree-তে random feature নির্বাচন করা হয়, যা আরও বৈচিত্র্য তৈরি করে।
- Ensemble Prediction: প্রতিটি Decision Tree-র সম্মিলিত ভোট বা গড় নেওয়া হয়।
R-এ Random Forest তৈরি করা
R-এ Random Forest তৈরি করার জন্য randomForest প্যাকেজ ব্যবহার করা হয়।
# randomForest প্যাকেজ ইন্সটল এবং লোড করা
install.packages("randomForest")
library(randomForest)
# উদাহরণ ডেটাসেট ব্যবহার করা
data(iris)
# Random Forest মডেল তৈরি করা
rf_model <- randomForest(Species ~ ., data = iris, ntree = 100)
# মডেল সারাংশ দেখা
print(rf_model)এখানে randomForest() ফাংশনের মাধ্যমে Random Forest মডেল তৈরি করা হয়েছে। ntree প্যারামিটারটি কতগুলো Decision Tree তৈরি করা হবে তা নির্ধারণ করে।
Decision Tree এবং Random Forest এর মূল্যায়ন
Decision Tree এবং Random Forest মডেলের কার্যকারিতা মূল্যায়নের জন্য confusion matrix এবং accuracy ব্যবহার করা হয়।
উদাহরণ:
# Decision Tree এর প্রেডিকশন
tree_pred <- predict(tree_model, iris, type = "class")
tree_cm <- table(tree_pred, iris$Species)
# Random Forest এর প্রেডিকশন
rf_pred <- predict(rf_model, iris)
rf_cm <- table(rf_pred, iris$Species)
# Confusion Matrix প্রিন্ট করা
print("Decision Tree Confusion Matrix")
print(tree_cm)
print("Random Forest Confusion Matrix")
print(rf_cm)
# Accuracy নির্ধারণ করা
tree_accuracy <- sum(diag(tree_cm)) / sum(tree_cm)
rf_accuracy <- sum(diag(rf_cm)) / sum(rf_cm)
print(paste("Decision Tree Accuracy:", tree_accuracy))
print(paste("Random Forest Accuracy:", rf_accuracy))এখানে Decision Tree এবং Random Forest উভয়ের জন্য confusion matrix এবং accuracy বের করা হয়েছে, যা মডেলের কার্যকারিতা মূল্যায়নে সহায়ক।
Decision Trees এবং Random Forests এর তুলনা
| বৈশিষ্ট্য | Decision Tree | Random Forest |
|---|---|---|
| মূল কাঠামো | একটি গাছ ভিত্তিক কাঠামো | একাধিক Decision Tree-র সম্মিলিত কাঠামো |
| ডেটা বিভাজন পদ্ধতি | একক শর্ত অনুসারে বিভাজন | Bootstrap এবং Random Feature Selection |
| Overfitting এর সমস্যা | উচ্চ প্রবণতা | কম প্রবণতা |
| গণনা ও জটিলতা | কম জটিল, দ্রুত | উচ্চ জটিল, বেশি গণনা প্রয়োজন |
| উৎপাদিত ফলাফল | একক Decision, সহজ ব্যাখ্যা | সম্মিলিত ফলাফল, বেশি নির্ভুলতা |
সারসংক্ষেপ
- Decision Trees: একটি সহজ এবং স্বচ্ছ কাঠামো যা শ্রেণীবিন্যাস এবং প্রক্ষেপণের জন্য ব্যবহৃত হয়। তবে এটি Overfitting এর জন্য ঝুঁকিপূর্ণ।
- Random Forests: Decision Trees এর একটি ensemble পদ্ধতি যা অনেক Decision Tree একত্রে ব্যবহার করে মডেলের নির্ভুলতা এবং স্থায়ীত্ব বাড়ায়। এটি Decision Trees থেকে উন্নত ও নির্ভুল ফলাফল প্রদান করে।
এই পদ্ধতিগুলি R প্রোগ্রামিং ব্যবহার করে ডেটার শ্রেণীবিন্যাস এবং প্রক্ষেপণে কার্যকরী ভূমিকা পালন করে এবং Decision Trees ও Random Forests মডেলের মাধ্যমে আরও নির্ভুল ও স্থায়ী ফলাফল প্রদান করা সম্ভব।
Read more