Hook — দুই দলের মাঝে সীমানা
মাঠে দুটি দল দাঁড়ালে — তাদের মাঝে এমন একটি দাগ টানা যা যাতে দুই দল থেকেই সবচেয়ে দূরে থাকে। এই “সবচেয়ে চওড়া রাস্তা” খোঁজাই SVM এর মূল idea।
Concept — Maximum Margin Hyperplane
SVM এমন একটি hyperplane খোঁজে যা দুই class কে আলাদা করে এবং দুই দিকের সবচেয়ে কাছের point (support vector) থেকে margin সর্বোচ্চ হয়।
w·x + b = 0 (decision boundary)
margin = 2 / ||w|| → maximize
Math — Soft Margin ও Kernel Trick
Soft Margin
Real data সবসময় perfectly separable না। C parameter দিয়ে আমরা কতটা violation allow করব ঠিক করি।
min ½||w||² + C·Σ ξᵢ
Kernel Trick
Non-linear data কে higher dimension এ map করে আবার linearly separable বানানো — explicit transformation ছাড়াই।
- Linear — সাধারণ separable data।
- Polynomial — curved boundary।
- RBF (Gaussian) — সবচেয়ে জনপ্রিয়, complex boundary।
Real-world Use
- Text classification (small/medium dataset)।
- Image classification (pre-deep-learning era)।
- Bioinformatics — gene/protein classification।
- Face detection।
Code — Sklearn SVM
svm_demo.py
from sklearn.datasets import make_moons
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
from sklearn.model_selection import train_test_split
X, y = make_moons(n_samples=300, noise=0.25, random_state=42)
Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.2, random_state=42)
for kernel in ["linear", "poly", "rbf"]:
model = make_pipeline(StandardScaler(),
SVC(kernel=kernel, C=1.0, gamma="scale"))
model.fit(Xtr, ytr)
print(f"{kernel:>6} -> acc={model.score(Xte, yte):.3f}")Common Mistakes
- Scaling না করা — RBF kernel এ critical।
- C ও gamma tune না করা — default এ stuck থাকা।
- Huge dataset (>1L row) এ SVM — slow।
- Multi-class এ probability চাইলে `probability=True` দিতে ভুলে যাওয়া।
Practice Tasks
- Task 1: C=0.01, 1, 100 এ decision boundary তুলনা করো।
- Task 2: GridSearchCV দিয়ে best (C, gamma) খুঁজে বের করো।
- Task 3: linearly separable data এ linear vs rbf accuracy দেখো।
Mini Project — Digit Classifier
Sklearn এর `load_digits` dataset (৮x৮ image) এ SVM (RBF) দিয়ে 95%+ accuracy আনার চেষ্টা করো। Confusion matrix দেখে কোন digit এ বেশি confuse করে — analyze করো।
Summary
এক নজরে
SVM = সবচেয়ে বড় margin এর hyperplane + Kernel এ non-linear জাদু।