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

 
Andrej Dik:
Sie scheinen mich missverstanden zu haben. Ich sage dem Netz nicht, wo es eintreten soll, weder mit einem zz noch mit irgendeinem anderen Indikator. Ein trainiertes Netz wählt selbst, wo es eintritt.

Oh Mann... Dann verstehe ich es nicht...

 
mytarmailS:

Was sollte mit was zusammenhängen? Wie machen Sie das? Ich verstehe das auch nicht.

Ich glaube, außer Ihnen hat es hier niemand getan.)

Ich möchte Ihnen das noch einmal erklären und Sie ermutigen, sich über die verschachtelte Kreuzvalidierung zu informieren.

Dies ist ein Beispiel aus meiner Arbeit. Ich war dabei, ein Regressionsmodell zu erstellen, das eine Vorhersage für einen technischen Parameter in einem sehr komplexen System macht.

Ich gehe die Trainingsparameter des Modells durch, wähle das beste Modell in den Testfalten der Kreuzvalidierung aus und validiere es dann. Ich habe insgesamt 100 Modelle für den Test ausgewählt (Punkte im Diagramm). Dies sind die besten Modelle in der Testgruppe. Der Unterschied besteht darin, dass sie unterschiedliche Prädiktoren verwenden.

Sie können sehen, dass das untertrainierte Modell im Test auch in der Validierung untertrainiert ist. Das vollständig trainierte Modell wird auf den Test und auf die Validierung trainiert. Der übertrainierte Zustand, bei dem die Testwerte hoch und die Validierungswerte niedrig sind, existiert überhaupt nicht.

Wir haben eine Korrelation zwischen der Leistung der ausgewählten Modelle im Test und der Leistung bei der Validierung.

Indem man die Anzahl der Prädiktoren variiert, wächst das Modell von "underfit" zu "fully fit". Und dieses Wachstum gilt sowohl für die Daten, für die das beste Modell ausgewählt wird, als auch für die Daten, für die das ausgewählte beste Modell validiert wird. Es gibt Konsistenz!

Das heißt, ich habe nicht nur ein Modell ausgewählt, das bei der Validierung (außerhalb der Stichprobe) am besten abgeschnitten hat, sondern ich habe mehrere Modelle trainiert, sie nach Tests ausgewählt und die Qualitätsmetriken bei der Validierung verglichen. Dies ist eine verschachtelte Kreuzvalidierung. Dieses Modell wird nicht neu trainiert. Ich kann das beste Modell der Kreuzvalidierung nehmen und erhalte eine der besten Out-of-Sample-Metriken.

Und wenn ich Variationen in der Modellleistung bei Forex habe, die die Variationen in der Modellleistung bei der Validierung nicht erklären, dann können wir mit den Stichproben, aus denen wir das beste Modell auswählen (in diesem Fall die durchschnittliche Qualität bei den Kreuzvalidierungstests), die Qualitätsleistung außerhalb der Stichprobe nicht vorhersagen.

Indem wir also eine Modellauswahl vornehmen, aber nicht das Auswahlverfahren außerhalb der Stichprobe selbst testen, passen wir ein Modell an.

Ein Bild wie meines ergibt sich bei stationären, konsistenten Daten - sie enthalten stabile Abhängigkeiten. So verschlechtert beispielsweise eine Überhitzung des Sensors den modellierten Wert in allen Fällen, was physikalisch erklärt wird.

Bei der Modellierung von Finanzzeitreihen habe ich bereits anhand von 2.000 ausgewählten Modellen gezeigt, dass ihre Qualitätskennzahlen bei Teststichproben nicht mit den Validierungsstichproben korrelieren.

Die verschachtelte Kreuzvalidierung umfasst das mehrfache Trainieren verschiedener Modelle - oder Modelle mit unterschiedlichen Eingaben oder Parametern - an einzelnen Trainingsstichproben, gefolgt von Tests. Für jede einzelne Probe wird das beste Modell ausgewählt. Anschließend wird es erneut an einer einmaligen Validierungsstichprobe getestet. Dieser Vorgang wird viele Male wiederholt. Eine externe Testebene ist erforderlich, um zu zeigen, dass das Modell selbst und sein Auswahlverfahren zu konsistenten Ergebnissen innerhalb und außerhalb der Stichprobe führen.

Ich habe SanSanych, Dr. und anderen gegenüber darauf hingewiesen. Dr. hat mich verstanden. SanSanSanych hat es nicht verstanden.

Wenn wir also dieses Bild für den Forex- oder einen anderen Finanzmarkt erreichen, können wir das beste Modell in Bezug auf den Test-Cutoff in der Produktion ausführen.

 
Alexey Burnakov:

Ich möchte Ihnen das noch einmal erklären und Sie ermutigen, sich über die verschachtelte Kreuzvalidierung zu informieren.

Dies ist ein Beispiel aus meiner Arbeit. Ich war dabei, ein Regressionsmodell zu erstellen und eine Vorhersage für einen technischen Parameter in einem sehr komplexen System zu machen.

Ich gehe die Trainingsparameter des Modells durch, wähle das beste Modell in den Testfalten der Kreuzvalidierung aus und validiere es dann. Ich habe insgesamt 100 Modelle für den Test ausgewählt (Punkte im Diagramm). Dies sind die besten Modelle in der Testgruppe. Der Unterschied besteht darin, dass sie unterschiedliche Prädiktoren verwenden.

Sie können sehen, dass das untertrainierte Modell im Test auch in der Validierung untertrainiert ist. Das vollständig trainierte Modell wird auf den Test und auf die Validierung trainiert. Der übertrainierte Zustand, bei dem die Testwerte hoch und die Validierungswerte niedrig sind, existiert überhaupt nicht.

Wir haben eine Korrelation zwischen der Leistung der ausgewählten Modelle im Test und der Leistung bei der Validierung.

Indem man die Anzahl der Prädiktoren variiert, wächst das Modell von "underfit" zu "fully fit". Und dieses Wachstum gilt sowohl für die Daten, für die das beste Modell ausgewählt wird, als auch für die Daten, für die das ausgewählte beste Modell validiert wird. Es gibt Konsistenz!

Das heißt, ich habe nicht nur ein Modell ausgewählt, das bei der Validierung (außerhalb der Stichprobe) am besten abgeschnitten hat, sondern ich habe mehrere Modelle trainiert, sie nach Tests ausgewählt und die Qualitätsmetriken bei der Validierung verglichen. Dies ist eine verschachtelte Kreuzvalidierung. Dieses Modell wird nicht neu trainiert. Ich kann das beste Modell der Kreuzvalidierung nehmen und erhalte eine der besten Out-of-Sample-Metriken.

Und wenn ich Variationen in der Modellleistung bei Forex habe, die die Variationen in der Modellleistung bei der Validierung nicht erklären, dann können wir mit den Stichproben, aus denen wir das beste Modell auswählen (in diesem Fall die durchschnittliche Qualität bei den Kreuzvalidierungstests), die Qualitätsleistung außerhalb der Stichprobe nicht vorhersagen.

Indem wir also eine Modellauswahl vornehmen, aber nicht das Auswahlverfahren außerhalb der Stichprobe selbst testen, passen wir ein Modell an.

Ein Bild wie meines ergibt sich bei stationären, konsistenten Daten - sie enthalten stabile Abhängigkeiten. So verschlechtert beispielsweise eine Überhitzung des Sensors den modellierten Wert in allen Fällen, was physikalisch erklärt wird.

Bei der Modellierung von Finanzzeitreihen habe ich bereits anhand von 2.000 ausgewählten Modellen gezeigt, dass ihre Qualitätskennzahlen bei Teststichproben nicht mit den Validierungsstichproben korrelieren.

Die verschachtelte Kreuzvalidierung umfasst das mehrfache Trainieren verschiedener Modelle - oder Modelle mit unterschiedlichen Eingaben oder Parametern - an einzelnen Trainingsstichproben, gefolgt von Tests. Für jede einzelne Probe wird das beste Modell ausgewählt. Anschließend wird es erneut an einer einmaligen Validierungsstichprobe getestet. Dieser Vorgang wird viele Male wiederholt. Eine externe Testebene ist erforderlich, um zu zeigen, dass das Modell selbst und sein Auswahlverfahren zu konsistenten Ergebnissen innerhalb und außerhalb der Stichprobe führen.

Ich habe SanSanych, Dr. und anderen gegenüber darauf hingewiesen. Dr. hat mich verstanden. SanSanSanych hat es nicht verstanden.

Wenn wir also dieses Bild für den Devisenmarkt oder einen anderen Finanzmarkt erreichen, können wir das beste Modell in Bezug auf das Testsegment in der Produktion einsetzen.

Ich verstehe es immer noch nicht, tut mir leid.

Validierungsfehler: befinden sie sich in derselben Datei wie die Testfehler oder erfolgt die Validierung in einer völlig neuen Datei?

PS.

Unter Kreuzvalidierung verstehe ich folgenden Algorithmus: Die Datei wird z.B. in 10 Fouls unterteilt. Unterricht auf den ersten 9, und Validierung auf 10. Dann unterrichten sie auf 2-10 und validieren auf 1 falten. Und so verschieben sie das Validierungsvergehen. Oder?

 
SanSanych Fomenko:

Verstehe ich immer noch nicht, tut mir leid.

Validierungsfehler: befinden sie sich in derselben Datei wie die Testfehler oder erfolgt die Validierung in einer völlig neuen Datei?

PS.

Unter Kreuzvalidierung verstehe ich den folgenden Algorithmus: Die Datei wird z.B. in 10 Fouls unterteilt. Unterricht auf den ersten 9, und Validierung auf 10. Dann unterrichten Sie auf 2-10 und validieren Sie auf 1 falten. Und so verschieben sie das Validierungsvergehen. Oder?

Ja.

Ein Lernzyklus mit M1-Kreuzvalidierung bei 10 Fouls, Sie verstehen richtig. Für jede Kombination von Lernparametern: bei 9 Fouls lernen, bei einer verzögerten Prüfung. Also 10 Mal. Wir erhalten den Durchschnittswert der Qualitätsmetrik bei 10 Faltungen. Nennen wir sie m1.

Wir wiederholen diesen Vorgang N-mal (und fügen jedes Mal neue Daten für Training und Test hinzu).

Verschachtelte Kreuzvalidierung:

Wir wiederholen M - N Mal. Jeder Zyklus M ist eine einmalige Trainingsprobe. Wir erhalten m1, m2, . mn Metriken der Qualität, die während des Trainings und der Auswahl der besten Modelle auf verschiedenen Daten erhalten wurden.

Äußere Schicht. Jedes ausgewählte Modell M wird an einer einzigen Validierungsstichprobe getestet. Wir erhalten k1, k2, ... kn-Tests außerhalb der Stichprobe.

Zeichnen wir ein Punktediagramm M gegen. K. Wir erhalten eine Schätzung darüber, wie eine Veränderung der Modellqualität bei der Kreuzvalidierung die Qualität außerhalb der Stichprobe bestimmt.

Über die Auswahl der Prädiktoren. Wenn Sie nicht die Möglichkeit haben, eine so große Menge an Daten zu erhalten, geben Sie einfach jedem Zyklus N des Modells einen eigenen Satz von Prädiktoren. Sie testen, ob die Modellleistung in Abhängigkeit von den ausgewählten Prädiktoren bei Test und Validierung konsistent ist. Grob gesagt, sollte ein zu wenig trainiertes Modell im Test auch bei der Validierung schlechtere Ergebnisse liefern. Ein im Test übertrainiertes Modell wird bei der Validierung viel schlechtere Ergebnisse liefern.

 
Alexey Burnakov:


Ich habe die Hälfte des Jahres 15 mit dieser Illusion verbracht. Die Modellvalidierung sollte nur mit Daten durchgeführt werden, die NICHTS mit dem Trainings-, Test- und Validierungsverfahren zu tun haben. Ich bin zu faul, um die Ergebnisse der entsprechenden Berechnungen nachzuschlagen. Aber wegen der Rassel, die das tut, was Sie schreiben, habe ich ein halbes Jahr verschwendet.

 
SanSanych Fomenko:

Die Modellvalidierung sollte nur mit Daten durchgeführt werden, die NICHTS mit dem Trainings-, Test- und Validierungsverfahren zu tun haben.

Brrrrr.

Das ist es, was es tun soll! Die Validierung erfolgt anhand aufgeschobener Stichproben (oder eher Stichproben, wenn es sich um den verschachtelten Ansatz handelt).

Welche Illusion? Der Ansatz ist auf jeden Fall objektiver als eine Modellanpassung mit einer Stichprobe.

 
Alexey Burnakov:

Brrrrr.

So soll es auch sein! Die Validierung erfolgt an einer verzögerten Stichprobe (bzw. an Stichproben, wenn es sich um einen verschachtelten Ansatz handelt).

Welche Illusion? Dieser Ansatz ist auf jeden Fall objektiver als eine Modellanpassung mit einer Stichprobe.

Sie wissen es am besten.

Das funktioniert bei mir. Wenn ich die Rauschprädiktoren entferne, funktioniert ein auf Juni-Daten trainiertes Modell auch auf Juli-Daten, und wenn ich ein Modell auf Juli-Daten trainiere, ist der Fehler dieses Trainings auf Juli-Daten derselbe wie die Vorhersage, die ich im Juli auf dem im Juni trainierten Modell verwendet habe. Das nenne ich fehlende Umschulung.

 
SanSanych Fomenko:

Sie wissen es am besten.

Für mich funktioniert das alles. Wenn ich die Rauschprädiktoren entferne, funktioniert das auf den Juni-Daten trainierte Modell auch auf den Juli-Daten, und wenn ich das Modell auf den Juli-Daten trainiere, ist der Fehler dieses Trainings auf den Juli-Daten derselbe wie die Vorhersage, die ich im Juli auf dem im Juni trainierten Modell verwendet habe. Das nenne ich fehlende Umschulung.

Nehmen wir an, dass dies ständig funktioniert und nicht nur bei einem 2-Monats-Beispiel, das ein Beispiel dafür sein könnte.

Was unterrichten Sie? Gehören Sie zum Zickzack-Knie? Ich schließe nicht aus, dass dieses spezielle Ziel beständig gut lernt, aber die Zugehörigkeit zu einem Knie gibt keinen genauen Input. Genau das ist das Problem. Ich kann die Volatilität einen Tag im Voraus ziemlich genau vorhersagen, aber das bringt mir beim Handel nichts.

 
Alexey Burnakov:

Nehmen wir an, dass dies ständig funktioniert und nicht nur für ein Beispiel von 2 Monaten, was ein typisches Beispiel sein könnte.

Was unterrichten Sie? Gehören Sie zum Zickzack-Knie? Ich schließe nicht aus, dass dieses spezielle Ziel beständig gut lernt, aber die Zugehörigkeit zu einem Knie gibt keinen genauen Input. Genau das ist das Problem. Ich kann die Volatilität einen Tag im Voraus genau vorhersagen, aber das wird mir beim Handel nichts bringen.

Die Unzulänglichkeiten des Ziels haben nichts mit der Methodik zur Bestimmung von Übertrainingsmodellen zu tun. Ich habe mehrere Aufträge mit unbekannten Zielen und Prädiktoren ausgeführt. Das Ergebnis ist überall dasselbe, wenn man die Rauschprädiktoren entfernt.
 
SanSanych Fomenko:
Die fehlerhafte Zielvorgabe hat nichts mit der Methodik zur Bestimmung der Überanpassung des Modells zu tun.

Ich glaube, Sie irren sich. Verrauschte Etiketten (zelevka) führen zu einer Dissonanz zwischen dem, was Sie in Ihrem Test sehen, und dem, was Sie in Zukunft sehen werden. Für solche Fälle werden alle möglichen Erfindungen wie verschachtelte Validierungen eingeführt. Es gibt sogar Ansätze, die belegen, dass man von mehreren alternativen Modellen im Test das schlechtere wählen sollte.

Das Ergebnis ist überall dasselbe, wenn man die Rauschprädiktoren entfernt.

Wie haben Sie dies festgestellt? Haben Sie die Leistung Ihrer Prädiktoren für die damals unbekannte Zukunft verfolgt?