Big Data and Analytics Clustering Techniques (K-Means, Hierarchical Clustering) গাইড ও নোট

444

Clustering বা ক্লাস্টারিং একটি অরগানাইজড ডেটা মাইনিং টেকনিক, যা ডেটার মধ্যে গ্রুপ বা ক্লাস্টার তৈরি করার জন্য ব্যবহৃত হয়। এটি একটি অ-নির্দেশিত (unsupervised) শিখন প্রক্রিয়া, যেখানে ডেটার প্যাটার্ন বা স্ট্রাকচার চিহ্নিত করার জন্য কোনো লেবেল বা আউটপুট দরকার হয় না। ক্লাস্টারিংয়ের প্রধান উদ্দেশ্য হল একই বৈশিষ্ট্যবিশিষ্ট ডেটাকে একটি গ্রুপে (ক্লাস্টারে) রাখা এবং বিভিন্ন বৈশিষ্ট্যের ডেটাকে আলাদা গ্রুপে বিভক্ত করা।

আর প্রোগ্রামিং-এ দুটি জনপ্রিয় ক্লাস্টারিং পদ্ধতি হলো: K-Means Clustering এবং Hierarchical Clustering


K-Means Clustering

K-Means ক্লাস্টারিং একটি অত্যন্ত জনপ্রিয় ক্লাস্টারিং অ্যালগরিদম, যা ডেটাকে নির্দিষ্ট সংখ্যক কিউ (K) গ্রুপে বিভক্ত করে। এটি একটি নির্দিষ্ট সংখ্যক ক্লাস্টারের জন্য ডেটাকে ইটের মতো সাজানোর চেষ্টা করে এবং ক্লাস্টারের মধ্যে ইনট্রা-সদস্য (সদস্যদের মধ্যে) সাদৃশ্য (similarity) এবং আন্তঃ-ক্লাস্টার (ক্লাস্টারগুলোর মধ্যে) পার্থক্য (difference) সর্বাধিক করে।

K-Means Algorithm Steps:

  1. K এর মান নির্বাচন করা: প্রথমে ক্লাস্টারের সংখ্যা K নির্ধারণ করতে হবে।
  2. Centroids Initialization: Kটি ক্লাস্টারের জন্য একে অপর থেকে দূরে শুরু করার জন্য Kটি কেন্দ্র (centroid) নির্বাচন করা হয়।
  3. Assign points to clusters: প্রতিটি পয়েন্ট ক্লাস্টারের কাছে সবচেয়ে কাছের কেন্দ্রের কাছে যুক্ত হয়।
  4. Recompute centroids: ক্লাস্টারের নতুন কেন্দ্র পুনরায় গণনা করা হয়।
  5. Repeat steps: এটি তখন পর্যন্ত চলে যতক্ষণ না ক্লাস্টারগুলো স্থির হয়ে যায়।

K-Means Clustering in R

আর-এ K-Means ক্লাস্টারিং প্রয়োগ করতে kmeans() ফাংশন ব্যবহার করা হয়।

উদাহরণ:

# ডেটাসেট তৈরি
set.seed(123)  # র্যান্ডম ভ্যালু নিয়ন্ত্রণে রাখা
data <- data.frame(
  x = c(1, 2, 6, 8, 3, 9, 4, 7),
  y = c(1, 1, 6, 8, 3, 9, 4, 7)
)

# K-Means ক্লাস্টারিং প্রয়োগ করা (2টি ক্লাস্টার)
kmeans_result <- kmeans(data, centers = 2)

# রেজাল্ট দেখানো
print(kmeans_result)

# ক্লাস্টারের মান চিত্র তৈরি করা
plot(data$x, data$y, col = kmeans_result$cluster)
points(kmeans_result$centers, col = "red", pch = 8, cex = 2)

এখানে:

  • centers = 2: আমরা দুটি ক্লাস্টার চাচ্ছি।
  • kmeans_result$cluster: ক্লাস্টারের সংখ্যা নির্দেশ করে।
  • kmeans_result$centers: ক্লাস্টারগুলোর কেন্দ্রের পজিশন দেখায়।

K-Means এর সুবিধা:

  • এটি দ্রুত এবং স্কেলযোগ্য (scalable)।
  • একাধিক পরিমাপের জন্য ব্যবহার করা যায়।

K-Means এর সীমাবদ্ধতা:

  • K মানটি আগে থেকে নির্ধারণ করতে হয়।
  • এলিপটিকাল ক্লাস্টারের জন্য এটি সঠিক কাজ নাও করতে পারে।

Hierarchical Clustering

Hierarchical Clustering একটি ক্লাস্টারিং পদ্ধতি যা একটি ডেটা সেটের মধ্যে শ্রেণীভিত্তিক গাছ (dendrogram) তৈরি করে। এই গাছের মাধ্যমে বিভিন্ন পর্যায়ে ডেটাকে গ্রুপ করা হয়, যাতে একটি মোর (more) সাধারণ গ্রুপ থেকে আরও নির্দিষ্ট গ্রুপে বিভক্ত করা হয়। এর দুটি প্রধান ধরন রয়েছে:

  1. Agglomerative (Bottom-Up): এখানে প্রতিটি ডেটা পয়েন্ট প্রথমে একটি একক ক্লাস্টার হিসেবে থাকে, এবং পরবর্তী পর্যায়ে সেই ক্লাস্টারগুলো একত্রিত হয়।
  2. Divisive (Top-Down): এখানে ডেটাসেটকে প্রথমে একটি একক ক্লাস্টারে রেখে, ধাপে ধাপে বিভক্ত করা হয়।

Dendrogram এর মাধ্যমে ক্লাস্টারিং ফলাফল দেখানো হয়, যা গাছের আকারে থাকে এবং প্রতিটি স্তরে ক্লাস্টারগুলোর মাপ দেখায়।

Hierarchical Clustering in R

আর-এ hclust() ফাংশন ব্যবহার করে হায়ারার্কিকাল ক্লাস্টারিং প্রয়োগ করা হয়।

উদাহরণ:

# ডেটাসেট তৈরি
data <- data.frame(
  x = c(1, 2, 6, 8, 3, 9, 4, 7),
  y = c(1, 1, 6, 8, 3, 9, 4, 7)
)

# Euclidean distance ম্যাট্রিক্স তৈরি
dist_data <- dist(data)

# হায়ারার্কিকাল ক্লাস্টারিং প্রয়োগ করা
hclust_result <- hclust(dist_data)

# Dendrogram চিত্র তৈরি করা
plot(hclust_result)

এখানে:

  • dist(): ডেটার মধ্যে Euclidean দূরত্ব গণনা করে।
  • hclust(): হায়ারার্কিকাল ক্লাস্টারিং প্রয়োগ করে।
  • plot(): Dendrogram চিত্র তৈরি করে।

Hierarchical Clustering এর সুবিধা:

  • কোনো পূর্বধারণা নেই (ডেটার সংখ্যার প্রয়োজন নেই)।
  • Dendrogram এর মাধ্যমে খুবই দৃশ্যমান এবং স্পষ্ট গ্রুপিং দেখায়।

Hierarchical Clustering এর সীমাবদ্ধতা:

  • বড় ডেটাসেটের জন্য এটি খুবই ধীরগতির হতে পারে।
  • এতে অনেক বেশি গণনা লাগে।

সারাংশ

K-Means Clustering এবং Hierarchical Clustering দুটি গুরুত্বপূর্ণ ক্লাস্টারিং পদ্ধতি যা আর প্রোগ্রামিংয়ে ডেটাকে গ্রুপ করার জন্য ব্যবহৃত হয়। K-Means দ্রুত এবং দক্ষ হলেও, এটি আগে থেকে K এর মান নির্ধারণ করতে হয় এবং এলিপটিকাল ক্লাস্টারের জন্য সঠিক নাও হতে পারে। অন্যদিকে, Hierarchical Clustering ডেটার মধ্যে সম্পর্কের ভিত্তিতে শ্রেণীভিত্তিক গাছ তৈরি করে, এবং এটি কোনো পূর্বধারণা ছাড়াই কাজ করতে পারে, তবে এটি বড় ডেটাসেটে ধীরগতির হতে পারে। এই দুটি পদ্ধতি বিভিন্ন ধরনের ডেটা বিশ্লেষণ এবং গোষ্ঠীভিত্তিক কাজের জন্য কার্যকরী।

Content added By
Promotion

Are you sure to start over?

Loading...