R প্রোগ্রামিং: Classification এবং Clustering এর উদাহরণ
Classification এবং Clustering হল ডেটা মাইনিং ও মেশিন লার্নিংয়ের গুরুত্বপূর্ণ টাস্ক। Classification ব্যবহার করে আমরা নির্দিষ্ট শ্রেণী বা লেবেল প্রেডিক্ট করি, যেখানে Clustering ব্যবহার করে আমরা ডেটাকে গ্রুপে বিভক্ত করি। নিচে এই দুটি কৌশলের উদাহরণ দেওয়া হয়েছে।
১. Classification (শ্রেণীবিভাগ)
Classification হল একটি supervised learning পদ্ধতি, যেখানে ডেটার আউটপুট লেবেল (label) পূর্বে জানা থাকে এবং মডেলটি ডেটার ইনপুট ফিচারগুলো থেকে আউটপুট (লেবেল) প্রেডিক্ট করতে শেখে। Logistic Regression, Decision Trees, Random Forest, এবং Support Vector Machine (SVM) হল কিছু জনপ্রিয় classification মডেল।
১.১ Logistic Regression Example
ধরা যাক, আমাদের কাছে একটি ডেটাসেট রয়েছে যেখানে একজন ব্যক্তি age, income, এবং education এর উপর ভিত্তি করে loan approval (হ্যাঁ/না) শ্রেণী করা হবে। আমরা logistic regression ব্যবহার করব।
# ডেটাসেট তৈরি
data <- data.frame(
age = c(25, 30, 35, 40, 45),
income = c(30000, 40000, 50000, 60000, 70000),
education = c("Bachelor", "Master", "Bachelor", "PhD", "Master"),
loan_approval = c("No", "Yes", "Yes", "Yes", "No")
)
# ডেটাকে ফ্যাক্টরে রূপান্তর
data$loan_approval <- factor(data$loan_approval)
# Logistic Regression মডেল তৈরি
model <- glm(loan_approval ~ age + income + education, family = binomial(), data = data)
# মডেল এর সারাংশ
summary(model)
# প্রেডিকশন করা
new_data <- data.frame(age = 32, income = 45000, education = "Master")
prediction <- predict(model, new_data, type = "response")
# প্রেডিকশন আউটপুট
predictionএখানে, glm() ফাংশন ব্যবহার করে logistic regression মডেল তৈরি করা হয়েছে এবং আমরা loan_approval লেবেলটি প্রেডিক্ট করেছি।
১.২ Random Forest Example
আরেকটি জনপ্রিয় classification মডেল হল Random Forest। এটি অনেকগুলো decision tree নিয়ে কাজ করে এবং প্রতিটি tree এর ফলাফল থেকে একটি চূড়ান্ত সিদ্ধান্ত নেয়।
# randomForest প্যাকেজ লোড করা
install.packages("randomForest")
library(randomForest)
# ডেটাসেট তৈরি
data <- data.frame(
age = c(25, 30, 35, 40, 45),
income = c(30000, 40000, 50000, 60000, 70000),
education = c("Bachelor", "Master", "Bachelor", "PhD", "Master"),
loan_approval = c("No", "Yes", "Yes", "Yes", "No")
)
# ফ্যাক্টর রূপান্তর
data$loan_approval <- factor(data$loan_approval)
# Random Forest মডেল তৈরি
model_rf <- randomForest(loan_approval ~ age + income + education, data = data)
# মডেল এর সারাংশ
print(model_rf)
# প্রেডিকশন করা
prediction_rf <- predict(model_rf, new_data)
# প্রেডিকশন আউটপুট
prediction_rfএখানে, randomForest() ফাংশন ব্যবহার করে Random Forest মডেল তৈরি করা হয়েছে এবং প্রেডিকশন করা হয়েছে।
২. Clustering (ক্লাস্টারিং)
Clustering হল একটি unsupervised learning পদ্ধতি, যেখানে ডেটার আউটপুট লেবেল না থাকার কারণে ডেটাকে গ্রুপে (cluster) বিভক্ত করা হয়, যাতে প্রতিটি গ্রুপের মধ্যে উপাদানগুলোর মধ্যে মিল থাকে। K-means clustering এবং Hierarchical clustering হল জনপ্রিয় clustering পদ্ধতি।
২.১ K-Means Clustering Example
K-means clustering হল একটি সাধারণ ক্লাস্টারিং পদ্ধতি, যেখানে ডেটাকে Kটি ক্লাস্টারে বিভক্ত করা হয়।
# K-means clustering পদ্ধতি ব্যবহার
set.seed(123) # ফলাফল পুনরায় তৈরি করার জন্য
# একটি ডেটাসেট তৈরি
data <- data.frame(
x = c(1, 2, 1.5, 8, 8.5, 9, 25, 30, 28, 26),
y = c(1, 1.5, 1, 8, 9, 8.5, 30, 32, 29, 28)
)
# K-means clustering করা
kmeans_result <- kmeans(data, centers = 3)
# ক্লাস্টার অ্যাসাইনমেন্ট দেখানো
kmeans_result$cluster
# কাস্টম গ্রাফে ক্লাস্টার দেখানো
plot(data$x, data$y, col = kmeans_result$cluster, pch = 19, main = "K-Means Clustering")এখানে, kmeans() ফাংশন ব্যবহার করে ডেটাকে ৩টি ক্লাস্টারে বিভক্ত করা হয়েছে এবং kmeans_result$cluster দিয়ে প্রতিটি পয়েন্টের ক্লাস্টার অ্যাসাইনমেন্ট দেখা হয়েছে।
২.২ Hierarchical Clustering Example
Hierarchical clustering হল এমন একটি পদ্ধতি যেখানে ডেটা গাছের আকারে (dendrogram) শ্রেণীবদ্ধ করা হয়।
# Hierarchical clustering পদ্ধতি ব্যবহার
data <- data.frame(
x = c(1, 2, 1.5, 8, 8.5, 9, 25, 30, 28, 26),
y = c(1, 1.5, 1, 8, 9, 8.5, 30, 32, 29, 28)
)
# ডিস্টেন্স ম্যাট্রিক্স তৈরি
dist_matrix <- dist(data)
# হায়ারার্কিকাল ক্লাস্টারিং করা
hclust_result <- hclust(dist_matrix)
# ডেনড্রোগ্রাম তৈরি করা
plot(hclust_result, main = "Hierarchical Clustering")এখানে, hclust() ফাংশন দিয়ে ডেটার জন্য হায়ারার্কিকাল ক্লাস্টারিং করা হয়েছে এবং plot() ফাংশন দিয়ে ডেনড্রোগ্রাম তৈরি করা হয়েছে।
সারসংক্ষেপ
- Classification: এটি একটি supervised learning পদ্ধতি, যেখানে একটি আউটপুট লেবেল পূর্বে জানা থাকে এবং ডেটার ইনপুট ফিচারগুলো থেকে লেবেল প্রেডিক্ট করা হয়। উদাহরণস্বরূপ, Logistic Regression এবং Random Forest।
- Clustering: এটি একটি unsupervised learning পদ্ধতি, যেখানে ডেটার আউটপুট লেবেল না থাকার কারণে ডেটাকে গ্রুপে বিভক্ত করা হয়। উদাহরণস্বরূপ, K-means clustering এবং Hierarchical clustering।
এই পদ্ধতিগুলোর মাধ্যমে আপনি ডেটার শ্রেণীবিভাগ এবং গ্রুপিং করতে পারেন, যা মেশিন লার্নিং মডেল তৈরির জন্য খুবই কার্যকরী।
Read more