Support Vector Machine erklärt > Beispiel + Python GUIDE

SVM einfach erklärt- Coding Lab Steffen Lippke Tutorial GUIDE
SVM einfach erklärt- Coding Lab Steffen Lippke Tutorial GUIDE

Was zum Henker ist eine Support Vector Machine?

Etwas mit Vektoren? Oder ein Roboter?

Hier eine visuelle Erklärung, wie Du die Support Vector Machines ohne viel Vorwissen verstehen kannst!

Auf geht’s !

Was ist eine Support Vector Machine

00 Der Neue - Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab
00 Der Neue – Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab

Definition: Eine Support Vector Machine (SVM) ist ein Machine Learning Modell, welches einzelne Objekte in Klassen aufteilt und neue Objekte in die Klassen einsortiert.

Eine Support Vector Machine (SVM) nutzen die Data Scientists, Forscher, Mathematik und viele andere für verschiedene Zwecke.

Anwendung der Support Vector Machine

Warum brauche ich eine SVM? Data Scientists wollen die teure, ungenaue und langsame menschliche Arbeit durch effiziente mathematische Modelle (dem Machine Learning) ersetzen. Forscher nutzen SVMs zur Klassifikation…

Die Anwendungen von SVMs sind unbegrenzt, solange Du viele Objekte in zwei oder mehrere Klassen gruppieren möchtest und Du genügend aussagekräftige Parameter zur Verfügung hast.

Erklärung anhand eines Beispiels

Anstatt Dich mit Formeln und komischen Beschreibungen zu bombardieren, erkläre ich Dir die SVM anhand eines Beispiels.

01 Beispiel mit dem Bär - Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab
01 Beispiel mit dem Bär – Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab

Der Ur-Grizzly vs. normaler Grizzly

Vor 5300 Jahren machte ein Ur-Grizzly die Wälder von Kanada unsicher. Der Ur-Grizzly war 3 Tonnen schwer, 4 Meter hoch und hatte 34 cm lange Zähne (Das ist natürlich alles wahr). Von dem Skelett bleibt oft nur der Oberschenkel-Knochen vollständig erhalten. Dieser sieht dem Oberschenkel-Knochen des heutigen Grizzlys sehr ähnlich.

Das Ziel und Aufgabenstellung

Eine Support Vector Machine soll bei dem Fund eines Knochens anhand von Gewicht und Länge erkennen, ob es sich um einen echten UR-Grizzly handelt oder einen kürzlich verstorbenen normalen Grizzly aus dem kanadischen Forst.

Beispiel: Archäologe – Oberschenkel-Knochen von einem Ur-Grizzly vs. heutiger Grizzly

Verfügbare Merkmale aus der Statistik

Die Data Scientist brauchen die wesentlichen Merkmale von den Forschern zur Unterscheidung. Die Forscher haben zwei Merkmale erkannt, mit der eine Bestimmung in wenigen Minuten möglich ist:

  • Gewicht: kontinuierliche Intervall-Skala in Gramm
  • Länge: kontinuierliche Intervall-Skala in Millimeter
02 Zwei Achsen - Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab
02 Zwei Achsen – Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab

Das Gewicht und die Länge des Knochens soll bei der Unterscheidung zwischen dem Ur-Grizzly und den heutigen nordamerikanischen Grizzly Bären helfen:

Merkmal Knochen

Ur-GrizzlyNormaler Grizzly
Gewicht800 – 1200 g600 – 900 g
Länge300 – 400 mm200 – 300 mm

Wenn die Forscher den Grizzly-Typen bestimmen, müssen diese eine C14-Probe durchführen, um das Alter des Knochens zu bestimmen. C14 ist ein Isotop des Kohlenstoffs, der radioaktiv zerfällt und jedes Lebewesen mit der Nahrung aufnimmt. Nach dem Tod sinkt Jahr für Jahr die Konzentration von C14 ab, um die Forscher können das Todesjahr bestimmen.

Eine solche Probe ist teuer und zeitaufwendig. Eine SVM kann die Forscher unterstützen, indem sie auf Basis der Parameter zu 95 % korrekt die Knochen zu ordnen kann.

03 Klassfikation - Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab
03 Klassfikation – Was ist eine SVM Tutorial Steffen Lippke Coding Lab

Zentrale Frage:

Ist der Knochen von einem Ur-Grizzly oder einem normalen Grizzly?

Support Vector Machine mit zwei Merkmalen

Wir sehen uns die Streuung der bisherigen durchgeführten C14-Proben auf einem Diagramm mit zwei Achsen an.

Das Gewicht ist auf der y- und die Länge auf der x-Achse abgebildet. Die Forscher haben 100 C14-Proben für 100 Knochen durchgeführt, die uns eindeutig sagen, welcher Bären-Typ vorliegt.

Die SVM braucht ein Startkapital, eine Grundlage, um zu funktionieren.

Eine Support Vector Machine legt eine Trennungsgrade zwischen die zwei Punktewolken f(x) = mx + b, die die Cluster voneinander abtrennt.

04 Trennungsgerade - Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab
04 Trennungsgerade – Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab

Herausforderung mit Support Vector Machines

Problem: Wie unterscheidet die SVM einen gestorbenen Baby-Ur-Grizzly von einem Riesen-Grizzly aus der heutigen Zeit?

05 Achtung Fehler - Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab
05 Achtung Fehler – Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab

Einige Punkte des Ur-Grizzlys liegen dicht an der Punktewolke des normalen Grizzlys. Wenn eine neue C14-Probe ergibt, dass der Knochen eines heutigen Riesen-Grizzlys vorliegt, muss die SVM die Trennungsgrade des SVM verschieben.

06 Verschieben so gehts - Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab
06 Verschieben so gehts – Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab

Die SVM mag keine Ausreißer.

Die Miss-Klassifikationen

Vorsicht!

07 noch mehr Fehler - Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab
07 noch mehr Fehler – Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab

Weitere C14-Proben zeigen noch mehr Miss-Klassifikationen auf. Warum muss die SVM die Trennungsgrade so weit verschieben?

Zieht die SVM die Gerade ein paar Zentimeter zurück, sinkt die Anzahl der zukünftigen Miss-Klassifikationen erheblich. In dieser Position liegt die SVM in den meisten Fällen korrekt.

08 Zurück - Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab
08 Zurück – Was ist eine Support Vector Machine Tutorial Steffen Lippke Coding Lab

Arten von Margins

Die SVM nutzt folgende Abstände:

  • „weicher Abstand“ (Soft Margin) nutzten die Data Scientist, wenn diese nicht direkt mit einer Linie trennbar sind
09 Soft Margin - Was ist eine SVM Tutorial Steffen Lippke Coding Lab
09 Soft Margin – Was ist eine SVM Tutorial Steffen Lippke Coding Lab
  • „harter Abstand“ (Hard Margin) sind mit einer Linie oder einer Hyperplane (Ebene im 3D-Koordinatensystem) trennbar
  • 10 Hard Margin - Was ist eine SVM Tutorial Steffen Lippke Coding Lab
    10 Hard Margin – Was ist eine SVM Tutorial Steffen Lippke Coding Lab

    Praktische Umsetzung mit Python

    Die Programmiersprache Python stellt, eine sehr gute Machine-Learning-Bibliothek scikit-learn zur Verfügung, die viele Modelle automatisch bearbeitet. Dazu gehören:

    • Klassifikation
    • Regression
    • Clusterung
    • Reduktionen der Dimensionen
    • Modellauswahl

    Die Funktion shuffel verteilt zufällig die klassifizierten Merkmale in einen Testdatensatz und ein Trainingsdatensatz.

    from sklearn.utils import shuffle

    X, Y = shuffle(X,Y)

    Die Funktion Cross_validation erstellt die eigentliche Support Vector Machine.

    from sklearn.cross_validation import train_test_split

    x_train, x_test, y_train, y_test = train_test_split(X, Y, train_size=0.9)

    Support Vector Machine mit 3+ Merkmalen

    Eine SVM kommt mit mehreren Variablen zurecht.

    Nutze mehrere Features (Dimensionen), um andere Merkmale wie die Breite, Knochendichte, Bruchfestigkeit usw. in der SVM zu modellieren.

    Bei drei Merkmalen trennt die SVM die Cluster in einem 3D-Koordinatensystem anhand einer Ebene, die das mathematische Modell in den Raum legt.

    Eine graphische Darstellung ab 5 Dimensionen ist nur verwirrend und unschlüssig. Mathematisch sind Modelle mit 3+ Dimensionen umsetzbar. Je mehr Features eine SVM hat, desto mehr Rechenpower braucht Dein Computer.

    Was ist der Kernel-Trick?

    Die SVMs unterstützen nicht nur die linearen Trennungslinien.

    Bei mehreren Dimensionen erstellt die SVM eine Ebene, die die Cluster voneinander trennt. Alternativ verwendet die SVM radiale oder polynomiale Kernel, die Trennung durch lineare / planer Ebenen durch geschwungene Trenner erweitert. Eine SVM kann nicht in allen Fällen die Cluster voneinander trennen.

    Die SVM ist nur so gut, wie das Grundlagen-Modell. Du musst als Mensch viele Datenpunkte richtig einsortieren. Die SVM reproduziert jeden Fehler, den Du bei der Initialladung dem Modell zum Rechnen gibst. Achte auf hoch-qualitative Daten, die in einer hohen Quantität verwendet werden.

    Quellenangabe Bilder: Icons und SVG-Grafiken im Titelbild von Microsoft PowerPoint 2019, frei verfügbar nach EULA

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht.

    Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.