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

 
elibrarius:
Ich denke, SanSanych wollte sich nicht die Mühe machen, seinen eigenen Code zu schreiben, sondern vorgefertigte Funktionen von R verwenden

Es geht nicht nur um den Code. Bei vorgefertigtem Code geht es um die Umsetzung einiger Ideen.

Siehe

gafs - Auswahl von Prädiktoren durch genetischen Algorithmus
und das endgültige Modell basiert auf einer Teilmenge des Prädiktors, die mit der optimalen Anzahl von Generationen verbunden ist, die durch Wiederholungsstichproben ermittelt wird


rfe - Rückwärtsauswahl von Prädiktoren

implementiert die Rückwärtsauswahl von Prädiktoren auf der Grundlage der Rangfolge der Wichtigkeit der Prädiktoren.

Die Prädiktoren werden geordnet, und weniger wichtige werden vor der Modellierung nacheinander entfernt.

Ziel ist es, eine Untergruppe von Prädiktoren zu finden, die für ein genaueres Modell verwendet werden können.

safs - - simulierte Robustheit der Prädiktorauswahl (Prädiktorannealing)

Bei der Suche wird ein Maß für die Fitness (d. h. der Energiewert von SA) benötigt, das ein internes Maß für die Leistung ist. Bei der Suche sind die Daten verfügbar, die durch das Resampling auf hoher Ebene ausgewählt wurden (z. B. die oben erwähnten Neun-Zehntel-Teile). Der allgemeine Ansatz muss ein anderes Verfahren der Wiederholungsstichprobe anwenden. Bei der anderen Option müssen mehrere Out-of-Samples verwendet werden, um die interne Bewertung der Leistung zu bestimmen .


Denken Sie dabei immer daran: "Müll rein, Müll raus".

 
SanSanych Fomenko:

Es geht nicht nur um den Code. Bei vorgefertigtem Code geht es um die Umsetzung einiger Ideen.

Siehe

gafs - Auswahl von Prädiktoren durch genetischen Algorithmus
und das endgültige Modell basiert auf einer Teilmenge des Prädiktors, die mit der optimalen Anzahl von Generationen verbunden ist, die durch eine erneute Stichprobe ermittelt wird


rfe - Rückwärtsauswahl von Prädiktoren

implementiert die Rückwärtsauswahl von Prädiktoren auf der Grundlage der Rangfolge der Wichtigkeit der Prädiktoren.

Die Prädiktoren werden geordnet, und weniger wichtige werden vor der Modellierung nacheinander entfernt.

Ziel ist es, eine Untergruppe von Prädiktoren zu finden, die für ein genaueres Modell verwendet werden können.

safs - - simulierte Robustheit der Prädiktorauswahl (Prädiktorannealing)

Bei der Suche wird ein Maß für die Fitness (d. h. der Energiewert von SA) benötigt, das ein internes Maß für die Leistung ist. Während der Suche sind die Daten verfügbar, die durch das Resampling auf hoher Ebene ausgewählt wurden (z. B. die oben erwähnten Neun-Zehntel-Teile). Der allgemeine Ansatz muss ein anderes Verfahren der Wiederholungsstichprobe anwenden. Bei der anderen Option müssen mehrere Out-of-Samples verwendet werden, um die interne Bewertung der Leistung zu bestimmen .


Denken Sie dabei immer daran: "Müll rein, Müll raus".

Interessante Ideen. So etwas kann man nicht selbst schreiben...

Ich habe ein Korrelations-Screening durchgeführt. Für den Anfang.
Ich sortiere die Prädiktoren nach der Gesamtkorrelation, gehe dann von den weniger korrelierten aus und entferne die damit korrelierten. Dann wiederhole ich dies mit den übrigen Prädiktoren.

Pearson Corr M
1.00,0.97,0.86,0.88,0.84,0.80,
0.97,1.00,0.92,0.84,0.79,0.75,
0.86,0.92,1.00,0.73,0.67,0.63,
0.88,0.84,0.73,1.00,0.99,0.98,
0.84,0.79,0.67,0.99,1.00,1.00,
0.80,0.75,0.63,0.98,1.00,1.00,
Corr + Kfull - Summe der Spalten
5.35,5.26,4.80,5.42,5.30,5.16,

Kfull sortiert
4.80(2),5.16(5),5.26(1),5.30(4),5.35(0),5.42(3),
Zu löschende Eingaben: 1,3,4,
Zu behaltende Eingänge: 0,2,5,

 
SanSanych Fomenko:

Es geht nicht nur um den Code. Bei vorgefertigtem Code geht es um die Umsetzung einiger Ideen.

Siehe

gafs - Auswahl von Prädiktoren durch genetischen Algorithmus
und das endgültige Modell basiert auf einer Teilmenge des Prädiktors, die mit der optimalen Anzahl von Generationen verbunden ist, die durch Wiederholungsstichproben ermittelt wurde


rfe - Rückwärtsauswahl von Prädiktoren

implementiert die Rückwärtsauswahl von Prädiktoren auf der Grundlage der Rangfolge der Wichtigkeit der Prädiktoren.

Die Prädiktoren werden geordnet, und weniger wichtige werden vor der Modellierung nacheinander entfernt.

Ziel ist es, eine Untergruppe von Prädiktoren zu finden, die für ein genaueres Modell verwendet werden können.

safs - - simulierte Robustheit der Prädiktorauswahl (Prädiktorannealing)

Bei der Suche wird ein Maß für die Fitness (d. h. der Energiewert von SA) benötigt, das ein internes Maß für die Leistung ist. Bei der Suche sind die Daten verfügbar, die durch das Resampling auf hoher Ebene ausgewählt wurden (z. B. die oben erwähnten Neun-Zehntel-Teile). Der allgemeine Ansatz muss ein anderes Verfahren der Wiederholungsstichprobe anwenden. Bei der anderen Option müssen mehrere Out-of-Samples verwendet werden, um die interne Bewertung der Leistung zu bestimmen .


Denken Sie dabei immer an "Müll rein, Müll raus".

Interessante Ideen, natürlich kann man das nicht selbst schreiben, und man kann auch nicht selbst auf die Idee kommen)

Es bleibt die Frage, ob solch komplexe Ideen für den Handel benötigt werden. Ich werde versuchen, die hoch korrelierten zu entfernen, wenn das Ergebnis nicht akzeptabel ist, werde ich zu R wechseln müssen.
 
elibrarius:

Interessante Ideen, natürlich kann man sie nicht selbst schreiben, und auf die Idee kann man auch nicht kommen).

Es bleibt die Frage, ob solch komplexe Ideen für den Handel benötigt werden. Ich werde zunächst versuchen, hoch korrelierte zu entfernen, wenn das Ergebnis inakzeptabel ist, werde ich zu R wechseln müssen.

Sie sind mit alglib in dem Sinne aufgeschmissen, dass es für die Forschungsarbeit äußerst wenig hilfreich ist. R-Interpreter und das Ausprobieren ist ein Kinderspiel.

Die Entfernung stark korrelierter (multikollinearer) Prädiktoren ist ein Muss.

Korrelation zwischen Prädiktor und Ziel - sicherlich interessant. Ich kann eine Idee für diese Art von Korrelation einbringen. Erstellen Sie eine lineare Regression (es gibt auch anspruchsvollere) und streichen Sie die Prädiktoren, deren Koeffizienten NICHT signifikant sind. Das hat bei mir nicht funktioniert. Vielleicht schaffst du es ja.

Aber die Auswahl der Prädiktoren ist ein Muss in MO

 

In dem Artikel https://www.mql5.com/ru/articles/497 wird vorgeschlagen, die Steigung der Aktivierungsfunktion in Abhängigkeit von der Anzahl der Eingaben zu ändern.

Ist die Steigung in Algli und in R standardmäßig oder optimiert sie sich selbst in Abhängigkeit von der Anzahl der Eingaben? Oder ist es so, dass fast niemand weiß, was sich in diesen schwarzen Kästen befindet?

Нейронные сети - от теории к практике
Нейронные сети - от теории к практике
  • 2012.10.06
  • Dmitriy Parfenovich
  • www.mql5.com
В наше время, наверное, каждый трейдер слышал о нейронных сетях и знает, как это круто. В представлении большинства те, которые в них разбираются, это какие-то чуть ли не сверхчеловеки. В этой статье я постараюсь рассказать, как устроена нейросеть, что с ней можно делать и покажу практические примеры её использования.
 
elibrarius:

In dem Artikel https://www.mql5.com/ru/articles/497 wird vorgeschlagen, die Steigung der Aktivierungsfunktion in Abhängigkeit von der Anzahl der Eingaben zu ändern.

Ist die Steigung in Algli und in R standardmäßig oder optimiert sie sich selbst in Abhängigkeit von der Anzahl der Eingaben? Oder was befindet sich in diesen schwarzen Kästen, von denen kaum jemand weiß?


Einige Bibliotheken für neuronale Netze bieten dem Benutzer umfangreiche Möglichkeiten zur Anpassung des zu erstellenden neuronalen Netzes, bis hin zur Einrichtung von Funktionen zur Aktivierung einzelner Neuronen oder zum Hinzufügen/Entfernen einzelner Verbindungen. In der Praxis zeigt sich jedoch, dass umfangreiche Funktionen oft einfach nicht erforderlich sind - es gibt einige generische Architekturen, die durch Feinabstimmung nicht wesentlich verbessert werden können, und ähnlich verhält es sich mit den Trainingsmethoden für neuronale Netze. Schließlich gibt es noch einen weiteren Grund, dem Benutzer nicht zu viele Werkzeuge an die Hand zu geben - wenn ein neuronales Netz eine Feinabstimmung erfordert, dann ist diese für den Autor eines Softwarepakets nicht schwierig, kann aber den Endbenutzer oft verwirren. Daraus ergibt sich die Schlussfolgerung, dass ein gutes Paket für neuronale Netze keine komplexen Anpassungen erfordern sollte. Diesem Prinzip folgend, versucht das ALGLIB-Paket, so viele Probleme wie möglich automatisch zu lösen und nur die wirklich wichtigen Entscheidungen dem Benutzer zu überlassen.

Verfügbare Architekturen
Das ALGLIB-Paket ermöglicht die Erstellung von neuronalen Netzen ohne versteckte Schichten, mit einer versteckten Schicht und mit zwei versteckten Schichten. Die Verbindungen gehen von der Eingabeschicht zur ersten versteckten Schicht (falls vorhanden), dann zur zweiten und dann zur Ausgabeschicht. Es gibt keine "kurzen" Verbindungen zwischen der Eingabeschicht und der Ausgabeschicht. Die versteckten Schichten haben eine der standardmäßigen komprimierenden Aktivierungsfunktionen, aber für die Ausgabeschicht des neuronalen Netzes ist mehr Vielfalt möglich. Die Ausgabeschicht kann linear sein (solche Netze werden bei Annäherungsproblemen verwendet) oder eine komprimierende Aktivierungsfunktion haben (wenn die Netzausgaben auf einen bestimmten Bereich beschränkt sind). Netze mit einer von oben (oder unten) begrenzten Aktivierungsfunktion sind ebenfalls verfügbar. Im einfachsten Fall (Grenzwert ist Null) tendiert diese Funktion gegen x, wenn x gegen +∞ tendiert, und exponentiell gegen Null, wenn x gegen -∞ tendiert.
Ein Spezialfall sind neuronale Netze mit linearer Ausgabeschicht und SOFTMAX-Normalisierung der Ausgaben. Sie werden für Klassifizierungsprobleme verwendet, bei denen die Ausgänge des Netzes nicht-negativ sein müssen und ihre Summe streng gleich eins sein muss, was es erlaubt, sie als Wahrscheinlichkeiten für die Zuordnung des Eingangsvektors zu einer der Klassen zu verwenden (im Grenzfall konvergieren die Ausgänge des trainierten Netzes zu diesen Wahrscheinlichkeiten). Die Anzahl der Ausgänge eines solchen Netzes ist immer mindestens zwei (Beschränkung durch die elementare Logik).
Trotz ihres minimalistischen Charakters reichen solche Architekturen aus, um die meisten praktischen Probleme zu lösen. Das Fehlen überflüssiger Details ermöglicht es, sich auf das Problem (Klassifizierung oder Annäherung) zu konzentrieren, ohne unwichtigen Details übermäßige Aufmerksamkeit zu schenken (z. B. hat die Wahl einer bestimmten Aktivierungsfunktion für eine nichtlineare Schicht in der Regel nur geringe Auswirkungen auf das Ergebnis).

http://alglib.sources.ru/dataanalysis/neuralnetworks.php

 
Vorhin gelesen, aber das beantwortet die Frage nicht(
"Versteckte Schichten haben eine der standardmäßigen komprimierenden Aktivierungsfunktionen" - welche? Passt es seine Koeffizienten an die Anzahl der eingehenden Verbindungen an? Dass sich die Anzahl der Eingaben auf das Ergebnis auswirkt, wurde in dem Artikel gezeigt. Andernfalls knallen wir 100 Neuronen in eine versteckte Schicht (oder sogar in eine Eingabeschicht), und die folgenden Neuronen können mit nur 5 Eingaben gut funktionieren...
 
elibrarius:
Vorhin gelesen, aber das beantwortet die Frage nicht(
"Versteckte Schichten haben eine der standardmäßigen komprimierenden Aktivierungsfunktionen" - welche? Passt es seine Koeffizienten an die Anzahl der eingehenden Verbindungen an? Dass sich die Anzahl der Eingaben auf das Ergebnis auswirkt, wurde in dem Artikel gezeigt. Andernfalls feuern wir 100 Neuronen in einer versteckten Schicht (oder sogar in der Eingabeschicht) und die folgenden Neuronen können mit nur 5 Eingaben gut funktionieren...


nur wenn Sie im Code herumstochern oder sie fragen ... wenn es 2 Arten von Gittern gibt, wahrscheinlich Sigmoid und ein anderes am Ausgang, das variiert, je nachdem, ob es linear oder im Bereich ist

und die Grid-Architektur ist ein bisschen mühsam... Ich werde mir viel Mühe geben müssen, aber zum Glück gibt es nur 2 versteckte Ebenen, also ist es schon einfacher :) Ich habe irgendwo gelesen, dass die verborgene Schicht im Allgemeinen 2-mal kleiner sein sollte als die Eingabe... oder mehr, ich habe es vergessen)

 

Übrigens, ich habe die Korrelation mit Perioden von 10 bis 60 (6 Stück) auf dem EURUSD M1 Chart überprüft, in Richtung Ausgang (ich habe kein Zickzack, aber etwas in der Nähe).

-0.00,0.01,0.00,0.01,0.01,-0.01

Die Korrelation liegt zwischen -0,01 und 0,01, d.h. es besteht überhaupt keine Korrelation.

Ihr Expert Advisor zeigt jedoch Gewinn an. Ich denke, es ist viel einfacher, einen gewöhnlichen Expert Advisor zu schreiben, der nach diesen Regeln funktioniert.

 
Maxim Dmitrievsky:


Ich habe irgendwo gelesen, dass die versteckte Schicht im Allgemeinen 2-mal kleiner sein sollte als die Eingabeschicht... oder mehr, ich habe es vergessen)

Eine der Regeln "Optimale Anzahl der Neuronen in der versteckten Schicht (# der versteckten Neuronen) = (# der Eingänge + # der Ausgänge)/2 , oder SQRT(# der Eingänge * # der Ausgänge) "

Und in dem von Ihnen verwendeten Reshetov-Netzwerk 2nEingänge

Grund der Beschwerde: