Was ist eine Hyperebene?
Eine Hyperebene im n-dimensionalen Raum ist ein (N-1) -Dimensionaler Unterraum; Wenn der Raum dreidimensional ist, sind seine Hyperebenen die zweidimensionalen Ebenen. Ein n-dimensionaler Raum wird immer von einer Reihe von n linear unabhängigen Vektoren überspannt, und es ist immer möglich, n gegenseitig orthogonale Vektoren zu finden, die den Raum überspannen. Dies kann in der Definition eines endlich-dimensionalen Vektorraums liegen oder nicht, aber es ist eine Tatsache, für die Beweise in nahezu jedem linearen Bachelor-Algebra-Lehrbuch zu finden sind.
Infolgedessen wird eine Hyperebene im N-Raum von n-1 linear unabhängigen Vektoren überspannt und verfügt über einen n-ten Vektor (nicht in der Ebene) orthogonal dazu.
Was ist eine Stützvektormaschine?
Die Support Vector Machine (SVM) ist ein überwachtes Binärklassifizierungsalgorithmus für maschinelles Lernen. Bei einer Reihe von zwei Arten von Punkten in N-Dimensionen erzeugt SVM ein (n-1) dimensionales Hyperplane, um diese Punkte in zwei Gruppen zu unterteilen, wie unten gezeigt:
In der obigen Abbildung wählt SVM die rote Linie als die beste Hyperebene, die die blauen und grünen Klassen trennt.
Nehmen wir an, Sie haben zwei Arten von Punkten in einer Ebene, die linear trennbar sind. SVM findet eine gerade Linie, die diese Punkte in zwei Arten unterteilt und so weit wie möglich von allen entfernt ist. Diese Linie ist als Hyperebene bekannt und wurde ausgewählt, damit Ausreißer nicht ignoriert werden und Punkte verschiedener Klassen so weit wie möglich voneinander entfernt sind. Wenn die Punkte nicht getrennt werden können, verwendet SVM eine Kernel -Transformation, um die Dimensionen der Punkte zu erhöhen.
Der oben diskutierte Fall war ziemlich einfach, da die Daten linear trennbar waren - wie wir sahen, konnten wir eine gerade Linie zeichnen, um rote und blaue Arten von Punkten zu trennen.
Was ist, wenn die Daten nicht linear trennbar sind? Wir können die Klassen nicht trennen, indem wir eine gerade Hyperebene zeichnen. Um diese Herausforderung anzugehen, werden wir dem Datensatz eine dritte Dimension hinzufügen. Bis jetzt hatten wir zwei Dimensionen: x und y. Wir erstellen eine neue Dimension und das Mandat, dass sie auf eine Weise berechnet wird, die für uns bequem ist: z = x2 + y2.
Dies erzeugt einen dreidimensionalen Raum aus den vorherigen Punkten. Wir können aus der folgenden Abbildung schließen, dass die Punkte zunächst nicht linear trennbar waren, aber nachdem wir die Kernelfunktion angewendet hatten, haben wir die Datenpunkte leicht getrennt. Es gibt viele Kernelfunktionen, die Sie entsprechend Ihrem Anwendungsfall auswählen können.
Vorteile von SVM
Nachteile von SVM
Aktienkursanweisungen Vorhersage mit SVM
Vorhersagen von Aktienmarkt.
Der Vorteil der Vorhersage der Aktienmarkt.
Die erste Aufgabe für diese Implementierung besteht darin, alle Bibliotheken und Module in unserem Skript zu importieren. Sklearn wird verwendet, um das Modell zu erstellen, Pandas werden zum Umgang mit Datenrahmen verwendet, und Numpy ist für lineare Algebra. Im Folgenden finden Sie die erforderlichen Importe, die wir tun:
von Sklearn.SVM Import SVCDie nächste Aufgabe besteht darin, den Datensatz aus der Datei zu lesen. Die Datei befindet sich im externen Speicher und Sie können den Datensatz hier herunterladen.
# Lesen Sie die CSV -Datei aus dem externen SpeicherWeisen Sie die DateTime als Index des Datenrahmens zu und lassen Sie die Spalte „Datum“ fallen
# Datum als Indexspalte machenWeisen Sie die Eingangsfunktionen einer Variablen zu
# Prädiktorvariablen erstellenWeisen Sie einer anderen Variablen eine Zielspalte zu
# ZielvariablenTeilen Sie den Datensatz in Zug- und Testproben auf. Die Zugproben bauen das Modell auf, während die Testproben die Genauigkeit des Modells identifizieren.
split = int (0.9*len (df))Erstellen Sie jetzt das SVM -Modell
# Support Vector -KlassifikatorSie können die Genauigkeit dieses Modells anhand verschiedener Metriken finden.
Verwenden Sie die folgende Methode, um das Signal der Aktie vorherzusagen, um die folgende Methode zu verwenden.
df ['sig'] = Modell.vorhersagen (x)Abschluss
Dieser Artikel wurde durch die Diskussion, Vorteile und Anwendungsfälle von Support -Vektormaschinen durchgeführt. Es ist ein beliebter und platzeffizienter Algorithmus für Klassifizierungs- und Regressionsaufgaben und verwendet geometrische Prinzipien, um unsere Probleme zu lösen. Später haben wir auch die Vorhersage der Aktienkursanleitung mit dem SVM -Algorithmus implementiert. Aktienkursvorhersage ist in der Geschäftswelt äußerst hilfreich. Wenn wir dafür Automatisierung einsetzen, schafft es mehr Hype für dieses Problem.