Page cover

Support Vector Machine (SVM) und Support Vector Regression (SVR)

Die Support Vector Machine ist ein leistungsstarker Algorithmus für die Klassifikation, während die Support Vector Regression eine Variante der SVM ist, die für die Regression verwendet wird. Beide Algorithmen teilen ähnliche Prinzipien, jedoch hat die SVR das Ziel, stetige Ausgaben anstelle von diskreten Klassen zu erzeugen. Im Folgenden werden die Grundprinzipien von SVM und SVR vorgestellt:

  • Maximierung des Abstands: SVM sucht nach der optimalen Trennlinie (oder Hyperebene in höheren Dimensionen), die den größten Abstand zu den Support-Vektoren, den Datenpunkten, die die Trennlinie definieren, hat. Dieses Konzept der Maximierung des Abstands trägt dazu bei, die Generalisierungsfähigkeit des Modells zu verbessern.

  • Flexible Anpassung: Sowohl SVM als auch SVR können mit nicht linearen Daten umgehen, indem sie diese in einen höherdimensionalen Raum transformieren. Dies wird durch Kernel-Tricks erreicht, die es ermöglichen, auch komplexe Entscheidungsgrenzen zu modellieren.

  • Effektive Klassifikation und Regression: Nach dem Training können SVM und SVR neue Datenpunkte zuverlässig klassifizieren bzw. Vorhersagen für Regressionsprobleme treffen. Diese Vielseitigkeit macht sie sowohl für binäre als auch Multiklassen-Klassifikation sowie für die Regression in komplexen und hochdimensionalen Datensätzen geeignet.

In Abbildung 8 ist die Trennung von zwei Klassen mithilfe von einem SVG mit einer Hyperebene zu sehen.

Abbildung 8: Trennung zweier Klassen mithilfe des SVM-Algorithmus

SVM ist besonders nützlich bei Datensätzen, in denen eine klare Trennung zwischen den Klassen besteht. Es wird häufig in der Bilderkennung, Gesichtserkennung, medizinischen Diagnose und Textklassifikation eingesetzt. Im folgenden Abschnitt werden die Vor- und Nachteile der SVM und der SVR behandelt.

Vorteile:

  • Effektive Nutzung hochdimensionaler Räume: SVM und SVR können auch in hochdimensionalen Räumen arbeiten, was sie besonders für komplexe Datensätze geeignet macht, in denen einfache lineare Modelle versagen könnten.

  • Gute Leistung bei kleinen Trainingsdatensätzen: Durch die Fokussierung auf die Support-Vektoren und die Maximierung des Abstands zwischen den Klassen können SVM und SVR auch mit kleinen Trainingsdatensätzen effektiv arbeiten.

  • Flexibilität durch Kernel-Tricks: Die Verwendung von Kernel-Tricks ermöglicht es SVM und SVR, auch mit nicht linearen Daten umzugehen, indem sie sie in höhere Dimensionen transformieren. Dadurch können auch komplexe Entscheidungsgrenzen modelliert werden.

Nachteile:

  • Empfindlichkeit gegenüber der Wahl der Kernel-Parameter: Die Leistung von SVM und SVR kann stark von der Auswahl und Einstellung der Kernel-Parameter abhängen, was eine gewisse Expertise erfordert und zu Überanpassung führen kann.

  • Rechenintensivität bei großen Datensätzen: Insbesondere bei Verwendung nicht linearer Kernel können SVM und SVR bei großen Datensätzen rechenintensiv sein, da die Berechnung der Entscheidungsfunktionen in höherdimensionalen Räumen aufwendig sein kann.

Der folgende Code demonstriert die Anwendung einer Support Vector Machine (SVM) auf den Iris-Datensatz zur Klassifizierung von Blumen basierend auf ihren Merkmalen und evaluiert die Leistung des Modells auf einem separaten Testdatensatz.

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC

# Laden des Iris-Datensatzes
iris = load_iris()

# Trainingsdaten und -label definieren
X, y = iris.data, iris.target

# Aufteilen der Daten in Trainings- und Testdaten
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Erstellen eines SVM-Modells
svm_model = SVC(kernel='linear')

# Training des Modells
svm_model.fit(X_train, y_train)

# Evaluierung auf Testdaten
accuracy = svm_model.score(X_test, y_test)

Mehr erfahren: GeeksforGeeks/Support Vector Machine (SVM) Algorithm, BigData-Insider/Was ist eine Support Vector Machine?

Last updated