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

 
elibrarius:

Gefunden in ALGLIB Frühstopptraining mit Validierungsabschnitt:

Training des neuronalen Netzes mit Frühstopp (Basisalgorithmus - L-BFGS mit Regularisierung).
...
Der Algorithmus stoppt, wenn der Fehler des Validierungssatzes über einen längeren Zeitraum
genug oder die Schrittweite ist klein genug (es gibt Aufgaben, bei denen
Validierungssatz kann für die Ewigkeit abnehmen). In jedem Fall Lösung
zurückgegeben wird, entspricht dem Minimum des Validierungssatzfehlers.


Irgendetwas scheint mir falsch zu sein, denn im realen Handel werden die Balken in ihrer eigenen Reihenfolge angezeigt und nicht mit denen von vor einer Stunde und einem Tag vermischt.
Und wenn sich die "Natur" des Marktes ändert, bedeutet das, dass man neu lernen oder nach neuen NS-Modellen suchen muss.


Haben Sie mehr als 500 Links in Ihrem Netz? Sie schreiben, dass L-BFGS weniger effizient als L-M ist, wenn es nur wenige Neuronen gibt
 
Maxim Dmitrievsky:

Haben Sie mehr als 500 Anschlüsse in Ihrem Netz? Sie schreiben, dass L-BFGS weniger effizient als L-M ist, wenn es nur wenige Neuronen gibt
Bisher weniger, um Zeit zu sparen - Entwicklungsphase, wenn ich fertig bin, werde ich mich auf die Suche nach Prädiktoren und Netzschema machen
 
elibrarius:
Bisher weniger, um Zeit zu sparen - Entwicklungsphase, wenn ich fertig bin, werde ich hart daran arbeiten, Prädiktoren und Netzwerkdiagramme zu finden


Vielleicht können Sie einen Artikel schreiben, wenn Sie alles herausgefunden haben? :) Keine guten Artikel über Alglibian neural network, es ist eine schwer zu verdauen übersetzt.

Artikel Art der Beschreibung von NS (weil ich nicht einmal richtige Hilfe für alglib finden konnte) und Beispiel für Lernen/Umschulung, Auto-Optimierung im Bot. Nun, das ist nur meine Meinung, ich habe gerade festgestellt, dass es nicht genug Informationen zum Studieren gibt. Es ist wie selbst bezahlen für sie ) verbringen Sie Ihre Zeit nicht vergeblich

 
Maxim Dmitrievsky:


Warum schreibst du nicht einen Artikel, wenn du alles herausgefunden hast? :) Es gibt keine guten Artikel über Alglib Neuronics, es gibt einen schwer zu verstehenden übersetzt

Artikel Art der Beschreibung von NS (weil ich nicht einmal richtige Hilfe für Alglib finden konnte) und Beispiel für Lernen/Umschulung, Auto-Optimierung im Bot. Nun, das ist nur meine Meinung, ich habe gerade festgestellt, dass es nicht genug Informationen zum Studieren gibt. Für diese Art von mehr bezahlen) verbringen Sie Ihre Zeit nicht umsonst.

Das glaube ich nicht - ich werde keine Zeit für einen Artikel finden... Ich werde nicht genug Zeit haben, um einen Artikel zu finden, und ich selbst habe gerade erst begonnen, NS zu verstehen, daher kann ich nichts Neues/Intelligentes sagen.

Ich habe https://www.mql5.com/ru/articles/2279 als Grundlage genommen. Ich habe es innerhalb von 8 Stunden in Betrieb genommen. Ich denke, die meisten Programmierer werden sich nicht mehr Zeit nehmen.

Aber es war eine Woche der Überarbeitung, des Hinzufügens von Optionen, Tests usw.
Нейросеть: Самооптимизирующийся советник
Нейросеть: Самооптимизирующийся советник
  • 2016.10.03
  • Jose Miguel Soriano
  • www.mql5.com
Возможно ли создать советник, который согласно командам кода автоматически оптимизировал бы критерии открытия и закрытия позиций с определенной периодичностью? Что произойдет, если реализовать в советнике нейросеть (многослойный персептрон), которая, будучи модулем, анализировала бы историю и оценивала стратегию? Можно дать коду команду на ежемесячную (еженедельную, ежедневную или ежечасную) оптимизацию нейросети с последующим продолжением работы. Таким образом возможно создать самооптимизирующийся советник.
 
elibrarius:
Das glaube ich nicht - ich werde nicht zu 100 % Zeit für einen Artikel haben... Außerdem fange ich selbst gerade erst an, NS zu verstehen, so dass ich nichts Kluges/Neues sagen kann.

Ich habe https://www.mql5.com/ru/articles/2279 als Grundlage genommen. Ich habe es innerhalb von 8 Stunden in Betrieb genommen. Ich denke, die meisten Programmierer werden sich nicht mehr Zeit nehmen.

Aber es wurde eine Woche lang überarbeitet, zusätzliche Optionen hinzugefügt, Tests durchgeführt usw.


Ich bin immer noch auf der Suche nach einem Bayes'schen Klassifikator + Genetik, keine schlechten Ergebnisse. Mit Gittern ist es in meinem Kopf ein bisschen unübersichtlich, viele Nuancen

Ja, ich meine denselben Artikel, er schien mir nicht sehr akzeptabel zu sein, obwohl ich eher ein Händler als ein Programmierer bin.)

 
Die Situation beim Mischen der Ergebnisse bleibt unklar:

Frühzeitiges Training mit ungemischten Daten:

Durchschnittlicher Fehler beim Training (80%) Plot =0,535 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Durchschnittlicher Fehler im Validierungsabschnitt (20%) =0,298 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Vollständiges Diagramm (Trainings- und Validierungsdiagramm):
Durchschnittlicher Lernfehler=0,497 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Mittlerer Fehler im Test (20%) Abschnitt =0,132 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6

Ich habe das Gefühl, dass die Handlung der Validierung angepasst wurde. Der Test ist gut, aber er war nicht in der Ausbildung und wurde nicht verglichen, wahrscheinlich nur ein Zufall.
Derselbe Fay zählt Ensembles, und es gibt eine 2/3 Aufteilung und alles wird zwischen beiden Plots gemischt, ich werde versuchen, das gleiche zu tun...
Es wurde gemischt:

Mittlerer Fehler im Trainingsbereich (60%) =0,477 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Mittlerer Fehler bei der Validierung (40%) Abschnitt =0,472 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Vollständiges Diagramm (Trainings- und Validierungsdiagramm):
Durchschnittlicher Lernfehler=0,475 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Durchschnittlicher Fehler im Test (20%) Abschnitt =0,279 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6

Durch das Mischen wird der Fehler in den Trainings- und Validierungsabschnitten ausgeglichen.
Und bei der Prüfung wurde es noch schlimmer.

Es erscheint falsch, die Daten zu mischen und dann in Trainings- und Validierungsabschnitte aufzuteilen, denn im realen Handel werden die Balken ihrer eigenen Reihenfolge folgen und nicht mit denen von vor einer Stunde, einem Tag oder einer Woche vermischt. Ähnlich verhält es sich bei Kreuzvalidierungsalgorithmen, bei denen der Validierungsabschnitt am Anfang, dann in der Mitte und dann am Ende steht.
Und wenn sich die "Natur" des Marktes ändert, bedeutet dies, dass wir neu lernen oder nach neuen NS-Modellen suchen müssen.

Und wenn Sie im letzten Abschnitt nicht mischen und validieren, wie vermeiden Sie es dann, in diesen Abschnitt zu passen?
 
Elibrarius:
4 Grundstücke - funktioniert das? Training/Validierung/Test1/Test2 ?

Wie viele Schulungs-/Validierungszyklen müssen Sie durchführen? Ich habe nirgendwo Informationen darüber gesehen.... 1 Zyklus insgesamt? - und gleich danach genehmigen oder ändern wir etwas in der Prädiktorengruppe oder im Netzwerkschema? Genauer gesagt wird uns in N Trainingszyklen ein Bestes gezeigt.


Testabschnitt2 ist ein Urteil: keine Übereinstimmung, dann fangen wir wieder von vorne an, vorzugsweise mit einer Reihe von Prädiktoren


PS.

Übrigens gibt es auch einen Tester, der das endgültige Urteil des TC fällt.

 
elibrarius:
Die Situation beim Mischen der Ergebnisse bleibt unklar:

Frühzeitiges Stopp-Lernen bei nicht-intermittierenden Daten:

Durchschnittlicher Fehler der Trainingsstichprobe (80%) =0,535 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Mittlerer Fehler bei der Validierung (20%) Abschnitt =0,298 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Vollständiges Diagramm (Trainings- und Validierungsdiagramm):
Durchschnittlicher Lernfehler=0,497 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Mittlerer Fehler im Test (20%) Abschnitt =0,132 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6

Ich habe das Gefühl, dass die Handlung der Validierung angepasst wurde. Der Test ist gut, aber er war nicht in der Ausbildung und wurde nicht verglichen, wahrscheinlich nur ein Zufall.
Derselbe Fay zählt Ensembles, und es gibt eine 2/3 Aufteilung und alles ist zwischen beiden Plots gemischt, ich werde versuchen, das gleiche zu tun...
Es wurde gemischt:

Mittlerer Fehler im Trainingsbereich (60%) =0,477 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Mittlerer Fehler bei der Validierung (40%) Abschnitt =0,472 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Vollständiges Diagramm (Trainings- und Validierungsdiagramm):
Durchschnittlicher Lernfehler=0,475 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Durchschnittlicher Fehler im Test (20%) Abschnitt =0,279 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6

Durch die Vermischung wird der Fehler in den Trainings- und Validierungsabschnitten ausgeglichen.
Und bei der Prüfung wurde es noch schlimmer.

Es erscheint falsch, die Daten zu mischen und dann in Trainings- und Validierungsabschnitte aufzuteilen, denn im realen Handel werden die Balken ihrer eigenen Reihenfolge folgen und nicht mit denen von vor einer Stunde, einem Tag oder einer Woche vermischt. Ähnlich verhält es sich bei Kreuzvalidierungsalgorithmen, bei denen der Validierungsabschnitt am Anfang, dann in der Mitte und dann am Ende steht.
Und wenn sich die "Natur" des Marktes ändert, bedeutet das, dass wir neu lernen oder nach neuen NS-Modellen suchen müssen.

Und wenn man im letzten Abschnitt nicht mischt und validiert, wie vermeidet man es dann, in diesen Abschnitt zu passen?


1. Meines Erachtens trainieren Sie überhaupt nichts - nur ein zufälliges Ergebnis auf Prädiktoren, die nichts mit der Zielvariablen zu tun haben.


2. Rühren.

Kenne den NS nicht.

Aber in sehr vielen anderen MO-Algorithmen erfolgt das Lernen in genau einer Zeile. Für jeden Prädiktor wird ein Wert genommen und die Zielvariable auf ihn abgebildet. Daher ist das Mischen irrelevant. Es gibt MO-Algorithmen, die die Nachbarschaft berücksichtigen.

Aber wie auch immer, unsere Standpunkte stimmen überein, und anfangs führe ich die Tests immer auf test2 durch, ohne zu mischen.


PS.

Noch einmal.

Wenn der Fehler bei zwei verschiedenen Proben anders ist als bei Ihrer - bedeutet das, dass Ihr System hoffnungslos ist und nur noch weggeworfen werden kann.

 

Als ich mich in der bodenlosen Kloake namens Internet umschaute, stieß ich auf dieses Stück Papier.

Artificial Neural Networks architectures for stock price prediction:comparisons and applications

Mit anderen Worten - NS-Architektur für Aktienprognosen - Vergleich und Anwendung

Dateien:
 
elibrarius:
Die Situation mit den Mischungsergebnissen bleibt unklar:


Ich halte es für falsch, die Daten zu mischen und dann in Training und Validierung aufzuteilen, denn bei einem echten Handel werden die Balken in ihrer eigenen Reihenfolge gehandelt und nicht mit denen von vor einer Stunde, einem Tag oder einer Woche gemischt. Ähnlich verhält es sich bei Kreuzvalidierungsalgorithmen, bei denen der Validierungsabschnitt am Anfang, dann in der Mitte und dann am Ende steht.
Und wenn sich die "Natur" des Marktes ändert, bedeutet dies, dass wir neu lernen oder nach neuen NS-Modellen suchen müssen.

Und wenn Sie im letzten Abschnitt nicht mischen und validieren, wie vermeiden Sie es dann, in diesen Abschnitt zu passen?

Nach der Aufteilung in Zug/Test/gültiger Mischzug. Mischen Sie die übrigen Sätze nicht.
Dies gilt für die Klassifizierung durch neuronale Netze. Beim Training tiefer neuronaler Netze sollten Sie außerdem jedes Minibatch mischen, bevor Sie das neuronale Netz füttern.

Viel Glück!