support vector machine
Főnév
support vector machine (tsz. support vector machines)
A Support Vector Machine (SVM), magyarul támogatott vektorgép, egy hatékony, felügyelt tanulási algoritmus, amelyet főként osztályozásra és regresszióra használnak. Különösen jól működik kis mintaszámú, nagy dimenziójú adatok esetén.
Az alapötlet: találjunk meg egy olyan elválasztó hiper-síkot, amely a lehető legjobban szétválasztja az adatokat két (vagy több) osztályra.
🎯 Mi a célja az SVM-nek?
- Egy hipersík megtalálása, amely maximalizálja a margót (távolság a legközelebbi pontoktól)
- Robusztus döntési határvonalat ad, amely jól általánosít új adatokra
🧩 Alapfogalmak
| Fogalom | Jelentés |
|---|---|
| Hipersík | Az adatteret két részre osztó geometriai sík (pl. 2D-ben egyenes, 3D-ben sík) |
| Margin (margó) | Az elválasztó sík és a legközelebbi pontok távolsága |
| Support vectors | Az adathalmaz azon pontjai, amelyek legközelebb vannak az elválasztó síkhoz – ezek határozzák meg a modellt |
| Hard margin | Nincs hibás osztályozás megengedve |
| Soft margin | Enged némi hibát a jobb általánosítás érdekében (valós adatokhoz hasznosabb) |
✏️ Geometriai szemlélet
Egy 2D példában az SVM egy egyenest keres, amely a lehető legjobban választja szét a két osztályt úgy, hogy:
- a legközelebbi piros és kék pont egyforma távol legyen az elválasztó vonaltól
- ez a távolság (margin) a lehető legnagyobb legyen
🧮 A döntési függvény
Egy adatpont osztályba sorolása:
- : súlyvektor (irány a térben)
- : eltolás
- ha → egyik osztály, ha → másik
⚙️ Tanulás: optimalizációs probléma
Az SVM célja a következő kifejezés minimalizálása:
úgy, hogy:
Ez egy konvex optimalizációs probléma, aminek megoldása globális minimum.
🌐 Mi van, ha nem lineárisan elválasztható?
Ekkor jön a képbe a kernel trükk:
📦 Kernel függvények
A kernel függvény segítségével átvetítjük az adatokat egy magasabb dimenziójú térbe, ahol már elválaszthatók lineárisan.
| Kernel típus | Jelentés |
|---|---|
| Lineáris | Egyszerű sík (pl. szövegosztályozásra jó) |
| Polinomiális | Nemlineáris elválasztás (görbék) |
| RBF (Gauss) | Népszerű, jól általánosít |
| Sigmoid | Hasonló a neurális hálók aktivációjához |
📊 Példa: kétosztályos osztályozás
Tegyük fel, hogy van két osztály: piros és kék pontok.
- Az SVM megtalálja azt az egyenest/síkot, amely legjobban különválasztja őket.
- Ha egy új pont érkezik, akkor a döntési függvény alapján sorolja be.
🛠️ Kód példa Pythonban (scikit-learn)
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
X, y = datasets.make_classification(n_samples=100, n_features=2, n_classes=2)
X_train, X_test, y_train, y_test = train_test_split(X, y)
model = SVC(kernel='linear')
model.fit(X_train, y_train)
print("Pontosság:", model.score(X_test, y_test))
🧠 SVM alkalmazási területek
| Terület | Példa |
|---|---|
| Szövegosztályozás | SPAM-szűrés, vélemény-analízis |
| Képfelismerés | Arcazonosítás, kézirásos számfelismerés |
| Bioinformatika | Génszekvencia osztályozás |
| Pénzügyi előrejelzés | Ármozgás trendek detektálása |
✅ Előnyök
- 🧮 Matematikailag jól megalapozott
- 📈 Jól működik kevés minta esetén is
- 🔍 Tiszta döntési határ a margin maximalizálása miatt
- 🛡️ Robusztus túltanulás ellen, főként soft margin-nel
⚠️ Hátrányok
- 🧠 Nehéz paraméterhangolás (C, gamma, kernel választás)
- 🐢 Lassú nagy mintaszám esetén (milliós soroknál)
- 🧱 Nehezen értelmezhető a döntési határ vizuálisan, magas dimenzióban
- 📊 Nem skáláz jól: deep learning gyakran felváltja nagy adathalmazoknál
🔧 Fontos hiperparaméterek
| Paraméter | Jelentés |
|---|---|
| C | Regularizációs paraméter: nagy C → kevesebb hiba, szűk margin |
| gamma | RBF kernel esetén: kis gamma → sima határ, nagy gamma → éles görbék |
| kernel | A használt kernel típusa: linear, rbf, poly, sigmoid |
🧾 Összefoglalás
| Tulajdonság | Leírás |
|---|---|
| Név | Support Vector Machine (SVM) |
| Típus | Felügyelt gépi tanulás, osztályozás és regresszió |
| Cél | A lehető legnagyobb margójú elválasztó sík megtalálása |
| Alkalmazás | Szöveg, kép, bioinformatika, pénzügy |
| Kulcselemek | Margó, support vector, kernel, C, gamma |
| Erősség | Kis adathalmazokra ideális, pontos döntési határ |
| Korlát | Lassú nagy adathalmazokon, nehezen hangolható |
- support vector machine - Szótár.net (en-hu)
- support vector machine - Sztaki (en-hu)
- support vector machine - Merriam–Webster
- support vector machine - Cambridge
- support vector machine - WordNet
- support vector machine - Яндекс (en-ru)
- support vector machine - Google (en-hu)
- support vector machine - Wikidata
- support vector machine - Wikipédia (angol)