Hook — মেলায় হারিয়ে যাওয়া বাচ্চা
একটি বাচ্চাকে নতুন মেলায় ছেড়ে দিলে সে কাউকে চেনে না, কোনো label নেই। তবু সে দেখে — কিছু মানুষ একসাথে দাঁড়িয়ে আছে (group), কিছু আলাদা। আস্তে আস্তে সে group গুলো চিনে নেয়। Unsupervised Learning ঠিক এমনই — label ছাড়াই data এর ভেতরের structure খুঁজে বের করা।
Concept — Label ছাড়া শেখা
এখানে আমাদের কাছে শুধু X আছে, y নেই। Model নিজে থেকে data এর pattern, group বা structure খুঁজে বের করে।
তিনটি প্রধান কাজ
- Clustering — একই রকম data group করা (K-Means, DBSCAN)।
- Dimensionality Reduction — কম feature এ data express করা (PCA, t-SNE)।
- Association — কোন জিনিস একসাথে আসে (Market Basket Analysis)।
Math — Distance ও Similarity
Unsupervised এর মূল গণিত — কে কার কাছাকাছি। Euclidean distance সবচেয়ে common।
K-Means এর objective — সব point এর তার cluster center থেকে দূরত্বের sum minimize করা।
Real-world Examples
- Customer segmentation — কোন কোন customer একই রকম।
- Anomaly detection — Credit card fraud।
- Recommendation — “যারা এটা কিনেছে, তারা ওটাও কিনেছে”।
- Document grouping — news কে topic অনুযায়ী group।
- Image compression — PCA দিয়ে dimension কমানো।
Code — K-Means Clustering
from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt
# Synthetic 2D data
np.random.seed(42)
X = np.vstack([
np.random.randn(50, 2) + [0, 0],
np.random.randn(50, 2) + [5, 5],
np.random.randn(50, 2) + [0, 5],
])
km = KMeans(n_clusters=3, n_init=10, random_state=42)
labels = km.fit_predict(X)
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap="viridis")
plt.scatter(km.cluster_centers_[:, 0], km.cluster_centers_[:, 1],
c="red", marker="X", s=200)
plt.title("K-Means Clustering")
plt.show()ব্যাখ্যা
- তিনটি cluster এর synthetic data বানালাম।
- K-Means নিজে থেকে ৩টি group খুঁজে বের করছে।
- Red X = প্রতিটি cluster এর center।
Common Mistakes
- K (cluster count) আগে থেকে না জেনে guess করা — Elbow method ব্যবহার করো।
- Scaling না করা — KMeans distance-based, scale matter করে।
- Cluster এর meaning interpret না করা — শুধু group বানালেই হবে না।
- Non-spherical cluster এ K-Means চাপিয়ে দেওয়া — DBSCAN ভালো option।
Practice Tasks
- Task 1: K=2, 3, 4, 5 দিয়ে চালিয়ে inertia plot করো (Elbow method)।
- Task 2: Iris dataset এ K-Means চালিয়ে দেখো — কতটা species এর সাথে মিলছে।
- Task 3: PCA দিয়ে 4D Iris কে 2D তে এনে plot করো।
Mini Project — Customer Segmentation
Kaggle এর “Mall Customer” dataset নাও। Age, Annual Income, Spending Score feature দিয়ে K-Means চালাও। ৫টি customer segment বের করো এবং প্রতিটির বৈশিষ্ট্য Bengali তে describe করো (যেমন: “উচ্চ আয়, কম খরচ — সঞ্চয়প্রিয়”)।
Summary
Unsupervised = label নেই, শুধু data এর structure খোঁজা।
- Clustering, Dimensionality Reduction, Association — তিন প্রধান কাজ।
- Distance metric এর উপর ভিত্তি করে কাজ।
- Scaling অত্যন্ত জরুরি।