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

 
Aleksey Terentev:
Meine Lösungen basierten ursprünglich auf OpenNN (C++).
Jetzt habe ich viele Dinge gelernt und bin zu Keras (Python) gewechselt.

Hauptsächlich beschäftige ich mich mit Deep Learning zur Vorhersage von Klassifizierungsproblemen.

Wir haben es also mit demselben Bereich der MO zu tun. Keras ist ein gutes Paket, vor allem da es nach R portiert wurde.

Nur verstehe ich die Frage nach dem Was nicht?

Viel Glück!

 
Vladimir Perervenko:

Wir haben es also mit demselben Bereich der MO zu tun. Keras ist ein gutes Paket, vor allem da es nach R portiert wurde.

Nur verstehe ich die Frage nach dem Was nicht?

Viel Glück!

Ich habe gerade beschlossen, mich an der Diskussion zu beteiligen. =)
 
Maxim Dmitrievsky:


Das ist interessant... es bedeutet, dass zusätzliche Tests durchgeführt werden müssen, vielleicht ist dieses rn nicht so aussagekräftig, wie es vorher gedacht war

Der einzige Vorteil besteht darin, dass die Gewichte im Optimierer gleichzeitig mit anderen Systemparametern ausgewählt werden können.

Ich versuche derzeit herauszufinden, wie gut es innerhalb eines Bereichs bekannter Daten rechnet. Multiplikationstabelle zum Beispiel.

Aktualisierung.

Weitere Experimente nach Änderung des Expert Advisors haben im Vergleich zum normalen MLP 3-5-1 folgende Ergebnisse gezeigt.

Für die Tests wurden verschiedene Formeln verwendet:

//double func(double d1,double d2,double d3 ){return d1*d2;} //der Fehler beträgt 0-2%, da die Multiplikation in Formeln enthalten ist. 2 % wird erreicht, weil der genetische Optimierer nicht immer bei einer idealen Lösung anhält. Es gibt aber auch eine absolut exakte Lösung mit Fehler = 0.
//double func(double d1,double d2,double d3 ){return d1*d2*d3;}/// Fehler 0-2% Multiplikation ist in den Formeln, auf MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1);}// 2-6% Fehler, bei MLP 0,1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSin(d3);}// Fehler 2%, auf MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSqrt(d3);}// 3-4% Fehler, auf MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathPow(d2,.33)*MathSqrt(d3);}// Fehler 8-4%, bei MLP 1,5%
//double func(double d1,double d2,double d3 ){return MathPow(d1,2)*MathPow(d2,.33)*MathSqrt(d3);}// Fehler 8-4%, bei MLP 1,5%

Die Schlussfolgerung ist, dass das reguläre MLP 2-3 mal weniger Fehler aufweist als Reshetovs RNP. Vielleicht ist ein Teil dieses Fehlers darauf zurückzuführen, dass der genetische Optimierer des MT5-Terminals nicht bei einer idealen Lösung anhält.
 
elibrarius:

Ich versuche derzeit herauszufinden, wie gut sie innerhalb einer Reihe von bekannten Daten zählt. Eine Multiplikationstabelle zum Beispiel.

Aktualisierung.

Weitere Experimente nach Änderung des EA zeigten im Vergleich zum normalen MLP 3-5-1 die folgenden Ergebnisse.

Für die Tests wurden verschiedene Formeln verwendet:

//double func(double d1,double d2,double d3 ){return d1*d2;} //der Fehler beträgt 0-2%, da die Multiplikation in Formeln enthalten ist. 2 % wird erreicht, weil der genetische Optimierer nicht immer bei einer idealen Lösung stehen bleibt. Es gibt aber auch eine absolut exakte Lösung mit Fehler = 0.
//double func(double d1,double d2,double d3 ){return d1*d2*d3;}// Fehler 0-2% Multiplikation ist inhärent in Formeln, bei MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1);}// Fehler 2-6%, bei MLP 0,1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSin(d3);}/// Fehler 2%, bei MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSqrt(d3);}// 3-4% Fehler, bei MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathPow(d2,.33)*MathSqrt(d3);}// Fehler 8-4%, bei MLP 1,5%
//double func(double d1,double d2,double d3 ){return MathPow(d1,2)*MathPow(d2,.33)*MathSqrt(d3);}// Fehler 8-4%, bei MLP 1,5%

Zusammenfassend können wir feststellen, dass der reguläre MLP 2-3 mal weniger Fehler aufweist als das RNN von Reshetov. Vielleicht ist ein Teil dieses Fehlers darauf zurückzuführen, dass der genetische Optimierer des MT5-Terminals nicht bei einer idealen Lösung anhält.

Ja, interessante Ergebnisse, vielleicht wäre eine vollständige Aufzählung genauer
 
Maxim Dmitrievsky:

Ja, interessante Ergebnisse, vielleicht wäre ein voller Überschwinger genauer
wäre genauer, aber nach ein paar Wochen oder Monaten... 8 Anpassungskoeffizienten mit 1%-Schritt 1008= 1000000000000 Iterationen, und das Terminal selbst schaltet auf Genetik um, mit dieser Zahl.
 
elibrarius:
Wäre es, aber nach ein paar Wochen oder Monaten... 8 wählbare Koeffizienten mit 1%-Schritt 1008= 10000000000000000 Iterationen, und das Terminal selbst schaltet bei dieser Zahl auf Genetik um.

Können Sie mir sagen, Klassifizierung MLP von alglib ich verstehe erfordert mindestens 2 Ausgänge, wie man mit diesem arbeiten? keine Hilfe oder Beschreibung überall... tinny )
 
Maxim Dmitrievsky:

Darf ich fragen, ob die Klassifizierung von MLP aus der Alglib, soweit ich weiß, mindestens 2 Ausgänge erfordert, wie man damit arbeitet?)

Ja 2, aus der Hilfe http://alglib.sources.ru/dataanalysis/neuralnetworks.php

Ein Spezialfall sind neuronale Netze mit linearer Ausgabeschicht und SOFTMAX-Normierung 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 sollte immer mindestens zwei betragen (Beschränkung durch die elementare Logik).

Ich habe mich noch nicht damit beschäftigt, ich experimentiere noch mit Linear.
 
elibrarius:

Ja, von http://alglib.sources.ru/dataanalysis/neuralnetworks.php Referenz

Ein Sonderfall sind neuronale Netze mit linearer Ausgangsschicht und SOFTMAX-Normierung der Ausgänge. 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).


Das heißt, wir geben die Wahrscheinlichkeit des einen oder anderen Ergebnisses ein, z.B. Kaufwahrscheinlichkeit 0,9, dann Verkaufswahrscheinlichkeit 0,1, ein Array dient als Puffer für Kaufwahrscheinlichkeiten, ein anderes für Verkaufswahrscheinlichkeiten, wir füllen sie mit diesen Werten und nach dem Training werden sie verwendet, um die Kauf- und Verkaufswahrscheinlichkeiten getrennt abzulegen, ich verstehe, richtig?
 
Maxim Dmitrievsky:

Nun, mit anderen Worten, wir geben die Wahrscheinlichkeit des einen oder anderen Ergebnisses ein, z.B. die Kaufwahrscheinlichkeit ist 0,9 und die Verkaufswahrscheinlichkeit - 0,1. Ein Array dient als Puffer für Kaufwahrscheinlichkeiten und das andere für Verkaufswahrscheinlichkeiten und nach dem Training werden die Wahrscheinlichkeiten getrennt verworfen, nehme ich an, richtig?

Und nach dem, was ich gelesen habe, bin ich der gleichen Meinung.

Obwohl ich nicht weiß, was sein Vorteil ist... mit 1 Ausgang, erhalten wir auch Wahrscheinlichkeiten - etwa 0 (oder -1) Kaufen, und etwa 1 Verkaufen. (oder umgekehrt, je nachdem, wie Sie trainieren).

Kann es sinnvoll sein, wenn es 3 oder mehr Ausgänge gibt? Schließlich wäre 1 Ausgabe schwer zu verwenden.... für 3 oder 4 Aufgaben (obwohl Sie auch 0, 0,5 und 1 als Klassen Kaufen, Warten, Verkaufen verwenden können)

 
elibrarius:

Und nach dem, was ich gelesen habe, bin ich der gleichen Meinung.

Ich weiß nicht, was der Vorteil ist, aber... mit 1 Ausgang, erhalten wir auch Wahrscheinlichkeiten - etwa 0 (oder -1) Buy, und etwa 1 Sell. (Oder umgekehrt, je nachdem, wie Sie trainieren).

Könnte es nützlich sein, wenn es 3 oder mehr Ausgänge gibt? Dann wäre 1 Ausgabe schwer zu verwenden.... für 3 oder 4 Aufgaben (obwohl Sie auch 0, 0,5 und 1 als Klassen Kaufen, Warten, Verkaufen verwenden können)


Ja, sie haben es wahrscheinlich so gemacht, dass es möglich wäre, mehr als 2 Klassen zu haben... dann wird es wahrscheinlich mehr Clustering sein und man kann andere Methoden wie k-means verwenden :)