Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 90

 

Ich habe verschiedene selbst beschriebene Validierungsmethoden ausprobiert, darunter auch die in diesen Artikeln beschriebenen. Meine Schlussfolgerungen lauten wie folgt:

Im Forex gibt es keine strikte Abhängigkeit zwischen der Zielvariablen und den Prädiktoren, im Forex gibt es keine Formel, die gefunden und zur Berechnung neuer Daten angewendet werden kann. Alles, was das Modell tun kann, ist, eine bestimmte Regelmäßigkeit zu finden und die Ergebnisse für den Handel mit neuen Daten zu extrapolieren.
Das heißt, es gibt einen bestimmten mehrdimensionalen Raum (die Dimensionalität ist gleich der Anzahl der Prädiktoren), in dem es mehrere Punkte (bekannte Zielvariablen) gibt. Das Modell konstruiert in diesem Raum eine Hyperebene, die die Punkte im Raum trennt (die Klasse "Kaufen" von der Klasse "Verkaufen"). Es gibt unendlich viele Möglichkeiten, diese Hyperebene zu konstruieren (in einem einfachen Fall - zeichnen Sie vier Punkte auf ein Blatt Papier und ziehen Sie eine gekrümmte Linie zwischen ihnen, so dass sich zwei Punkte rechts der Kurve und zwei Punkte links davon befinden. Die Möglichkeiten, eine Kurve zu zeichnen, sind unendlich). Daher gibt es keine Garantie, dass das konstruierte Modell die korrekte Abhängigkeit der Zielvariablen von den Prädiktoren widerspiegelt. Die Validierung dient dazu, die Angemessenheit des Modells zu überprüfen - einige der Punkte wurden während des Trainings nicht verwendet, und man kann leicht herausfinden, ob das Modell damit zurechtkommt, ob es für diese Testpunkte das richtige Ergebnis zeigt.

Wenn das Modell die Validierung nicht korrekt bestanden hat, kann es viele Gründe dafür geben, z. B.
- das Modell hat einige nicht vorhandene Abhängigkeiten gefunden, die nur in den Trainingsbeispielen existieren
- es gab einige Abhängigkeiten in den Trainingsdaten, die in den Testdaten nicht vorhanden sind. Zum Beispiel, wenn alle Daten für den Test zu einem späteren Zeitpunkt genommen werden und sich das Verhalten des Forex-Symbols geändert hat
- das Modell selbst wird mit einem erfolglosen Seed initialisiert. Es kommt häufig vor, dass ein Modell, das auf denselben Daten trainiert wurde, nach vielen Versuchen, es erneut zu trainieren, bei der Validierung andere Ergebnisse liefert

Es ist nicht bekannt, was in einem bestimmten Fall ein schlechtes Ergebnis verursacht hat. Alles, was wir tun können, ist abzuschätzen, wie gut das Modell im Durchschnitt ist - das Modell Dutzende Male trainieren, bei der Validierung eine Schätzung vornehmen. Die Daten für Training/Validierung sollten jedes Mal neu aufgeteilt werden.
Ich halte es für sinnvoll, die Daten nach dem Zufallsprinzip im Verhältnis 50%/50% aufzuteilen (nicht nach Zeit, sondern so, dass alles gleichmäßig gemischt ist, z.B. Zeilen 1,2,5,7 für Training, 3,4,6,8 für Validierung), das Modell auf dem ersten Teil zu trainieren und dann auf dem zweiten Teil zu validieren, wobei ich die Genauigkeit zur Bewertung des Modells verwende. Wiederholen Sie dies 50 Mal (teilen Sie die Daten erneut in 2 zufällige Teile auf, Training, Validierung). Berechnen Sie dann die durchschnittliche Genauigkeit für die Trainingsdaten und den Durchschnitt für die Validierungsdaten. Nehmen wir an, die durchschnittliche Genauigkeit bei der Trainingsstichprobe beträgt 90 % und die durchschnittliche Genauigkeit bei der Validierungsstichprobe 80 %. Die Genauigkeit beim Fronttest wird sogar noch geringer sein. Ich verwende folgende Faustregel: Berechne die Differenz (90%-80%=10%) und ziehe sie vom Validierungsergebnis ab (80%-10% = 70%). Es zeigt sich, dass ein solches Modell im Fronttest eine durchschnittliche Genauigkeit von etwa 70 % hat. Dann passe ich die Modellparameter und Prädiktoren genetisch an, um diese Schätzung von 70% zu erhöhen (es ist viel schwieriger, als es scheint, es ist schwierig, über 50% hinauszugehen).

Aber mir gefällt nicht, dass dieses Ergebnis nur ein Durchschnittswert ohne Garantien ist. Die tatsächliche Genauigkeit beim Handel liegt zwischen 60 und 80 % oder sogar zwischen 50 und 90 %, je nachdem, wie viel Pech man hat. Wie sehr ich mich auch anstrenge, ich kann nicht das beste Modell finden, egal wie. Wahrscheinlich besteht die einzige Lösung darin, Dutzende von Modellen mit den besten Parametern und Prädiktoren zu erstellen, die gefunden wurden, und das Ergebnis dorthin zu bringen, wo die Mehrheit der Leute hinschaut (Kongress der Modelle).

Dies steht in engem Zusammenhang mit dem, was SanSanych am Anfang des Threads sagte. Sie können auch den letzten Teil der bekannten Daten für die letzte Kontrollstichprobe weglassen, wie er es empfohlen hat. Verwenden Sie diese Daten nicht für Training und Validierung, sondern speichern Sie sie einfach separat bis zum Ende des Modelltrainings. Testen Sie dann das fertige Modell oder den Kongress anhand dieser Daten. Dies hat den Vorteil, dass Sie sehen können, wie das Modell bei neuen zeitgewichteten Daten abschneidet. Der Nachteil ist, dass weniger Daten für Training und Validierung übrig bleiben und das Modell zu Beginn des Handels ein wenig veraltet ist. Es gibt hier eine kleine Nuance: Wenn Ihnen das Ergebnis auf diesen Kontrolldaten nicht gefiel und Sie begannen, ein Modell auszuwählen, das auf dieser Seite ein gutes Ergebnis zeigt - dann begannen Sie, diese Daten zur Validierung zu verwenden, dementsprechend wird das Modell mit ihnen im Hinterkopf ausgewählt, und daher gibt es einen kleinen Blick in die Zukunft, die Kontrolle und dieser ganze Vorgang verliert seine Bedeutung, und in diesem Fall war es einfacher, überhaupt keine Kontrollstichprobe zu machen.

 
Dr. Trader:

Ich habe verschiedene selbst geschriebene Validierungsmethoden ausprobiert, darunter auch die in diesen Artikeln beschriebenen. Meine Schlussfolgerungen lauten wie folgt:

Im Forex gibt es keine strikte Beziehung zwischen Zielvariable und Prädiktoren, im Forex gibt es keine Formel, die gefunden und angewendet werden kann, um neue Daten zu berechnen. Alles, was ein Modell tun kann, ist, eine Art Muster zu finden und die Ergebnisse zu extrapolieren, um mit neuen Daten zu handeln.
Mit anderen Worten: Es gibt einen bestimmten mehrdimensionalen Raum (die Dimensionalität entspricht der Anzahl der Prädiktoren), in dem sich mehrere Punkte (bekannte Zielvariablen) befinden. Das Modell bildet in diesem Raum eine Hyperebene, die die Punkte im Raum (die Klasse "Kaufen" von der Klasse "Verkaufen") trennt. Es gibt unendlich viele Möglichkeiten, diese Hyperebene zu konstruieren (in einem einfachen Fall - zeichnen Sie vier Punkte auf das Blatt, und ziehen Sie eine gekrümmte Linie zwischen ihnen, so dass es zwei Punkte rechts von der Kurve gibt, und zwei auch links. Die Möglichkeiten, eine Kurve zu zeichnen, sind endlos). Daher gibt es keine Garantie, dass das konstruierte Modell die korrekte Abhängigkeit der Zielvariablen von den Prädiktoren widerspiegelt. Um die Angemessenheit des Modells zu überprüfen, wird die Validierung verwendet - einige Punkte wurden beim Training nicht verwendet, und es ist leicht herauszufinden, ob das Modell versagt hat, wenn es für diese Testpunkte das richtige Ergebnis anzeigt.

Wenn das Modell bei der Validierung durchfällt, kann das viele Gründe haben.
- das Modell fand einige Abhängigkeiten, die nicht existierten und nur in den Trainingsbeispielen vorhanden waren
- es gibt eine Abhängigkeit in den Trainingsdaten, die in den Testdaten nicht vorhanden ist. Wenn beispielsweise alle Daten für einen Test zu einem späteren Zeitpunkt erhoben werden und sich das Verhalten des Devisensymbols geändert hat
- das Modell selbst mit einem erfolglosen Seed initialisiert worden ist. Es kommt häufig vor, dass ein Modell, das mit denselben Daten trainiert wurde, nach mehreren Versuchen, es erneut zu trainieren, bei der Validierung andere Ergebnisse liefert.

Es ist nicht bekannt, was in einem bestimmten Fall zu einem schlechten Ergebnis geführt hat. Alles, was wir tun können, ist abzuschätzen, wie gut ein Modell im Durchschnitt ist - das Modell Dutzende Male erstellen, die Validierung abschätzen. Die Trainings-/Validierungsdaten müssen jedes Mal neu aufgeteilt werden.
Ich halte es für sinnvoll, die Daten nach dem Zufallsprinzip in einem Verhältnis von 50 %/50 % aufzuteilen (nicht nach Zeit, sondern so, dass alles gleichmäßig gemischt ist, z. B. Zeilen 1, 2, 5, 7 für das Training, 3, 4, 6, 8 für die Validierung), das Modell auf dem ersten Teil zu trainieren und dann auf dem zweiten Teil zu validieren, wobei ich für die Modellbewertung die Genauigkeit verwende. Wiederholen Sie diesen Vorgang 50 Mal (erneute Aufteilung der Daten in 2 zufällige Teile, Training, Validierung). Berechnen Sie dann die durchschnittliche Genauigkeit für die Trainingsdaten und die durchschnittliche Genauigkeit für die Validierungsdaten. Angenommen, die durchschnittliche Genauigkeit in der Trainingsstichprobe beträgt 90 %, in der Validierungsstichprobe 80 %. Die Genauigkeit im Fronttest wird noch geringer sein. Ich verwende folgende Faustregel: Berechne die Differenz (90%-80%=10%) und ziehe sie vom Validierungsergebnis ab (80%-10% = 70%). Es zeigt sich, dass ein solches Modell im Fronttest eine durchschnittliche Genauigkeit von etwa 70 % aufweist. Außerdem passe ich die Modellparameter und Prädiktoren genetisch an, um diese Schätzung von 70 % zu erhöhen (das ist viel schwieriger, als es scheint, es ist schwierig, überhaupt über 50 % hinauszukommen).

Aber mir gefällt nicht, dass dieses Ergebnis nur ein Durchschnittswert ist, der keine Garantien bietet. Die tatsächliche Genauigkeit beim Handel liegt bei 60 % bis 80 % oder sogar 50 % bis 90 %, je nachdem, wie viel Pech Sie haben. Egal wie ich es versuche, es ist unmöglich, das beste Modell herauszufischen, egal wie. Wahrscheinlich besteht die einzige Lösung darin, Dutzende von Modellen mit den besten Parametern und Prädiktoren zu erstellen und das Ergebnis dorthin zu bringen, wo die meisten Leute suchen (Kongress der Modelle).

Dies steht in engem Zusammenhang mit dem, was SanSanych zu Beginn des Threads sagte. Sie können auch seinem Rat folgen und den letzten Teil der bekannten Daten für die letzte Kontrollprobe entfernen. Verwenden Sie diese Daten nicht für Training und Validierung, sondern speichern Sie sie bis zum Ende des Modelltrainings separat. Testen Sie dann das fertige Modell oder den Kongress anhand dieser Daten. Dies hat den Vorteil, dass es zeigt, wie sich das Modell auf die neuen Zeitdaten auswirkt. Der Nachteil ist, dass weniger Daten für Training und Validierung übrig bleiben und das Modell zu Beginn des Handels etwas veraltet sein wird. Es gibt hier eine kleine Nuance: Wenn einem die Ergebnisse der Benchmark-Daten nicht gefallen und man beginnt, ein Modell auszuwählen, das in diesem Bereich gute Ergebnisse liefert, beginnt man, diese Daten zur Validierung zu verwenden, bzw. ein Modell auszuwählen, das diese Daten berücksichtigt, und somit gibt es einen leichten Blick in die Zukunft, und die ganze Operation wird sinnlos, und in diesem Fall war es einfacher, die Benchmark-Auswahl überhaupt nicht durchzuführen.

Das ist richtig! ©

Aber, eine entscheidende Nuance. Für die Kreuzvalidierung und den verschachtelten Lebenslauf der obersten Schicht müssen wir zeitlich getrennte Beobachtungen machen. Nun, oder zumindest für die oberste Schicht nehmen Sie spärliche Stichproben von Daten, die nicht mit dem Training und dem unteren CV übereinstimmen.

Die Ergebnisse dürften schlechter, aber wahrer sein.

Wenn wir eine Korrelation zwischen den Ergebnissen des CV und des verschachtelten CV erhalten (Korrelation). Dann passt das Modell zu den Daten.
 
Eidechse_:
Noch nicht)))
7 nachgeschlagen. Die Schnitte sind nicht besser als die Version von vor einem halben Jahr, oder wenn ich sah, ist nicht genau erinnern. Im Fenster und in der fylo-Statistik wird anders geschrieben. Auswahl der Bedeutung von Inputs
fragwürdig, im direkten Vergleich mit rf und einigen anderen, und kann sehr unwichtigen Dingen hohe Priorität einräumen. Wenn Sie den besten Schnitt (aus dem Fenster) nehmen, ist immer noch nicht gut.
Bei diesen Daten erhalte ich mindestens 92 %. Stück (wie es ist) ist immer noch von geringem Nutzen für praktische Zwecke. Hut ab vor der Leistung bei der Entwicklung und dem Ideenreichtum.

Natürlich nur imho. Jetzt erst einmal)))


Wenn wir es mit jemandem von Reshetovs Niveau zu tun haben, können wir getrost fordern:

1. eine Übersicht über die Analoga

2. Ein Hinweis auf die Unzulänglichkeiten, die bei diesen Analoga überwunden werden sollen

3. Angabe des Mechanismus zur Beseitigung dieser Mängel (die Einzelheiten können Sie in der Marktwirtschaft verbergen)

4. Vergleich der Analoga mit Ihrer Entwicklung. Dieser Vergleich sollte zeigen, dass alle oben genannten Nachteile der bestehenden Prototypen beseitigt wurden. Und man erhält ein Werkzeug, das NICHT schlechter ist als die analogen Produkte.

Wenn eine Person mit dem Niveau von Reshetov das nicht tut, dann ist das eben so: Reschetow ist zu loben für seine Mühe bei der Entwicklung und dem Flug der Gedanken.

 
SanSanych Fomenko:

dann können Sie sicher verlangen:

))))))
 
Eidechse_:
Noch nicht)))
7 schaute. Resurs nicht besser als die Version von vor einem halben Jahr, oder wenn ich sah, ist nicht genau erinnern. Im Fenster und in der fylo-Statistik wird anders geschrieben. Auswahl der Bedeutung von Inputs
fragwürdig, im direkten Vergleich mit rf und einigen anderen, und kann sehr unwichtigen Dingen hohe Priorität einräumen. Wenn Sie den besten Schnitt (aus dem Fenster) nehmen, ist immer noch nicht gut.
Bei diesen Daten erhalte ich mindestens 92 %. Stück (wie es ist) ist immer noch von geringem Nutzen für praktische Zwecke. Hut ab für die Mühe, die Sie sich mit der Entwicklung und dem Flug der Fantasie gemacht haben.

Natürlich nur imho. Tschüss!)))


Das Ergebnis im Fenster ist ein Ausschuss von zwei Modellen. Wenn man sich die Datei anschaut, die die beiden Vorhersagemodelle speichert, sieht man im Fenster das Ergebnis des Ausschusses dieser beiden Modelle. so....
 
Eidechse_:
Verstehe, Notepad ist komprimiert, und ich habe es nicht heruntergedreht)))Aber ich habe es zum Vergleich aus dem Fenster genommen.
Ich löschte sofort mangels Nutzen, obwohl jemand nützlich sein könnte...
Alles in allem denke ich, dass man diese Arbeit nicht kritisieren sollte. Erstens beantwortet sie eine sehr wichtige Frage, nämlich den Prozentsatz der in den Eingabedaten enthaltenen verallgemeinernden Informationen in Bezug auf die Ausgabe. Und zweitens, wenn Yuri auf meinen Vorschlag hört, werden Sie eine Bombe bekommen, die viele Fragen klären wird. Leider ist es mir nicht gelungen, das Modell zu 100 % auf meine Daten zu übertragen (ohne Manipulationen an den Daten, die die Generalisierungsfähigkeit erhöhen, wie sich herausstellte), um zu sehen, wie das Modell in Zukunft funktionieren wird. Sobald Sie jedoch eine 100%ige Generalisierung durch einen Ausschuss haben, müssen Sie sicherstellen, dass jedes Modell die gleichen 100% hat, d.h. dass die Eingabedaten die Ausgabe vollständig beschreiben. Dann werden wir sehen.... In der Zwischenzeit sind die Schlussfolgerungen über die Unbrauchbarkeit des Optimierers verfrüht. Ein weiterer Punkt ist, dass jeder von uns versucht, ein Modell für das IDEALE Ergebnis zu erstellen. Das wiederum ist äußerst schwierig, wenn nicht gar unmöglich. Nun, was ist, wenn die Ausgabe nicht IDEAL ist, aber mit ein paar Fehlern..... Das ist es, was interessant ist..... Sagen wir, mit einem nicht die Signale zu markieren, die einen Gewinn von 100 Pips haben, sondern auch diejenigen, die einen Gewinn von -30 Pips und höher haben.... Unter dieser Annahme reicht es aus, ein Signal zu nehmen, das 30 Pips besser ist, und das Problem ist gelöst, wenn es uns gelingt, ein Modell mit einem Generalisierungsgrad von 100% zu erstellen
 
Bei der Erstellung von Klassifizierungsmodellen ist die Reihenfolge der Datensätze im Allgemeinen nicht sehr wichtig, wichtig ist, dass das Modell sie zu 100 % erlernt und dass die Marktreaktion in naher Zukunft auf dieselben Ereignisse dieselbe ist. Sozusagen das Fehlen von widersprüchlichen Daten. Bei den Prognosemodellen ist die Reihenfolge der Datensätze wichtig. Dies ist einer der Unterschiede zwischen Klassifizierung und Vorhersage.....
 

Ich frage mich, ob uns das helfen wird.... Ich gehe also davon aus, dass die Rechenleistung eines solchen Geräts um eine Größenordnung höher ist, wenn nicht sogar mehrere....

https://hi-tech.mail.ru/news/compact-quantum-computer/?frommail=1

 
SanSanych Fomenko:
Mihail Marchukajtes:
Und alle, die kommen. Im z1-Archiv gibt es zwei Dateien train und test. Für Target Modell auf Train aufbauen, auf Test anwenden, Ergebnisse in % angeben (erfolgreich vorhergesagt)
der Fälle) für beide Stichproben (Zug = xx%, Test = xx%). Methoden und Modelle müssen nicht bekannt gegeben werden, nur Zahlen. Jede Datenmanipulation ist erlaubt
und Abbauverfahren.
Dateien:
z1.zip  43 kb
 
Eidechse_:
Und alle, die kommen. Das z1-Archiv enthält zwei Dateien: train und test. Für Target, Modell auf Train aufbauen, auf Test anwenden, Ergebnisse in % veröffentlichen (erfolgreich vorhergesagt
der Fälle) für beide Stichproben (Zug = xx%, Test = xx%). Methoden und Modelle müssen nicht bekannt gegeben werden, nur Zahlen. Jede Datenmanipulation ist erlaubt
und Abbauverfahren.

Ich danke Ihnen! Ich werde es ausprobieren.

Wir vereinbaren, dass wir uns erst dann mit dem Test befassen, wenn das trainierte Modell ausgewertet wurde. Ich habe es schon einmal getan.

Das heißt, wir trainieren so lange, bis wir das beste Modell im Zug haben. Vielleicht zwei oder drei Modelle. Dann ihre einmalige Prüfung.