Support Vector Machine
Die Support Vector Machine (SVM) ist ein überwachter Lernalgorithmus zur Klassifikation, der einen optimalen Hyperplane zur Trennung von Datenklassen findet. Sie maximiert den Abstand zu den nächsten Datenpunkten, um eine robuste Generalisierung zu erreichen, und nutzt den Kernel-Trick für nicht-lineare Daten. SVM eignet sich besonders für kleine bis mittlere Datensätze sowie für Text- oder Bildklassifikation.
Lernziele
- Die Grundlagen der SVM erklären, einschließlich Hyperplane, Support Vectors und Margin-Maximierung.
- Den Kernel-Trick und verschiedene Kernel-Funktionen anwenden.
- Soft-Margin SVM für nicht perfekt trennbare Daten nutzen.
- Mehrklassen-Klassifikation mit SVM-Strategien umsetzen.
- Häufige Fehler bei der SVM-Anwendung vermeiden.
Kurzüberblick
SVM sucht den besten Trenner (Hyperplane) zwischen Datenklassen, indem sie den Abstand (Margin) zu den nächsten Punkten maximiert. Diese nächsten Punkte sind die Support Vectors. Für nicht-lineare Daten transformiert der Kernel-Trick die Daten in höhere Dimensionen, ohne explizite Berechnung.
Kontext und Einordnung
SVM gehört zu überwachtem Lernen und wird in der Klassifikation eingesetzt. Sie konkurriert mit Algorithmen wie logistischer Regression oder neuronalen Netzen, ist aber effizienter für kleinere Datensätze und bietet gute Generalisierung durch Margin-Maximierung.
Begriffe und Definitionen
Hyperplane
Ein Hyperplane ist ein flacher Unterraum mit einer Dimension weniger als der Raum selbst, definiert durch die Gleichung
Support Vectors
Das sind die Trainingsdatenpunkte, die dem Hyperplane am nächsten liegen und seine Position bestimmen. Nur diese Punkte beeinflussen die Klassifikationsgrenze; andere Datenpunkte sind irrelevant.
Margin
Der Abstand des Hyperplanes zum nächsten Support Vector. SVM maximiert diesen Abstand für bessere Generalisierung:
Kernel-Trick
Eine Technik, um Daten in höhere Dimensionen zu transformieren, ohne explizite Berechnung, durch Kernel-Funktionen wie linearen Kernel
Soft-Margin SVM
Erlaubt Fehlklassifikationen mit Slack-Variablen
Mehrklassen-Klassifikation
Für mehr als zwei Klassen verwendet man One-vs-Rest (OvR) oder One-vs-One (OvO). OvR trainiert einen Klassifikator pro Klasse gegen alle anderen; OvO trainiert alle Paare.
Vorgehen
- Daten werden vorbereitet: Features werden skaliert, z.B. auf [0,1], da SVM empfindlich auf Skalierung ist.
- Kernel wird gewählt: Linear für trennbare Daten, RBF für nicht-lineare.
- Parameter werden getunt: C für Regularisierung, gamma für RBF-Kernel via Cross-Validation.
- Das quadratische Optimierungsproblem wird gelöst.
- Neue Daten werden klassifiziert, indem der Hyperplane verwendet wird.
Beispiele
Angenommen, wir haben 2D-Punkte: Klasse A (1,2), (2,3); Klasse B (4,5), (5,6). Der Hyperplane könnte $$x_1 + x_2 - 5 = 0$$ sein, mit Margin 1. Support Vectors sind die Punkte (2,3) und (4,5).
Für nicht-lineare Daten mit RBF-Kernel: Punkte in Kreisform trennen, RBF transformiert implizit in höhere Dimension.
Häufige Fehler und Tipps
- Die falsche Kernel-Auswahl führt zu suboptimalen Ergebnissen. Verschiedene Kernel-Funktionen sollten mit Cross-Validation getestet werden.
- Das Fehlen von Feature-Skalierung führt dazu, dass große Features dominieren. Features sollten immer skaliert werden, z.B. auf den Bereich [0,1].
- Bei großen Datensätzen ist die Berechnung komplex, da SVM eine Komplexität von O(n³) aufweist. Ein linearer Kernel oder stochastische Optimierer sind in solchen Fällen effizienter.
- Ein zu hoher Wert für den Regularisierungsparameter C führt zu Overfitting, da zu stark auf Fehler minimiert wird. Die Parameter sollten mit Cross-Validation balanciert werden.
Selbsttest
- Was ist ein Hyperplane?
- Warum sind Support Vectors wichtig?
- Wie funktioniert der Kernel-Trick?
- Was ist der Unterschied zwischen Hard- und Soft-Margin SVM?
Weiterführendes
SVM kann auch für Regression (SVR) verwendet werden. Für tieferes Verständnis der Mathematik siehe UC Berkeley Stat154-Vorlesung.