Unsupervised Learning এর ধারণা
Unsupervised Learning হল মেশিন লার্নিংয়ের একটি শাখা যেখানে ডেটাতে কোনও লেবেল (output labels) বা আউটপুট প্রদান করা হয় না। এই প্রকারের লার্নিংয়ে মডেল ডেটার মধ্যে গোপন প্যাটার্ন বা সম্পর্ক খুঁজে বের করার চেষ্টা করে। এক্ষেত্রে, মডেলটি শুধুমাত্র ইনপুট ডেটা দিয়ে কাজ করে এবং তার মধ্যে সংজ্ঞায়িত সম্পর্ক বা গঠন শনাক্ত করে।
Unsupervised Learning এর দুটি প্রধান কাজ হলো:
- Clustering: ডেটাকে গ্রুপে ভাগ করা, যেখানে প্রতিটি গ্রুপের মধ্যে সাদৃশ্য থাকে।
- Association: ডেটার মধ্যে সম্পর্ক বা অ্যাসোসিয়েশন চিহ্নিত করা, যেমন কোন আইটেমগুলি একসাথে কেনা হয় (market basket analysis)।
Unsupervised Learning সাধারণত তখন ব্যবহৃত হয় যখন আমাদের কাছে আউটপুট লেবেল থাকে না বা নতুন গ্রুপ বা সম্পর্ক শনাক্ত করতে হয়। এতে মডেলটি ডেটার বৈশিষ্ট্য অনুযায়ী গ্রুপিং বা সম্পর্ক খুঁজে বের করে।
Unsupervised Learning এর উদাহরণ:
- Customer Segmentation: গ্রাহকদের বিভিন্ন আচরণের উপর ভিত্তি করে গ্রুপে ভাগ করা, যাতে মার্কেটিং প্রচারণাগুলি প্রতিটি গ্রুপের জন্য কাস্টমাইজ করা যায়।
- Anomaly Detection: কোনো সিস্টেমে অস্বাভাবিক বা অপ্রত্যাশিত আচরণ শনাক্ত করা, যেমন ক্রেডিট কার্ড ফ্রড বা ইন্টারনেট সিকিউরিটি।
- Recommendation Systems: ব্যবহারকারীদের আগের পছন্দের ভিত্তিতে তাদের জন্য নতুন পণ্য বা সেবা সুপারিশ করা।
Clustering (ক্লাস্টারিং)
Clustering হল Unsupervised Learning এর একটি প্রধান কৌশল, যেখানে ডেটাকে এমন গ্রুপ বা ক্লাস্টারে ভাগ করা হয়, যার মধ্যে একে অপরের সাথে বেশি সাদৃশ্য থাকে। এটি ডেটার বৈশিষ্ট্যের উপর ভিত্তি করে স্বতঃস্ফূর্তভাবে কাজ করে এবং প্রতিটি ডেটা পয়েন্টকে একটি গ্রুপে শ্রেণীভুক্ত করে।
Clustering এর মূল ধারণা:
- Clusters: ডেটার একটি গ্রুপ বা সেট যেটি নিজেদের মধ্যে খুবই সাদৃশ্যপূর্ণ।
- Centroid: ক্লাস্টারের কেন্দ্রবিন্দু বা গড় পয়েন্ট, যা ক্লাস্টারের প্রতিটি পয়েন্টের গড় মান।
- Distance Metric: ক্লাস্টারগুলোর মধ্যে দূরত্ব পরিমাপ করার জন্য ব্যবহৃত মেট্রিক, যেমন Euclidean distance।
Clustering মেথড:
১. K-Means Clustering
K-Means হল একটি জনপ্রিয় ক্লাস্টারিং অ্যালগরিদম যা ডেটাকে নির্দিষ্ট সংখ্যক (K) গ্রুপে ভাগ করে। এটি প্রতিটি ক্লাস্টারের জন্য একটি সেন্ট্রয়েড নির্বাচন করে এবং তারপর ডেটা পয়েন্টগুলোকে সবচেয়ে কাছাকাছি সেন্ট্রয়েডের সাথে গ্রুপ করে।
K-Means এর কাজের ধারা:
- ক্লাস্টারের সংখ্যা নির্ধারণ: প্রথমে আপনাকে নির্ধারণ করতে হবে কতটি ক্লাস্টার (K) তৈরি করতে হবে।
- সেন্ট্রয়েড নির্বাচন: K সংখ্যক সেন্ট্রয়েড র্যান্ডমলি নির্বাচন করা হয়।
- ক্লাস্টারিং: প্রতিটি ডেটা পয়েন্টকে সেন্ট্রয়েডের সবচেয়ে কাছাকাছি ক্লাস্টারে অ্যাসাইন করা হয়।
- সেন্ট্রয়েড আপডেট: প্রতিটি ক্লাস্টারের নতুন সেন্ট্রয়েড গড় পয়েন্ট হিসেবে গণনা করা হয়।
- কনভার্জেন্স: এই প্রক্রিয়া পুনরাবৃত্তি করা হয় যতক্ষণ না সেন্ট্রয়েডে আর পরিবর্তন আসে।
২. Hierarchical Clustering
Hierarchical Clustering দুটি প্রধান ধাপের মাধ্যমে কাজ করে:
- Agglomerative (bottom-up): শুরুতে প্রতিটি ডেটা পয়েন্ট একটি আলাদা ক্লাস্টার হিসেবে থাকে এবং তারপর সেগুলিকে একে একে যোগ করা হয়।
- Divisive (top-down): শুরুতে সমস্ত ডেটাকে একটি ক্লাস্টারে রাখা হয় এবং তারপর সেটিকে ছোট ছোট ক্লাস্টারে ভাগ করা হয়।
৩. DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
DBSCAN হল একটি ডেনসিটি-বেসড ক্লাস্টারিং অ্যালগরিদম, যা ডেটার ঘনত্বের উপর ভিত্তি করে ক্লাস্টার তৈরি করে। এটি ডেটার মধ্যে নয়েজ (noise) বা আউটলার (outlier) গুলি সহজেই চিহ্নিত করতে সক্ষম। এটি K-Means এর তুলনায় ভালো কাজ করে যখন ডেটা অনেকটাই অপ্রত্যাশিত এবং ঘনত্বে পরিবর্তনশীল।
K-Means Clustering এর উদাহরণ:
এখানে আমরা Scikit-learn লাইব্রেরি ব্যবহার করে একটি সাধারণ K-Means ক্লাস্টারিং উদাহরণ দেখাবো।
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
# ডেটাসেট তৈরি করা (ডেটার মধ্যে তিনটি ক্লাস্টার তৈরি হবে)
X, y = make_blobs(n_samples=300, centers=3, cluster_std=0.60, random_state=0)
# K-Means ক্লাস্টারিং মডেল তৈরি করা
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
# ক্লাস্টারের সেন্ট্রয়েড পাওয়ার জন্য
centroids = kmeans.cluster_centers_
# ক্লাস্টারগুলি আঁকা
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_, s=50, cmap='viridis')
# সেন্ট্রয়েড আঁকা
plt.scatter(centroids[:, 0], centroids[:, 1], c='red', s=200, alpha=0.5)
plt.title('K-Means Clustering')
plt.show()
এই কোডটি K-Means ক্লাস্টারিং অ্যালগরিদম ব্যবহার করে তিনটি ক্লাস্টারে ডেটা পয়েন্ট বিভক্ত করবে এবং ক্লাস্টারের সেন্ট্রয়েডগুলোকে রেড পয়েন্ট হিসেবে প্রদর্শন করবে।
ক্লাস্টারিং এর ব্যবহার:
- Customer Segmentation: ব্যবসায়িক প্রতিষ্ঠানগুলি গ্রাহকদের আচরণ অনুযায়ী ক্লাস্টারে ভাগ করতে পারে।
- Image Compression: ছবির পিক্সেলগুলি ক্লাস্টারে ভাগ করে ছবির আকার কমানো যায়।
- Anomaly Detection: কোনও ডেটাতে অস্বাভাবিক বা ভিন্ন কিছু শনাক্ত করতে।
সারাংশ
- Unsupervised Learning হল মেশিন লার্নিংয়ের একটি প্রকার যেখানে ডেটার আউটপুট লেবেল (labels) প্রদান করা হয় না এবং মডেলটি ডেটার মধ্যে সম্পর্ক বা প্যাটার্ন খুঁজে বের করে।
- Clustering হল Unsupervised Learning এর একটি প্রধান কৌশল, যেখানে ডেটাকে সমজাতীয় গোষ্ঠীতে ভাগ করা হয়।
- K-Means, Hierarchical Clustering, এবং DBSCAN হল ক্লাস্টারিংয়ের জনপ্রিয় পদ্ধতি, যা ডেটাকে বিভিন্নভাবে গ্রুপ করে বিশ্লেষণ করতে সহায়তা করে।
Unsupervised Learning বিশেষত তখন ব্যবহৃত হয় যখন আমাদের ডেটা থেকে নতুন তথ্য বা প্যাটার্ন খুঁজে বের করতে হয়, যেখানে আউটপুট লেবেলগুলি উপলব্ধ থাকে না।
Read more