📚 সমস্ত অধ্যায় দেখুন
অধ্যায়/ফেজ 1 · Phase 1 · Core ML
1.2১৫ মিনিট পড়া6 / 68

Unsupervised Learning — নিজে নিজে pattern খোঁজা

Unsupervised Learning

Label ছাড়াই data থেকে structure বের করা।

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।

d(a, b) = √Σ (aᵢ − bᵢ)²

K-Means এর objective — সব point এর তার cluster center থেকে দূরত্বের sum minimize করা।

J = Σ_k Σ_(x ∈ Cₖ) ||x − μₖ||²

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

kmeans_demo.py
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 অত্যন্ত জরুরি।