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

 


Ich interessiere mich für den Artikel, aber bei der Kompilierung habe ich dieses Problem:


Datei 'C:\Users\sxxxxx\AppData\Roaming\MetaQuotes\Terminal\4B1CE69F57770545xxxxxxxxxx2C\MQL5\Include\my\Cnewton.mqh' nicht gefunden


 
SergioTForex #:


Ich interessiere mich für den Artikel, aber bei der Kompilierung habe ich dieses Problem:


Datei 'C:\Users\sxxxxx\AppData\Roaming\MetaQuotes\Terminal\4B1CE69F57770545xxxxxxxxxx2C\MQL5\Include\my\Cnewton.mqh' nicht gefunden


Ja, der Bro hat diese Bibliothek nicht eingebunden.

Ich habe mir einige seiner Artikel durchgelesen, allerdings habe ich diesen nicht vollständig gelesen.

Aber so wie ich es verstanden habe, übernimmt er die Arbeit aus seinen früheren Diskussionen. Wenn Sie also einfach chronologisch zurückgehen, werden Sie diese Klasse finden.
 
Ich habe Cnewton.mqh nicht gefunden .
 
SergioTForex #:
Ich habe Cnewton.mqh nicht gefunden .

Es gibt eine Klasse mit diesem Namen (in früheren Artikeln), aber sie ist nicht die gleiche für dieses Beispiel, kann nicht verwendet und kompiliert werden.

Der Autor dieses Artikels sollte diese Bibliothek einschließen, damit wir sie verwenden können.

 
Milan Zivanovic #:

Es gibt eine Klasse mit diesem Namen (in früheren Artikeln), aber es ist nicht das gleiche für dieses Beispiel, kann nicht verwendet werden und kompilieren.

Der Autor dieses Artikels sollte diese Bibliothek enthalten, damit wir sie verwenden können.

Hallo,

Der Anhang wurde hinzugefügt und der Artikel wurde zur Veröffentlichung gesendet. Er sollte bald aktualisiert werden.