Veröffentlicht: 27. Dezember 2023
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.
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.
Registrieren Sie sich für das E-Book über verantwortungsvolle KI-Workflows
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ße“2 (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.
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
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.
Verwenden Sie SVMs mit scikit-learn, um Vorhersagen zu treffen, bei denen Konten wahrscheinlich mit ihrer Kreditkarte in Verzug geraten werden.
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.
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.
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 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.
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.
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.
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.
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.
Ä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.
Während SVMs für eine Reihe von Aufgaben eingesetzt werden können, sind dies einige der beliebtesten Anwendungen von SVMs in allen Branchen.
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.
SVM wird bei Bildklassifizierungsaufgaben wie Objekterkennung und Bildabruf eingesetzt. Sie kann auch in Sicherheitsbereichen nützlich sein, indem sie ein Bild als manipuliert klassifiziert.
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.
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.
Diskutieren Sie einige der Vor- und Nachteile von SVM in der IBM Community.
Entdecken Sie einige beaufsichtigte Lernansätze wie Support Vector Machines und Wahrscheinlichkeitsklassifikatoren.
Verwenden Sie SVMs mit scikit-learn, um Vorhersagen zu treffen, bei denen Konten wahrscheinlich mit ihrer Kreditkarte in Verzug geraten werden.
IBM Research stellt einen neuen parallelen SVM-Solver vor, der auf dem Forgetron-Algorithmus basiert.
Alle Links befinden sich außerhalb von ibm.com
1 Support-Vektor-Methode für Funktionsapproximation, Regression und Signalverarbeitung
2 Lecture 16 notes on Support Vector Machines, Patrick Winston, MIT, 2010
3 Introduction to Support Vector Machines, Boswell, Dustin, Caltech, 2002
4 Support vector machines, Sontag, David, New York University