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

 

Erinnern Sie sich, dass ich gesagt habe, dass ich ein Modell erhalten habe, das vom 31.01.2018 bis zum heutigen Tag zugelegt hat, und so hat sich dieses Modell in diesen zwei Wochen vom 05.03.2018 bis zum heutigen Tag entwickelt. Testergebnis.

Ziemlich gut für eine alte Dame, die auf 40 Punkte trainiert und seit etwa 1,5 Monaten auf OOS ist.

Und das ist ihre vollständige OOS vom 31.01.2018

Und du denkst immer noch, es ist ein fit???? Nur zur Erinnerung: Die Screenshots zeigen den OOS-Bereich

 

Ich werde Berechnungen anstellen, die zeigen, dass alles nur leeres Geschwätz ist:

  • ohne sorgfältige Begründung, dass die Prädiktoren die Zielvariable beeinflussen
  • Übertraining (Überanpassung) wird nur bei Dateien zur ZEIT außerhalb der Trainingszeit festgestellt.

Ursprüngliche Daten:

Zwei aufeinanderfolgende Zeitdateien mit 54 Prädiktoren und einer Zielvariablen für die Trendumkehr: kurz-aus-lang

Die Berechnungen werden in rattle durchgeführt, wobei die erste Datei R Rat_DF1a in drei Teile unterteilt ist: train, test, validation. Die Aufteilung in Teile erfolgt stichprobenartig, d. h. es wird eine zufällige Auswahl von Takten aus der Originaldatei getroffen.

RF-Berechnungsergebnisse: 500 Bäume, 7 Prädiktoren pro Knoten.

Anzahl der zur Erstellung des Modells verwendeten Beobachtungen: 2491

Die Imputation fehlender Werte ist aktiv.


Anrufen:

randomForest(formula = trainY ~ ,

data = crs$dataset[crs$sample, c(crs$input, crs$target)],

ntree = 500, mtry = 7, importance = TRUE, replace = FALSE, na.action = randomForest::na.roughfix)


Typ des Zufallsforsts: Klassifizierung

Anzahl der Bäume: 500

Anzahl der Variablen, die bei jedem Split ausprobiert wurden: 7


OOB-Schätzung der Fehlerquote: 1,61 %.

Verwirrungsmatrix:

-1 0 1 class.error

-1 498 5 2 0.01386139

0 3 1067 17 0.01839926

1 1 12 886 0.01446051

Das ist ein großartiges Ergebnis! Ein Gral! Beachten Sie, dass die AOB der Teil der Datei ist, der beim Training nicht verwendet wurde.

Hier sehen wir uns auch den Trainingsfehler an: Wir sehen, dass 500 nicht nötig sind, wir kommen mit 50 oder 100 Bäumen aus.



Prüfen wir es im Testabschnitt

Fehlermatrix für das Random-Forest-Modell für Rat_DF1a [test] (Anzahl):


Vorhersage

Tatsächlicher Wert -1 0 1 Fehler

-1 110 3 0 2.7

0 3 221 2 2.2

1 0 2 194 1.0


Fehlermatrix für das Random-Forest-Modell für Rat_DF1a [test] (Proportionen):


Vorhersage

Tatsächlicher Wert -1 0 1 Fehler

-1 20.6 0.6 0.0 2.7

0 0.6 41.3 0.4 2.2

1 0.0 0.4 36.3 1.0


Gesamtfehler: 1,8%, durchschnittlicher Klassenfehler: 1,96667%.


Rassel Zeitstempel: 2018-03-14 10:57:23 Benutzer


Das Ausbildungsergebnis wird bestätigt. Gral!


Überprüfen wir das noch einmal im Abschnitt Validierung.

Fehlermatrix für das Random-Forest-Modell für Rat_DF1a [validieren] (Anzahl):


Vorhersage

Tatsächlicher Wert -1 0 1 Fehler

-1 105 1 0 0.9

0 1 218 2 1.4

1 0 1 205 0.5


Fehlermatrix für das Random-Forest-Modell für Rat_DF1a [validieren] (Proportionen):


Vorhersage

Tatsächlicher Wert -1 0 1 Fehler

-1 19.7 0.2 0.0 0.9

0 0.2 40.9 0.4 1.4

1 0.0 0.2 38.5 0.5


Gesamtfehler: 0,9%, durchschnittlicher Klassenfehler: 0,9333333%.


Rassel Zeitstempel: 2018-03-14 10:59:52 Benutzer


Gral! Sie können zu einer Mikrofinanzgesellschaft laufen und sich so viel Geld leihen, wie Sie können!


Es gibt jedoch ein ABER: Die Aufteilung der Datei wurde durch zufällige Stichproben von Balken vorgenommen und wird streng mit zunehmender Zeit gehandelt.

Schauen wir uns die Datei an, in der diese Chronologie gespeichert wurde - es ist Rat_DF1b

Und hier ist das Ergebnis:

Fehlermatrix für das Random-Forest-Modell für Rat_DF1b (Anzahl):


Vorhersage

Tatsächlicher Wert -1 0 1 Fehler

-1 0 324 237 100.0

0 0 633 540 46.0

1 0 152 697 17.9


Fehlermatrix für das Random Forest Modell für Rat_DF1b (Proportionen):


Vorhersage

Tatsächlicher Wert -1 0 1 Fehler

-1 0 12.5 9.2 100.0

0 0 24.5 20.9 46.0

1 0 5.9 27.0 17.9


Gesamtfehler: 48,5%, durchschnittlicher Klassenfehler: 54,63333%.


Rassel Zeitstempel: 2018-03-14 11:02:16 Benutzer


KATASTROPHE! MODELL WIRD NEU TRAINIERT! DIE PRÄDIKTOREN GEGEN DIE ZIELVARIABLE IST NUR RAUSCHEN, NUR MIT RAUSCHEN KANN MO SOLCHE ERSTAUNLICHEN ERGEBNISSE ERZIELEN.


Ich habe Ihnen ein normales, übliches Schema auf Hochschulstudentenniveau zur Anpassung und Validierung des Modells gezeigt. Der größte Nachteil: Die Beziehung zwischen den Prädiktoren und der Zielvariablen wird nicht berücksichtigt.

Aber das Schema sollte IMMER mindestens das sein, und es ist noch nicht vollständig - wir brauchen einen weiteren Durchlauf des Testers, der das Testergebnis auf einer regulären Seriendatei bestätigen wird. Tja, und dann zu der Mikrofinanzierungsgesellschaft.



 
SanSanych Fomenko:

Ich werde Berechnungen anstellen, die zeigen, dass das alles nur leeres Geschwätz ist:

  • Übertraining (Überanpassung) wird nur bei Dateien von TIME außerhalb der Trainingszeit festgestellt.

Es ist seltsam, dass Sie bei Ihrem Test so gut abgeschnitten haben. In meinen Experimenten und dort war es viel schlimmer. Durch unterschiedliche Initialisierung des RNG vor dem Mischen erhielt ich unterschiedliche Ergebnisse in Test und Validierung - sehr unterschiedlich bei verschiedenen RNG, sowohl durch Fehler als auch durch die Anzahl der Trades.

Daher bin ich zu dem Schluss gekommen, dass Test und Validierung überhaupt nicht benötigt werden und dass es notwendig ist, an einem Standort zu trainieren und am anderen auszuwerten (Sie haben es als separate Datei). Auf diese Weise wird der Zufallsfaktor "Glück" beim Mischen ausgeschlossen.

 

Leute, ist der Gral bereit?

 
SanSanych Fomenko:

Ich werde Berechnungen anstellen, die zeigen, dass alles nur leeres Geschwätz ist:

  • ohne sorgfältige Begründung, dass die Prädiktoren die Zielvariable beeinflussen
  • Übertraining (Überanpassung) wird nur bei Dateien zur ZEIT außerhalb der Trainingszeit festgestellt.

Ursprüngliche Daten:

Zwei aufeinanderfolgende Zeitdateien mit 54 Prädiktoren und einer Zielvariablen für die Trendumkehr: kurz-aus-lang

Die Berechnungen werden in rattle durchgeführt, wobei die erste Datei R Rat_DF1a in drei Teile unterteilt ist: train, test, validation. Die Aufteilung in Teile erfolgt stichprobenartig, d.h. es wird eine zufällige Auswahl von Takten aus der Quelldatei getroffen.



Es gibt jedoch ein ABER: Die Aufteilung der Datei erfolgt durch eine zufällige Auswahl von Balken, während der Handel strikt nach zunehmender Zeit erfolgt.

Schauen wir uns die Datei an, in der diese Chronologie gespeichert wurde - Rat_DF1b



Gesamtfehler: 48,5%, durchschnittlicher Klassenfehler: 54,63333%.


Rassel Zeitstempel: 2018-03-14 11:02:16 Benutzer


KATASTROPHE! MODELL WIRD NEU TRAINIERT! DIE PRÄDIKTOREN GEGEN DIE ZIELVARIABLE IST NUR RAUSCHEN, NUR MIT RAUSCHEN KANN MO SOLCHE ERSTAUNLICHEN ERGEBNISSE ERZIELEN.


Ich habe Ihnen ein normales, übliches Schema auf Hochschulstudentenniveau zur Anpassung und Validierung des Modells gezeigt. Der größte Nachteil: Die Beziehung zwischen den Prädiktoren und der Zielvariablen wird nicht berücksichtigt.

Aber das Schema sollte IMMER mindestens so aussehen, und es ist NICHT vollständig - Sie brauchen immer noch einen Testlauf, um das Testergebnis bei einer normalen sequentiellen Datei zu bestätigen. Nun, dann zum Mikrofinanzunternehmen.



Dies ist ein grundlegender Fehler bei der Aufteilung in Teilmengen (train/val/test). Die Reihenfolge sollte wie folgt sein:

  1. Aufteilung des zeitlich geordneten Datensatzes in train/val/test.
  2. Beim Training sollte nur die Trainingsmenge (niemals die Validierungsmenge und die Testmenge) gemischt werden. Ich spreche natürlich von der Klassifizierung.
  3. Alle Parameter der Transformation und die Transformation der Prädiktoren werden nur aus der Trainingsmenge gewonnen. Wir verwenden sie bei val/test.
  4. Bewertung, Auswahl und Erstellung von Prädiktoren nur für die Trainingsmenge.

Viel Glück!

 

Wenn es um die Schätzung von Prädiktoren anhand von Modellen geht, ist RandomUniformForest meiner Meinung nach das fortschrittlichste Paket. Sie befasst sich sehr ausführlich mit der Bedeutung von Prädiktoren unter verschiedenen Gesichtspunkten. Ich empfehle Ihnen, einen Blick darauf zu werfen. In einem meiner Artikel habe ich sie ausführlich beschrieben.

Ich habe mich geweigert, eine Modellauswahl von Prädiktoren zu verwenden. Begrenzt auf die Spezifika des verwendeten Modells.

Viel Glück!

 
Vladimir Perervenko:
  1. Beim Training wird nur die Trainingsmenge gemischt (niemals die Validierungsmenge und die Testmenge). Ich spreche natürlich von Klassifizierung.

Von Nikopenko S., Kadurin A., Arkhangelskaya E. "Deep Learning" p. 139.


Damit die Validierungsdaten die gleiche Beschaffenheit haben wie die Trainingsdaten, müssen Sie sie vermischen. Andernfalls könnte dort ein zufälliges Stück Trend oder eine Wohnung erscheinen. Folglich werden wir das Modell nicht auf seine Verallgemeinerungsfähigkeit hin überprüfen, sondern es auf einen bestimmten Ausschnitt der kontinuierlichen Geschichte zu einem bestimmten Zeitpunkt anpassen (wir werden schließlich dort aufhören).

Aber, wie ich oben geschrieben habe, bin ich nach dem Experimentieren mit verschiedenen Initialisierungen des GSF, bei denen unterschiedliche gültige Mengen erzielt wurden, zu dem Schluss gekommen, dass die gültige Menge wahrscheinlich nicht benötigt wird. Daneben können auch andere Methoden der Regularisierung verwendet werden. Diese Experimente bezogen sich jedoch auf eine kleine Datenmenge (5 Tage), und wenn die Anzahl der Beispiele um das 10-fache ansteigt, wird die Durchmischung vielleicht gleichmäßiger sein und die Daten auf diesen Abschnitten werden homogen sein (d.h. die gleiche Beschaffenheit haben) - in diesem Fall kann die Gültigkeit nützlich sein.

Aktualisierung: Wenn es viele Daten gibt und mehrere Umkehrungen und Trends in beide Richtungen in der gültigen Darstellung enthalten sind, ist eine Mischung mit dem Trainingssatz möglicherweise nicht erforderlich.
 
Vladimir Perervenko:

Wenn es um die Schätzung von Prädiktoren anhand von Modellen geht, ist RandomUniformForest meiner Meinung nach das fortschrittlichste Paket. Sie befasst sich sehr ausführlich mit der Bedeutung von Prädiktoren unter verschiedenen Gesichtspunkten. Ich empfehle Ihnen, einen Blick darauf zu werfen. In einem meiner Artikel habe ich sie ausführlich beschrieben.

Ich habe mich geweigert, eine Modellauswahl von Prädiktoren zu verwenden. Begrenzt auf die Spezifika des verwendeten Modells.

Viel Glück!

Und ich denke, das fortschrittlichste ist ein ganz anderes Produkt ;-).... Darin wird sie auf eine etwas andere Weise umgesetzt.

Zwei Netze, bei denen die Stichprobe in zwei Teilstichproben unterteilt ist: Training und Test, wobei für Netz B (das zweite Polynom) das Traynom der Test und der Test das Traynom ist. Dies gilt ausschließlich für die Stichprobe, bei der die Hälfte mit einem Polynom, die andere mit dem anderen bearbeitet wird. Und die Klassen sind gleichmäßig verteilt. Das heißt, die Einsen sind gleichmäßig auf Tablett und Test verteilt, und die Nullen sind ebenfalls gleichmäßig verteilt. Leider ist dafür keine Zeit. Die Datei kann in beliebiger Reihenfolge der Vektoren angelegt werden. Vielleicht ist dies der Schlüssel zur Verringerung der Überschreitung.


Wahrheit, die ich nicht ganz verstehe, vielleicht sprechen von der Validierung Bereich ist es eine Spur in meinem Lieblings-Optimierer?

Und in Ihrem Fall ist der Testabschnitt eine Kontrolle, wenn wir das Netzwerk für einige Zeit arbeiten lassen... Ich bin von Konzepten verwirrt...

 

Auf jeden Fall bin ich der Meinung, dass der Testteil den Trainingsteil in keiner Weise beeinflussen darf und bei Klassifizierungsaufgaben möglichst zufällig gebildet werden sollte, wobei der Testteil, auch wenn er zeitlich geordnet ist, nicht von eben dieser Zeit abhängen wird. Und warum? Denn durch die Vermischung aller Daten versuchen wir, das wirkliche Potenzial aus diesem Satz herauszuholen, und nicht eine glückliche Fügung von Umständen in Form von Ordnungsmäßigkeit. Wenn Sie also Ihre Daten mischen, sehen Sie wirklich, was Ihre Daten leisten können... So....

Bei mehreren Optimierungen sollte das Ergebnis innerhalb von 10-20% springen, ist nur gleich wegen der Anordnung der Daten, einmal gut geordnet, das andere Mal etwas schlechter, usw. .... IMHO!!!

 
elibrarius:

Von Nikopenko S., Kadurin A., Arkhangelskaya E. "Deep Learning" p. 139.


Damit die Validierungsdaten die gleiche Beschaffenheit haben wie die Trainingsdaten, müssen Sie sie zusammenmischen. Andernfalls kann es sich um ein zufälliges Stück Trend oder Wohnung handeln. Folglich werden wir das Modell nicht auf seine Verallgemeinerungsfähigkeit hin überprüfen, sondern es an einen bestimmten Teil der kontinuierlichen Geschichte zu einem bestimmten Zeitpunkt anpassen (dort werden wir ja schließlich anhalten).

Aber, wie ich oben geschrieben habe, bin ich nach dem Experimentieren mit verschiedenen Initialisierungen des GSF, bei denen unterschiedliche gültige Mengen erzielt wurden, zu dem Schluss gekommen, dass die gültige Menge wahrscheinlich nicht benötigt wird. Daneben können auch andere Methoden der Regularisierung verwendet werden. Bei diesen Experimenten wurde jedoch nur eine kleine Datenmenge (5 Tage) untersucht, und wenn die Zahl der Beispiele um das Zehnfache steigt, wird die Durchmischung vielleicht gleichmäßiger und die Daten auf diesen Diagrammen werden homogener (d. h. gleichartig) sein.

Aktualisierung: Wenn es viele Daten gibt und die gültige Darstellung mehrere Rillen und Trends in beide Richtungen enthält, ist das Mischen mit dem Trainingssatz in diesem Fall möglicherweise nicht erforderlich.

Der jugendliche Geist des Widerspruchs ist unbezwingbar :)

Ich habe über die Klassifizierung von Zeitreihen gesprochen. Zum Beispiel für M15 zwei Wochen für die Ausbildung etwa 1000 Barren. Die nächste Woche zur Validierung sind 500 Barren. Während des Trainings mischen wir die Trainingsmenge, aber nicht die Validierungsmenge.

Das Mischen der gesamten Menge vor der Trennung ist in zwei Fällen erforderlich: bei geschichteten Mengen und bei der Kreuzvalidierung. Auch in diesem Fall muss die Stichprobe ohne Substitution durchgeführt werden, um zu vermeiden, dass dieselben Beispiele in beiden Gruppen enthalten sind.

Da die Anzahl der Beispiele nicht begrenzt ist und es sich um Zeitreihen handelt, ist es besser, sie vor dem Mischen zu teilen. IMHO