Support Vector Machines

Linearer Kernel

Wenn Trennlinien durch Datensätze gezogen werden, entstehen Fehlklassifikationen sobald Datenpunkte der selben Klasse auf beiden Seiten der Linie enden.
SVM versuchen Trennlinien so zu legen, dass die Abstände zu allen Datenpunkten maximal werden.

Hyperebene

Hyperebene

Eine Hyperebene im -dimensionalen Raum ist eine -dimensionale Fläche, die den Raum in zwei Teile trennt.
Die Bereiche werden als ‘vor’ und ‘hinter’ der Ebene bezeichnet.

Im Zweidimensionalen ist sie eine Linie, im 3D-Raum eine Ebene.

Der Normalenvektor bestimmt die Lage der Ebene.

Die Ebene hat die Gleichungsform

Allgemein wird definiert um folgende Variante zu erhalten

Der Abstand eines Punktes zur Ebene wird also aus dem Ortsvektor des , dem Vektor und dem Wert berechnet.

Berechnung des Abstand eines Punktes zur Hyperebene:

Für die Klassifikation zählt nur das Vorzeichen. Es zeigt auf welcher Seite der Ebene ein Punkt liegt.

  • : Klasse
  • : Klasse

Nur wenige Punkte sind für die Positionierung der Trennebene wirklich relevant. Sie heißen Support-Vectors.

Normalisierung

Da mit Abständen zwischen Punkten gearbeitet wird, haben die Maßstäbe der einzelnen Dimensionen einen großen Einfluss. Um hier keine Fehler zu verursachen werden die Werte normalisiert.

from sklearn.preprocessing import StandardScaler
 
scaler = StandardScaler()
scaler.fit(X_train)
 
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)

In realen Datensätzen lässt sich jedoch oftmals keine fehlerfreie Trennlinie finden. Aus diesem Grund wird eine Soft Margin verwendet.

Es wird ein Parameter eingeführt, der beschreibt wie stark Fehlklassifikationen vermieden werden sollen. Er kann wenige Fehler erlauben um die Entscheidungsgrenze für alle anderen Werte breiter zu halten.

Polynomialer Kernel

Gegeben ist eine eindimensionale Reihe von Daten die getrennt werden soll. Sie lassen sich nicht durch eine 0-Dimensionale Hyperebene (Einen Punkt) trennen.

Idee ist es, die Daten in einen höherdimensionalen Raum abzubilden um sie dort trennen zu können.

Durch hinzufügen einer Koordinate mit dem Wert verteilen sich die Punkte so im Raum, dass sie sich durch eine 1-Dimensionale Ebene (Gerade Linie) trennen lassen.

Durch den Kernel-Trick müssen die Daten nie direkt transformiert werden. Es ist möglich die Skalarprodukte durch die Kernel-Funktion zu ersetzen, um so aufwändige Berechnungen einzusparen.

Nacharbeiten

Die Kernel-Funktion und wie die Ersparnis erreicht wird ist mir unklar

Der Polynomiale Kernel ist definiert durch:

Wobei

  • Ein konstanter Bias-Term ist, typischerweise
  • Der Grad des Polynoms, ein ganzzahliger Wert mit

Höhere Grade des Polynoms erlauben komplexere Entscheidungsgrenzen und stärke Anpassung an Trainingsdaten. Somit kann auch durch zu große Polynome eine Überanpassung stattfinden.

RBF Kernel

Bei der Radical Basis Function wird zu jedem Datenpunkt eine Gauß’sche Glockenkurve platziert.

Diese Kurven werden summiert und bilden die finale Entscheidungsfunktion.
Das Vorzeichen an einem Punkt sagt aus, welcher Klasse er angehört.

Parameter

Um die Glockenkurve etwas anpassen zu können wurde der Parameter eingeführt. Er wird benutzt um den Bruch im Exponenten zu vermeiden und ist daher folgendermaßen definiert:

Je größer wird, desto spitzer sind die Hügel der Kurven. Bei kleineren Werten nahe flachen die Hügel ab.

Kernelfunktion

Der RBF-Kernel ist durch folgende Funktion definiert:

ist dabei stets positiv und steuert die Breite