Diskussion zum Artikel "MQL5-Assistenten-Techniken, die Sie kennen sollten (Teil 15): Support-Vektor-Maschinen mit dem Newtonschen Polynom"

 

Neuer Artikel MQL5-Assistenten-Techniken, die Sie kennen sollten (Teil 15): Support-Vektor-Maschinen mit dem Newtonschen Polynom :

Support-Vektor-Maschinen klassifizieren Daten auf der Grundlage vordefinierter Klassen, indem sie die Auswirkungen einer Erhöhung der Dimensionalität untersuchen. Es handelt sich um eine überwachte Lernmethode, die angesichts ihres Potenzials, mit mehrdimensionalen Daten umzugehen, ziemlich komplex ist. In diesem Artikel wird untersucht, wie die sehr einfache Implementierung von 2-dimensionalen Daten mit dem Newton'schen Polynom bei der Klassifizierung von Preis-Aktionen effizienter durchgeführt werden kann.

Die Support Vector Machine (SVM) ist ein Klassifizierungsalgorithmus des maschinellen Lernens. Die Klassifizierung unterscheidet sich von der Clusterbildung, die wir in früheren Artikeln hier und hier behandelt haben. Der Hauptunterschied zwischen den beiden besteht darin, dass bei der Klassifizierung die Daten in vordefinierte Gruppen aufgeteilt werden (Überwachtes Lernen), während bei der Clusterbildung versucht wird, zu bestimmen, welche und wie viele dieser Gruppen es gibt (Unüberwachtes Lernen). 

Kurz gesagt, SVM klassifiziert Daten, indem es die Beziehung zwischen jedem Datenpunkt und allen anderen berücksichtigt, wenn eine Dimension zu den Daten hinzugefügt wird. Eine Klassifizierung wird erreicht, wenn eine Hyperebene definiert werden kann, die die vordefinierten Datensätze sauber zerlegt. 

Oft haben die betrachteten Datensätze mehrere Dimensionen, und genau diese Eigenschaft macht die SVM zu einem sehr leistungsfähigen Werkzeug bei der Klassifizierung solcher Datensätze, insbesondere wenn die Anzahl der Datensätze klein ist oder das relative Verhältnis der Datensätze schief ist. Der Quellcode für die Implementierung von SVMs, die mehr als zwei Dimensionen haben, ist sehr komplex, und in vielen Anwendungsfällen in Python oder C# werden immer Bibliotheken verwendet, sodass der Nutzer nur ein Minimum an Code eingeben muss, um ein Ergebnis zu erhalten. 

Hochdimensionierte Daten neigen zu einer Kurvenanpassung der Trainingsdaten, was die Zuverlässigkeit der SVM bei Daten außerhalb der Stichprobe stark beeinträchtigt. Daten mit niedrigeren Dimensionen hingegen lassen sich viel besser kreuzvalidieren, und es gibt mehr allgemeine Anwendungsfälle. 

In diesem Artikel betrachten wir einen sehr einfachen SVM-Fall, der 2-dimensionale Daten verarbeitet (auch bekannt als linear-SVM), da der komplette Quellcode der Implementierung ohne Bezug auf Bibliotheken Dritter gemeinsam genutzt werden soll. Normalerweise wird die trennende Hyperebene von einer der beiden Methoden abgeleitet: einem polynomial Kernel oder einem radialen Kernel. Letzteres ist komplexer und wird hier nicht behandelt, da wir uns nur mit dem ersten, dem Polynomkernel, beschäftigen.

Autor: Stephen Njuki