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ść.