Startseite Themen Support-Vektor-Maschine Was ist eine Support-Vektor-Maschine (SVM)?
Wenden Sie SVMs mit watsonx.ai an Für KI-Updates anmelden
Illustration mit Collage aus Piktogrammen von Wolken, Kreisdiagramm, Diagrammpiktogrammen

Veröffentlicht: 27. Dezember 2023

Was sind SVMs?

Eine Support-Vektor-Maschine (SVM) ist ein überwachter Algorithmus für maschinelles Lernen, der Daten klassifiziert, indem er eine optimale Linie oder Hyperebene findet, die den Abstand zwischen den einzelnen Klassen in einem N-dimensionalen Raum maximiert.

SVMs wurden in den 1990er Jahren von Wladimir N. Vapnik und seinen Kollegen entwickelt und diese Arbeit wurde 1995 in einem Artikel mit dem Titel „Support Vector Method for Function Approximation, Regression Estimation, and Signal Processing“1 veröffentlicht.

SVMs werden häufig innerhalb von Klassifizierungsproblemen verwendet. Sie unterscheiden zwischen zwei Klassen, indem sie die optimale Hyperebene finden, die den Abstand zwischen den nächstgelegenen Datenpunkten der entgegengesetzten Klassen maximiert. Die Anzahl der Merkmale in den Eingabedaten bestimmt, ob die Hyperebene eine Linie in einem 2-D-Raum oder eine Ebene in einem n-dimensionalen Raum ist. Da mehrere Hyperebenen zur Unterscheidung der Klassen gefunden werden können, ermöglicht die Maximierung der Spanne zwischen den Punkten dem Algorithmus, die beste Entscheidungsgrenze zwischen den Klassen zu finden. Dies wiederum ermöglicht eine gute Generalisierung auf neue Daten und genaue Klassifizierungsvorhersagen. Die Linien, die an die optimale Hyperebene angrenzen, werden als Support-Vektoren bezeichnet, da diese Vektoren durch die Datenpunkte verlaufen, die den maximalen Spielraum bestimmen.

Der SVM-Algorithmus wird häufig im Bereich maschinelles Lernen verwendet, da er sowohl lineare als auch nichtlineare Klassifikationsaufgaben bewältigen kann. Wenn die Daten jedoch nicht linear trennbar sind, werden Kernel-Funktionen verwendet, um den höherdimensionalen Raum der Daten zu transformieren, um eine lineare Trennung zu ermöglichen. Diese Anwendung von Kernel-Funktionen kann als „Kernel-Trick“ bezeichnet werden. Die Wahl der Kernel-Funktion, wie z.B. lineare Kernel, Polynom-Kernel, Radial Basis Function (RBF)-Kernel oder Sigmoid-Kernel, hängt von den Dateneigenschaften und dem spezifischen Anwendungsfall ab.

Beginnen Sie mit der Verwendung dieses Klassifikators mit unserem Tutorial
Der Datenspeicher für KI

Erfahren Sie, wie wirkungsvoll die Integration einer Data-Lakehouse-Strategie in Ihre Datenarchitektur sein kann, einschließlich Verbesserungen zur Skalierung von KI und Möglichkeiten zur Kostenoptimierung.

Ähnliche Inhalte

Registrieren Sie sich für das E-Book über verantwortungsvolle KI-Workflows

Arten von SVM-Klassifikatoren
Lineare SVMs

Lineare SVMs werden mit linear trennbaren Daten verwendet. Dies bedeutet, dass die Daten keine Transformationen durchlaufen müssen, um die Daten in verschiedene Klassen zu unterteilen. Die Entscheidungsgrenze und die Unterstützungsvektoren bilden das Erscheinungsbild einer Straße. Professor Patrick Winston vom MIT verwendet die Analogie „Anpassung der breitesten Straße2 (Link außerhalb von ibm.com), um dieses quadratische Optimierungsproblem zu beschreiben. Mathematisch lässt sich diese trennende Hyperebene wie folgt darstellen: 

wx + b = 0

Dabei ist w der Gewichtungsvektor, x der Eingabevektor und b der Verzerrungsbegriff.

Es gibt zwei Methoden zur Berechnung der Marge oder des maximalen Abstands zwischen Klassen, nämlich die Klassifizierung mit harten Margen und die Klassifizierung mit weichen Margen. Wenn wir SVMs mit harter Marge verwenden, werden die Datenpunkte perfekt außerhalb der Unterstützungsvektoren getrennt, oder „von der Straße“, um mit Professor Hintons Analogie fortzufahren. Dies wird durch die Formel dargestellt:

(wxj + b) yj ≥ a,

Und dann wird der Rand maximiert, der wie folgt dargestellt wird: max ɣ= a / ||w||, wobei a der Rand ist, der auf w projiziert wird.

Die Klassifizierung mit weicher Marge ist flexibler und lässt durch die Verwendung von Schlupfvariablen (ξ) eine gewisse Fehlklassifizierung zu. Der Hyperparameter C passt den Spielraum an. Ein größerer C-Wert verkleinert den Spielraum für eine minimale Fehlklassifizierung, während ein kleinerer C-Wert den Spielraum vergrößert und mehr falsch klassifizierte Daten zulässt3.

Nichtlineare SVMs

Viele Daten in realen Szenarien sind nicht linear trennbar, und hier kommen nichtlineare SVMs ins Spiel. Um die Daten linear trennbar zu machen, werden Vorverarbeitungsmethoden auf die Trainingsdaten angewendet, um sie in einen höherdimensionalen Merkmalsraum umzuwandeln. Allerdings können höherdimensionale Räume zu mehr Komplexität führen, da das Risiko einer Überanpassung der Daten erhöht und die Rechenleistung erschwert wird. Der „Kernel-Trick“ hilft dabei, einen Teil dieser Komplexität zu reduzieren und die Berechnung effizienter zu machen. Dies geschieht, indem die Berechnungen des Punktprodukts durch eine entsprechende Kernel-Funktion4 ersetzt werden.

Es gibt eine Reihe unterschiedlicher Kerneltypen, die zur Klassifizierung von Daten angewendet werden können. Zu den beliebtesten Kernel-Funktionen gehören: 

  • Polynomischer Kernel

  • Radialer Basisfunktionskernel (auch bekannt als Gaußscher oder RBF-Kernel)

  • Sigmoid-Kernel

Support Vector Regression (SVR)

Die Support Vector Regression (SVR) ist eine Erweiterung der SVMs, die auf Regressionsprobleme angewendet wird (d.h. das Ergebnis ist kontinuierlich). Ähnlich wie lineare SVMs findet die SVR eine Hyperebene mit dem maximalen Abstand zwischen Datenpunkten und wird normalerweise zur Vorhersage von Zeitreihen verwendet.

SVR unterscheidet sich insofern von der linearen Regression, dass Sie die Beziehung zwischen den unabhängigen und abhängigen Variablen angeben muss, die Sie verstehen möchten. Ein Verständnis der Beziehungen zwischen den Variablen und ihren Richtungen ist bei der Verwendung der linearen Regression wertvoll. Dies ist für SVRs nicht notwendig, da sie diese Beziehungen selbst bestimmen.

Klassifizieren von Daten mit dem SVM-Algorithmus unter Verwendung von Python

Verwenden Sie SVMs mit scikit-learn, um Vorhersagen zu treffen, bei denen Konten wahrscheinlich mit ihrer Kreditkarte in Verzug geraten werden.

So funktionieren SVMs

In diesem Abschnitt werden wir den Prozess der Erstellung eines SVM-Klassifikators diskutieren, und wie er im Vergleich zu anderen überwachten Lernalgorithmen und ihren Anwendungen in der heutigen Industrie abschneidet.

Erstellen eines SVM-Klassifikators
Teilen Sie Ihre Daten auf

Wie bei anderen Modellen für maschinelles Lernen beginnen Sie mit der Aufteilung Ihrer Daten in einen Trainingssatz und einen Testsatz. Das setzt nebenbei voraus, dass Sie bereits eine explorative Analyse Ihrer Daten durchgeführt haben. Obwohl dies technisch nicht erforderlich ist, um einen SVM-Klassifikator zu erstellen, ist es eine gute Idee, dies vor der Verwendung eines maschinellen Lernmodells umzusetzen, da Sie so fehlende Daten oder Sonderfälle erkennen können.

Erstellen und bewerten Sie das Modell

Importieren Sie ein SVM-Modul aus der Bibliothek Ihrer Wahl, wie scikit-learn (Link befindet sich außerhalb von ibm.com). Trainieren Sie Ihre Trainingsproben mit dem Klassifikator und sagen Sie die Reaktion voraus. Sie können die Leistung auswerten, indem Sie die Genauigkeit des Testsatzes mit den vorhergesagten Werten vergleichen. Möglicherweise möchten Sie andere Auswertungsmetriken verwenden, z. B. f1-score, precision oder recall.

Hyperparameter-Abstimmung

Hyperparameter können abgestimmt werden, um die Leistung eines SVM-Modells zu verbessern. Optimale Hyperparameter können mithilfe von Rastersuch- und Kreuzvalidierungsmethoden gefunden werden, die durch verschiedene Kernel-, Regularisierungs- (C) und Gammawerte iterieren, um die beste Kombination zu finden.

SVMs im Vergleich zu anderen Klassifikatoren für überwachtes Lernen

Für denselben Anwendungsfall können verschiedene Klassifikatoren für maschinelles Lernen verwendet werden. Es ist wichtig, verschiedene Modelle zu testen und zu bewerten, um zu verstehen, welche am besten funktionieren. Nichtsdestotrotz kann es hilfreich sein, die Stärken und Schwächen jedes einzelnen zu verstehen, um seine Anwendung für Ihren Anwendungsfall beurteilen zu können.

SVMs im Vergleich zu Naive Bayes

Sowohl Naive Bayes als auch SVM-Klassifizierungen werden häufig für Textklassifizierungsaufgaben verwendet. SVMs funktionieren tendenziell besser als Naive Bayes, wenn die Daten nicht linear trennbar sind. Allerdings müssen SVMs auf verschiedene Hyperparameter abgestimmt werden und können rechenintensiver sein. 

Erfahren Sie mehr über Naive Bayes
SVMs im Vergleich zur logistischen Regression

SVMs erzielen bei hochdimensionalen und unstrukturierten Datensätzen, wie z. B. Bild- und Textdaten, in der Regel eine bessere Leistung als die logistische Regression. SVMs sind auch weniger empfindlich gegenüber einer Überanpassung und einfacher zu interpretieren. Allerdings können sie rechenintensiver sein.

Erfahren Sie mehr über logistische Regression
SVMs im Vergleich zu Decision Trees

SVMs erzielen bei hochdimensionalen Daten eine bessere Leistung und sind im Vergleich zu Decision Trees weniger anfällig für eine Überanpassung. Allerdings lassen sich Decision Trees in der Regel schneller trainieren, insbesondere bei kleineren Datensätzen, und sie sind im Allgemeinen einfacher zu interpretieren.

Erfahren Sie mehr über Decision Trees
SVM im Vergleich zu Neural Networks

Ähnlich wie bei anderen Modellvergleichen sind SVMs rechenintensiver zu trainieren und weniger anfällig für Überanpassungen, wohingegen Neural Networks als flexibler und skalierbarer gelten.

Erfahren Sie mehr über Neural Networks
Anwendungen von SVMs

Während SVMs für eine Reihe von Aufgaben eingesetzt werden können, sind dies einige der beliebtesten Anwendungen von SVMs in allen Branchen.  

Klassifizierung von Text

SVMs werden häufig in der Verarbeitung natürlicher Sprache (NLP) für Aufgaben wie Stimmungsanalyse, Spam-Erkennung und Themenmodellierung verwendet. Sie eignen sich dafür, da sie bei hochdimensionalen Daten gut funktionieren.

Bildklassifikation

SVM wird bei Bildklassifizierungsaufgaben wie Objekterkennung und Bildabruf eingesetzt. Sie kann auch in Sicherheitsbereichen nützlich sein, indem sie ein Bild als manipuliert klassifiziert.

Bioinformatik

SVM wird auch zur Proteinklassifizierung, zur Analyse der Genexpression und zur Krankheitsdiagnose verwendet. SVM wird häufig in der Krebsforschung eingesetzt (Link befindet sich außerhalb von ibm.com), weil sie subtile Entwicklungen in komplexen Datensätzen erkennen kann. 

Geografisches Informationssystem (GIS)

SVMs können geschichtete geophysikalische Strukturen im Untergrund analysieren und das „Rauschen“ aus elektromagnetischen Daten herausfiltern. Sie haben außerdem dazu beigetragen, das seismische Verflüssigungspotenzial von Böden vorherzusagen, was für den Bereich des Bauwesens von Bedeutung ist.

Zugehörige Ressourcen Beteiligen Sie sich am Gespräch in der IBM Community

Diskutieren Sie einige der Vor- und Nachteile von SVM in der IBM Community.

Überwachte Lernmodelle

Entdecken Sie einige beaufsichtigte Lernansätze wie Support Vector Machines und Wahrscheinlichkeitsklassifikatoren.

Klassifizieren von Daten mit dem SVM-Algorithmus unter Verwendung von Python

Verwenden Sie SVMs mit scikit-learn, um Vorhersagen zu treffen, bei denen Konten wahrscheinlich mit ihrer Kreditkarte in Verzug geraten werden.

Support Vector Machine Solvers: Groß angelegt, genau und schnell (wählen Sie zwei aus)

IBM Research stellt einen neuen parallelen SVM-Solver vor, der auf dem Forgetron-Algorithmus basiert.

Machen Sie den nächsten Schritt

Entwickeln Sie eine KI-Strategie für Ihr Unternehmen auf einer kollaborativen KI- und Datenplattform – IBM watsonx. Trainieren, validieren, optimieren und implementieren Sie KI-Modelle, um den Nutzen von KI mit vertrauenswürdigen Daten in Ihrem gesamten Unternehmen zu skalieren und zu beschleunigen.

watsonx erkunden Buchen Sie eine Live-Demo
Fußnoten

Alle Links befinden sich außerhalb von ibm.com

1 Support-Vektor-Methode für Funktionsapproximation, Regression und Signalverarbeitung

Lecture 16 notes on Support Vector Machines, Patrick Winston, MIT, 2010

Introduction to Support Vector Machines, Boswell, Dustin, Caltech, 2002

Support vector machines, Sontag, David, New York University