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

 
Maxim Dmitrievsky #:

Wie ein Blatt Holz funktioniert manchmal besser als Holz?

bereit tc bei Minimum

Bei den neuen Daten, ja. Es ist nur so, dass ein konsistentes Muster getroffen wurde, und der Rest der Blätter des Baumes sind nur Windgeräusche. Das Rauschen kommt daher, dass der Baum gezwungen ist, auf alle Fragen Antworten zu geben, d. h. die Stichprobe vollständig zu klassifizieren.

 
Sie müssen nachts schlafen.
 
Aleksey Vyazmikin #:

Bei den neuen Daten, ja. Es ist nur so, dass ein stabiles Muster getroffen wurde und der Rest des Baumes nur noch Windrauschen hinterlässt. Das Rauschen kommt daher, dass der Baum gezwungen ist, Antworten auf alle Fragen zu geben, d. h. die gesamte Stichprobe zu klassifizieren.

Ich mache das (Auswahl der Blätter) automatisch, indem ich den Aktivierungsgrad der Blätter ändere. Klassischerweise wird 0,5 für die Klassifizierung verwendet. Alle Blätter mit einer Wahrscheinlichkeit von mehr als 0,5 werden aktiviert, der Rest bleibt stumm (was gleichbedeutend mit ihrer Entfernung aus dem Baum ist). Diese Methode wurde in mehr als einem Artikel auf dieser Website und im Forum beschrieben.

Und Sie können das Niveau auf 0,9 oder 0,95 setzen, dann funktionieren nur super saubere Blätter mit 95% der Beispiele der richtigen Klasse. Für die Regression gilt ähnliches, nur dass das Niveau nicht zwischen 0 und 1 liegt, sondern in abs-Werten. Die Bilder oben zeigen das gleiche Modell, aber mit verschiedenen Aktivierungsstufen. Das erste durch 0.00020, das zweite durch 0.00040pts. Das zweite Modell übersprang unrentable Handelsintervalle und arbeitete nur mit den profitabelsten und zeigte Gewinn, obwohl es mit Pausen von 1-2 Jahren arbeitete. Die Aktivierung erfolgte in 70000 von 400000 Fällen, d.h. etwa 17% der besten Blätter funktionierten.

Das Ergebnis ist ähnlich, erreicht mit nur einem Befehl im Code if(leaf_value>0.00040){...}. , ohne die ganze Fummelei bei der Auswahl von Blättern und jetzt auch Clustern.

Aber das wissen Sie ja alles schon....

 
Aleksey Vyazmikin #:

Bei den neuen Daten, ja. Es ist nur so, dass ein konsistentes Muster getroffen wurde und der Rest des Baumes nur noch Windrauschen hinterlässt. Das Rauschen kommt daher, dass der Baum gezwungen ist, Antworten auf alle Fragen zu geben, d. h. die gesamte Stichprobe zu klassifizieren.

Das Problem besteht darin, dass der Baum nicht nach der Bedingung der Gewinnmaximierung aufgebaut ist, sondern nach einer Verlustfunktion, die für die Programmierung des Pakets geeignet ist.

Man steht also vor der unangenehmen Wahl, entweder ein komplexes, ausgeklügeltes Paket zu rekonfigurieren oder ein verkrampftes Fahrrad zu bauen. Es ist auch möglich, diese beiden Optionen "erfolgreich" zu kombinieren).

IMHO sollten Sie, wenn Sie sich dafür entscheiden, an einem bestehenden Paket auf Bäumen herumzufummeln, versuchen, das Pruning (Beschneiden) anzuwenden - zum Beispiel mit der Bedingung der Gewinnmaximierung auf dem Stürmer. So könnte man sich das manuelle Herumfummeln an den Regeln sparen.

 
Maxim Dmitrievsky #:
Ich mache mir keine großen Hoffnungen, ich schaue nur ab und zu mal rein. Nach allem, was gpt, sage ich Stagnation und Stillstand in diesem Thema voraus. Es sind keine Durchbrüche zu erkennen. Es ist ein reiner Hype, wie bei Krypto. Jetzt werden sie Geld verdienen und zur Ruhe kommen.
Ich bin ganz deiner Meinung!

Meine ganze Nachbarschaft lobt die propagierten neuronalen Netze, aber wenn man ihnen einfache Aufgaben stellt, werden sie damit nicht fertig
 
Stanislav Korotky #:

Das von mir angeführte Beispiel stammt aus dem Bereich der kategorialen Kreuzentropie (und Sie haben wahrscheinlich nicht darauf geachtet, dass die Summe der Werte dort jeweils 1 ist). Die Tatsache, dass es nicht wie in Keras funktioniert, ist für mich ein Indikator, der bedeutet, dass entweder die Implementierung oder die Beschreibung von CCE in MQL5 nicht den Erwartungen entspricht. Dann ist eine detaillierte Beschreibung erforderlich. Übrigens enthält CrossEntropyLoss in pytorch einen vorläufigen Softmax. Aber im Allgemeinen, da die Dokumentation über Matrizen in MQL5 die Idee enthält, dass die Schnittstelle der von Python ähnlich ist, wird die Übereinstimmung des Verhaltens impliziert. Und wenn es keine Übereinstimmung gibt, führt das zu Problemen und Verwirrung.

Viele Klassen zu haben bedeutet, mit Matrizen zu arbeiten (wenn wir eine Reihe von Proben/Zeilen haben, von denen jede eine Klasse hat), so dass Ihr Beispiel mit einem Vektor die Frage noch nicht beantwortet.

Ich habe es verstanden. Verlustfunktionen funktionieren mit Matrizen genauso wie mit Vektoren. An dieser Stelle sind wir nicht fertig geworden (wir haben den Achsenparameter nicht hinzugefügt)

Das heißt, in Ihrem Beispiel müssen wir es Zeile für Zeile lösen.

Vielen Dank für Ihre Aufmerksamkeit

 
Aleksey Vyazmikin #:

Bei den neuen Daten, ja. Es ist nur so, dass ein konsistentes Muster getroffen wurde und der Rest des Baumes nur noch Windrauschen hinterlässt. Das Rauschen kommt daher, dass der Baum gezwungen ist, Antworten auf alle Fragen zu geben, d. h. die gesamte Stichprobe zu klassifizieren.

Und wenn man ihn aus dem Wald herausnimmt, ergibt sich ein Mittelwert der Regeln aller Bäume, geteilt durch die Anzahl der Bäume

 
Forester #:

Ich tue dies (Blattauswahl) automatisch, indem ich den Blattaktivierungsgrad ändere. Klassischerweise wird 0,5 für die Klassifizierung verwendet. Alle Blätter mit einer Wahrscheinlichkeit von mehr als 0,5 werden aktiviert, der Rest bleibt stumm (was gleichbedeutend damit ist, dass sie aus dem Baum entfernt werden). Diese Methode wurde in mehr als einem Artikel auf dieser Website und im Forum beschrieben.

Und Sie können das Niveau auf 0,9 oder 0,95 setzen, dann funktionieren nur super saubere Blätter mit 95% der Beispiele der richtigen Klasse. Bei der Regression ist es ähnlich, nur dass das Niveau nicht von 0 bis 1 geht, sondern in abs-Werten. Die Bilder oben zeigen das gleiche Modell, aber mit verschiedenen Aktivierungsstufen. Das erste durch 0.00020, das zweite durch 0.00040pts. Das zweite Modell übersprang unrentable Handelsintervalle und arbeitete nur mit den profitabelsten und zeigte Gewinn, obwohl es mit Pausen von 1-2 Jahren arbeitete. Die Aktivierung erfolgte in 70000 von 400000 Fällen, d.h. etwa 17% der besten Blätter funktionierten.

Das Ergebnis ist ähnlich, erreicht mit nur einem Befehl im Code if(leaf_value>0.00040){...}. ohne die ganze Fummelei bei der Auswahl von Blättern und jetzt Clustern.

Aber das wissen Sie ja alles schon....

Sie haben einen Wald, gewichten Sie das Modell nicht neu, nachdem Sie es erstellt haben? Oder nehmen Sie einfach den Durchschnitt der aktivierten Blätter?

Das ist es ja, bei der Auswahl eines Blattes berücksichtige ich die Stabilität und die Gleichmäßigkeit der Antwortverteilung in der Vergangenheit. Ich bilde zweidimensionale Indikatoren und bewerte sie in ihrer Gesamtheit. Daher sind Blätter ohne Antworten für mich extrem selten.

Ich habe den Eindruck, dass man leicht Blätter speichern könnte, indem man Tausende von Bäumen erstellt, und nur mit ihnen arbeitet.

 
Aleksey Nikolayev #:

Das Problem besteht darin, dass der Baum nicht nach einer Gewinnmaximierungsbedingung aufgebaut ist, sondern nach einer für die Paketprogrammierung geeigneten Verlustfunktion.

Man hat also die unangenehme Wahl: Entweder man versucht, ein komplexes, kniffliges Paket neu zu konfigurieren, oder man baut ein verkrampftes Fahrrad. Es ist auch möglich, diese beiden Optionen "erfolgreich" zu kombinieren)

IMHO sollten Sie, wenn Sie sich dafür entscheiden, an einem bestehenden Paket auf Bäumen herumzufummeln, versuchen, Pruning (Beschneidung) zu verwenden - zum Beispiel mit der Bedingung der Gewinnmaximierung auf dem Forward. So könnte man sich das manuelle Herumfummeln an den Regeln sparen.

Die Variante, die ich für die Erstellung des Baums verwendet habe, bildet keine tiefen Bäume - Pruning ist hier möglicherweise unnötig.

Ja, fast alle Eingriffe sind automatisiert, und was nicht automatisiert ist, beruht eher auf meiner Unkenntnis von R.

Ich spreche von Rauschen, denn der Wurzelprädiktor kann eine Wahrscheinlichkeit der Prädisposition für bestimmte Klassen im Bereich von 10 % oder weniger enthalten, und der Rest der Wahrscheinlichkeit ist gleichmäßig verteilt, und der Rest des Rückstands wird zum Schneiden der verbleibenden Blätter verwendet.

 
Maxim Dmitrievsky #:

und wenn man ihn aus dem Wald holt, ergibt sich ein Durchschnitt aller Bäume, nach der Anzahl der Bäume

Die Bäume werden unabhängig voneinander gebaut und dann nach den Antworten in den Blättern gewichtet. Ich habe nicht mit einem Wald gearbeitet, sondern mit einem einzelnen Baum. Ich habe noch nie von einem Wald in der Genetik gehört.