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

 
Dem schließe ich mich an, der Gedanke kam mir am Wochenende. Je öfter das Netz "Ich weiß es nicht" sagt, desto mehr nähert es sich der Überforderung. Zu Beginn von OOS werden fast alle Signale eindeutig interpretiert, aber mit der Zeit sagt das Netz immer öfter "Ich weiß nicht", was darauf hindeutet, dass neue Daten eintreffen, die schwer zu interpretieren sind. Wenn ein bestimmter Grad an "Ich weiß nicht" erreicht ist, wird das Netz neu trainiert. Eine sehr nützliche Sache ....
 
All das Gerede über die allmähliche Abschwächung des Modells für OOS und die Nützlichkeit dieser Informationen für den Handel wirkt nicht überzeugend, wenn nicht von einer Vorauswahl der Prädiktoren die Rede ist.
 
SanSanych Fomenko:
All das Gerede über das allmähliche Verblassen des Modells für OOS und die Nützlichkeit dieser Informationen für den Handel wirkt nicht überzeugend, wenn nicht von einer Vorauswahl der Prädiktoren die Rede ist.
Was ist also die Wahl? Wir wählen ein Modell mit dem höchsten Generalisierungsgrad und sehen uns an, wie es im Trainingsintervall abgeschnitten hat. Der Euviti sollte gleichmäßig wachsen... Und dann ist da noch das Glück. Es gibt keinen Ort ohne sie...
 
Andrej Dik:

Ato.

Wenn ein Modell beim OOS falsche Signale gibt, ist das ein Hinweis auf ein fehlerhaftes Training und nicht darauf, dass sich der Markt verändert hat.

Dem stimme ich zu. Aber wie analysiert man die Signale von zwei Netzen? Es ist nicht ganz klar? Wie stark weichen sie voneinander ab oder sind sie sich einig?
 
Alexey Burnakov:
Ich stimme dem zu. Wie analysiert man die Signale von zwei Gittern? Es ist nicht ganz klar? Wie weichen sie voneinander ab oder sind sie sich einig?

Bringen Sie die Signale in ein gemeinsames Muster wie dieses:

VERKAUFEN KAUFEN Interpretation

-1 0 verkaufen

0 0 Zaun

0 1 kaufen

-1 1 Zaun

Bei einem gut trainierten Modell widersprechen sich die Signale selten. Die gleiche Anzahl von Signalen auf dem Übungsplatz wird nicht von ihnen verlangt, und in der Regel sind sie unterschiedlich, und das ist verständlich, weil der Markt verlängerte globale Trends haben kann. Ich beschränke jedoch die Anzahl der Signale eines Gitters auf maximal das Zweifache der Anzahl der Signale des anderen Gitters. Ich kann nicht beantworten, warum es 2 mal ist, aber es ist ein empirisches Verhältnis. Wenn sich beispielsweise der Trend von einem aufsteigenden zu einem absteigenden Trend ändert, die Anzahl der Verkaufssignale zunimmt und die Kaufsignale zu lügen beginnen, ein Widerspruch auftritt und die Anzahl der Transaktionen abnimmt, ist dies ein Zeichen dafür, dass ein neues Training erforderlich ist.

 
Andrej Dik:

Bringen Sie die Signale in ein gemeinsames Muster wie dieses:

VERKAUFEN KAUFEN Interpretation

-1 0 verkaufen

0 0 Zaun

0 1 kaufen

-1 1 Zaun

Bei einem gut trainierten Modell widersprechen sich die Signale selten. Die gleiche Anzahl von Signalen auf dem Übungsplatz wird nicht von ihnen verlangt, und in der Regel sind sie unterschiedlich, und das ist verständlich, weil der Markt verlängerte globale Trends haben kann. Ich beschränke jedoch die Anzahl der Signale eines Gitters auf maximal das Zweifache der Anzahl der Signale des anderen Gitters. Ich kann nicht beantworten, warum es 2 mal ist, aber es ist ein empirisches Verhältnis. Wenn sich beispielsweise der Trend von einem aufsteigenden zu einem absteigenden Trend ändert, die Anzahl der Verkaufssignale zunimmt und die Kaufsignale zu lügen beginnen, ein Widerspruch auftritt und die Anzahl der Transaktionen abnimmt, ist dies ein Zeichen dafür, dass ein neues Training erforderlich ist.

Danke. Das könnte eine funktionierende Idee sein.
 
Kombinator:

Ja, aber nicht bei der neuronalen Konfiguration.

Andrei scheint auf einige Eingaben hinzuweisen, die so mächtig sind, dass jedes Modell sie standardmäßig verwendet, um gute und unangepasste Ergebnisse zu erzielen.

Vielleicht bezieht er sich aber auch auf etwas anderes. Eine ausführlichere Antwort wäre jedoch wünschenswert.

 

Neues jPrediction 9.00 Release veröffentlicht

Zitat aus dem Benutzerhandbuch:

"Unterschiede zwischen jPrediction und anderer Software für maschinelles Lernen

Der Hauptunterschied zwischen jPrediction und jPrediction besteht darin, dass es keine benutzerdefinierten Einstellungen gibt, wodurch der menschliche Faktor in Form von menschlichen Fehlern sowohl bei der Einrichtung und Auswahl der Algorithmen als auch bei der Auswahl der Architekturen der neuronalen Netze ausgeschlossen werden kann. Der gesamte Prozess des maschinellen Lernens in jPrediction ist vollständig automatisiert und erfordert keine speziellen Kenntnisse der Benutzer oder deren Eingreifen.

Funktionen von jPrediction im automatischen Modus

  1. Lesen und Analysieren einer Datei mit mehreren Beispielen zur Erstellung eines mathematischen Klassifikationsmodells;
  2. Normalisierung der Daten vor dem maschinellen Lernen;
  3. Aufteilung der Menge aller Beispiele aus der Stichprobe in zwei Teilmengen: eine Trainings-Teilmenge und eine Test-Teilmenge;
  4. Abgleich der Beispiele aus der Trainingsuntermenge;
  5. Aufbau der Architektur des neuronalen Netzes;
  6. Training einer Reihe von Modellen auf einer Trainingsuntermenge von Fällen mit verschiedenen Kombinationen von Prädiktoren (Faktoren);
  7. Verkleinerung der Architektur des neuronalen Netzes - Entfernung überflüssiger Elemente;
  8. Testen einer Reihe von Modellen auf einer Testteilmenge von Beispielen und Berechnung der Verallgemeinerungsfähigkeit;
  9. Auswahl des besten Modells nach dem Kriterium der maximalen Verallgemeinerbarkeit.

Da aus der Menge der Modelle, von denen sich jedes von jeder anderen Kombination von Prädiktoren unterscheidet, nur dasjenige mit der größten Generalisierungsfähigkeit ausgewählt wird, erfolgt die Reduktion (Auswahl) der signifikantesten Prädiktoren automatisch."

Es sollte erwähnt werden, dass jPrediction ab der Version 8 keine Beschränkungen für die maximale Anzahl von Prädiktoren in der Trainingsstichprobe hat. Vor Version 8 war die Anzahl der Prädiktoren in der Trainingsstichprobe auf zehn begrenzt.

Vor Version 8 war jPrediction ein Einzelmodell. Das heißt, es wurde eine Stichprobe genommen und nur ein einziges Modell darauf trainiert und getestet.

Seit Version 8 ist jPrediction multi-model, d.h. es trainiert und testet viele verschiedene Modelle auf verschiedenen Teilen der Stichprobe, und jeder Teil enthält verschiedene Kombinationen von Prädiktoren. Eines dieser Modelle würde die maximale Verallgemeinerbarkeit für den Testteil der Stichprobe bieten.

Das Problem bestand darin, dass eine vollständige Suche nach verschiedenen Kombinationen von Prädiktoren zu einer so genannten kombinatorischen (vom Begriff Kombinatorik abgeleiteten) "Explosion" führt, d. h. mit jedem zusätzlichen Prädiktor müssen doppelt so viele Modelle trainiert und getestet werden wie ohne ihn. Es liegt auf der Hand, dass es problematisch wird, wenn die Anzahl der Prädiktoren in der Stichprobe Dutzende oder sogar Hunderte beträgt, um alle kombinatorischen Modelle in angemessener Zeit zu trainieren und zu testen.

Das Problem der kombinatorischen "Explosion" in jPrediction wurde nicht durch das Ausprobieren aller möglichen Kombinationen gelöst, sondern durch die Methode der sequentiellen Suche. Die Methode sieht im Wesentlichen wie folgt aus:

Angenommen, wir haben eine Kombination mit N Prädiktoren mit maximaler Verallgemeinerbarkeit gefunden, indem wir alle möglichen Kombinationen von N und weniger Prädiktoren ausprobiert haben. Wir müssen einen N+1 Prädiktor hinzufügen. Dazu fügen wir nacheinander alle Prädiktoren aus der Stichprobe hinzu, die nicht in der Kombination enthalten waren, und messen ihre Generalisierungsfähigkeit. Wenn wir bei dieser Suche eine Kombination mit N+1 Prädiktoren finden, deren Verallgemeinerungsfähigkeit höher ist als die beste Kombination von N Prädiktoren, können wir auf die gleiche Weise eine Kombination mit N+2 Prädiktoren finden. Und wenn sie es nicht gefunden haben, dann ist es klar, dass es keinen Sinn hat, weiter zu suchen, und der Algorithmus des Ausprobierens von Kombinationen bleibt bei der besten Kombination von N Prädiktoren stehen. Dies hat zur Folge, dass der Algorithmus der Suche nach Kombinationen von Prädiktoren für das Modell im Vergleich zum vollständigen Ausprobieren aller möglichen Kombinationen viel früher aufhört. Eine zusätzliche Einsparung von Rechenressourcen ergibt sich aus der Tatsache, dass die Suche von einer kleinen Anzahl von Prädiktoren ausgeht, um diese Anzahl zu erhöhen. Und je weniger Prädiktoren für das Training benötigt werden, desto weniger Zeit und Rechenleistung wird für die Erstellung der Modelle benötigt.

Das ist die Art von Kuchen.

Wenn Sie Interesse haben, finden Sie im angehängten ZIP-Archiv das jPrediction 9 Benutzerhandbuch in russischer Sprache im PDF-Format:

Dateien:
 
Super! Sind Sie der Einzige, der das alles mit sich herumschleppt? Der Begriff "Reduzierung" ist unklar. Wenn man sich die Technologie ansieht, ist sie eine mehrfache Reduktion von etwas. Und bei Ihnen ist es eine Auswahl.
 
Yury Reshetov:

Neues jPrediction 9.00 Release


Alles gut, bis auf eine Kleinigkeit: Es gibt keinen Vergleich mit anderen Modellen.

Ich biete meine Dienste zum Vergleich an

1. Sie bereiten eine Excel-Eingabedatei mit Prädiktoren und Zielvariablen vor

2. Sie machen die Berechnung

3. Sie senden die Eingabedatei an mich.

4. Ich führe die Berechnungen mit randomforest, ada, SVM durch

Wir vergleichen.