Machine Learning SVM
Large Margin Classifier

Support Vector Machines (SVM)

Support Vector Machines find the decision boundary that maximizes the margin between classes, often leading to strong performance in high-dimensional spaces.

Maximum Margin Intuition

Given separable classes, SVM finds the hyperplane that maximizes the distance (margin) to the closest points, called support vectors.

  • Maximizing the margin typically improves generalization.
  • Soft-margin SVM allows some misclassifications controlled by parameter C.

Kernel Trick

SVMs can use kernels to implicitly map data into higher-dimensional spaces where it becomes linearly separable.

  • Linear kernel
  • Polynomial kernel
  • RBF (Gaussian) kernel

SVM with scikit-learn

RBF kernel SVM
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, stratify=y
)

svm = SVC(
    kernel="rbf",
    C=1.0,
    gamma="scale"
)
svm.fit(X_train, y_train)

y_pred = svm.predict(X_test)
print(classification_report(y_test, y_pred))