Support Vector Machine (SVM)

Wprowadzenie

Support Vector Machine (SVM) to nadzorowany algorytm uczenia maszynowego, który znajduje hiperpowierzchnię rozdzielającą klasy danych z maksymalnym marginesem. Dzięki swojej elegancji matematycznej i wysokiej skuteczności był przez wiele lat jednym z najpopularniejszych algorytmów ML, zanim został częściowo wyparty przez głębokie sieci neuronowe.

Podstawowa idea

SVM szuka hiperplanu (w 2D – linii, w 3D – płaszczyzny), który najlepiej oddziela klasy, maksymalizując margines (odległość) do najbliższych punktów treningowych – tzw. wektorów nośnych (support vectors).

Matematyczna zasada

Minimalizacja: ½‖w‖² + C·∑ξᵢ
przy ograniczeniach: yᵢ(w·xᵢ + b) ≥ 1 − ξᵢ

Gdzie w to wektor normalny hiperplanu, a C kontroluje kompromis między maksymalizacją marginesu a tolerancją błędów klasyfikacji.

Kernel Trick – magiczna sztuczka SVM

SVM radzi sobie z danymi nieliniowymi dzięki Kernel Trick. Zamiast mapować dane do wyższych wymiarów (co jest kosztowne obliczeniowo), algorytm oblicza iloczyn skalarny w tej nowej przestrzeni za pomocą funkcji jądra (kernel).

  • Linear Kernel – dane liniowo separowalne
  • Polynomial Kernel
  • RBF (Gaussian) Kernel – najpopularniejszy, uniwersalny
  • Sigmoid Kernel

Typy SVM

  • SVC (Support Vector Classifier) – klasyfikacja
  • SVR (Support Vector Regression) – regresja
  • One-Class SVM – detekcja anomalii

Zalety SVM

  • Bardzo dobra generalizacja przy małej ilości danych
  • Skuteczny w przestrzeniach o wysokiej wymiarowości
  • Wyraźne rozwiązanie matematyczne (optymalizacja wypukła)
  • Możliwość użycia różnych kerneli

Ograniczenia

  • Słabo skaluje się na bardzo duże zbiory danych (czas i pamięć O(n²))
  • Wymaga starannego doboru kernela i parametru C
  • Mniej interpretowalny niż drzewa decyzyjne
  • Obecnie często zastępowany przez Gradient Boosting (XGBoost, LightGBM) lub sieci neuronowe

Aktualny status (2026)

SVM nadal jest szeroko używany w dziedzinach, gdzie liczy się wysoka dokładność przy umiarkowanej ilości danych (bioinformatyka, finanse, obrazowanie medyczne, detekcja anomalii). W erze dużych modeli językowych i głębokiego uczenia stracił na popularności w ogólnych zadaniach, ale pozostaje klasycznym, eleganckim narzędziem, które warto znać. Nowoczesne implementacje (np. w scikit-learn, ThunderSVM, cuSVM) nadal oferują świetną wydajność.