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

 
Dr. Trader:

Genetics versucht, die richtigen Parameter für eine begrenzte Anzahl von Funktionsaufrufen zu finden. Durch die Verringerung der Anzahl der Varianten dieses Parameters (30 anstelle von 200) kann der Genetiker den Bereich von 1 bis 30 genauer untersuchen. Wenn Sie die spezifischen Grenzen für die Ermittlung eines Modellparameters kennen, ist es besser, wenn Sie diese Information gleich an den Genetiker weitergeben.


Alternativ dazu:

Fügen Sie diese Zeile (die grüne) in den Code ein, dann hat der Genetiker 500 Individuen in der Population anstelle der standardmäßigen 50. Und sie wird 10 Mal mehr Modelle testen können (aber auch die Laufzeit des Skripts wird sich um das 10-fache erhöhen), da sie so viele Kombinationen von Modellparametern wie möglich ausprobieren kann. Selbst bei maximal 200 Neuronen denke ich, dass die Genetik auch mit 0,85 ein besseres Ergebnis erzielen kann, oder zumindest in die Nähe davon kommt.

Ich kann nicht verstehen, von welcher Genetik Sie sprechen. In ELM gibt es keine Genetik. Schauen Sie sich einfach die ELM-Theorie oder die Beschreibung des elmNN-Pakets an:

"Der ELM-Algorithmus ist eine alternative Trainingsmethode für SLFN ( Single Hidden Layer Feedforward Networks ), die weder eine iterative Abstimmung noch die Einstellung von Parametern wie Lernrate, Momentum usw. erfordert, die bei den traditionellen gradientenbasierten Lernalgorithmen ( wie Backpropagation ) ein Problem darstellen.

Das Training eines SLFN mit ELM ist ein dreistufiges Lernmodell:

Bei einer Trainingsmenge P = {(xi , ti )|xi E R , ti E R , i = 1,..., N}, einer versteckten Knotenausgabefunktion G(a, b, x) und der Anzahl der versteckten Knoten L

1) Weisen Sie den versteckten Knoten zufällig Parameter (ai , bi ) zu, i = 1,..., L. Das bedeutet, dass die Bogengewichte zwischen der Eingabeschicht und der versteckten Schicht und der versteckten Schicht zufällig erzeugt werden.

2) Berechnen Sie die Ausgabematrix H der verborgenen Schicht mit Hilfe einer der verfügbaren Aktivierungsfunktionen.

3) Berechnen Sie die Ausgangsgewichte B: B = ginv(H) %*% T ( Matrixmultiplikation ), wobei T der Ziel-Output der Trainingsmenge ist.

ginv(H) ist die verallgemeinerte Moore-Penrose-Inverse der Ausgabematrix H der verborgenen Schicht. Sie wird von der Funktion ginv des MASS-Pakets berechnet.

Nachdem das SLFN trainiert wurde, ist die Ausgabe eines generischen Testsatzes einfach Y = H %*% B (Matrixmultiplikation). Wesentliche Merkmale:

- Die Lerngeschwindigkeit von ELM ist extrem hoch.

- Im Gegensatz zu traditionellen gradientenbasierten Lernalgorithmen, die nur für differenzierbare Aktivierungsfunktionen funktionieren, funktioniert ELM für alle begrenzten, nicht konstanten, stückweise kontinuierlichen Aktivierungsfunktionen.

- Im Gegensatz zu traditionellen gradientenbasierten Lernalgorithmen, die mit verschiedenen Problemen wie lokalen Minima, ungeeigneter Lernrate und Überanpassung usw. konfrontiert sind, neigt ELM dazu, die Lösungen ohne solche trivialen Probleme zu erreichen.

- Der ELM-Lernalgorithmus sieht viel einfacher aus als andere gängige Lernalgorithmen: neuronale Netze und Support-Vector-Maschinen".

Selbst bei einer geringen Anzahl von Neuronen ist es unmöglich, zwei identische neuronale Netze zu erhalten. Sie haben den Schwellenwert für die Übertragung von Dauerleistungen in eine Klasse falsch definiert. Schwellenwert = 0,5 ist der schlechteste Fall. Annehmbar = Mittelwert/ Es gibt aber auch fortgeschrittenere.

Viel Glück!

 
Maxim Dmitrievsky:

Oh, das wird etwas zum Lesen sein, ich hatte vergessen, was es ist. Oder besser gesagt, ich habe den Unterschied zwischen GBM und XGboost vergessen... oder nicht gewusst

gbm kann jedes Modell verstärken, xgb scheint auf Bäumen zu stehen

Ich weiß, dass die Aufstockung etwas besser ist als die Absackung, durch die der Wald aufgebaut wird. Ich weiß nicht, ob ich umschulen soll.


Der Neustart hat NICHTS mit dem Modelltyp zu tun.

Ein Modell wird in zwei Fällen neu trainiert:

  • das Vorhandensein von Rauschprädiktoren ist ein großes Problem und wird NUR durch die Anpassung von Prädiktoren gelöst
  • Überanpassung des Modells - "Optimierung" seiner Parameter, in der Regel anhand einer kleinen Stichprobe. Diese Art der Überanpassung wird durch die Erfahrung der Entwickler gelöst.

 
SanSanych Fomenko:

SanSanych, hör auf, hysterisch zu werden

 
Vladimir Perervenko:

Ich kann nicht verstehen, von welcher Genetik Sie sprechen. Im ELM gibt es keine Genetik. Schauen Sie sich einfach die ELM-Theorie oder die Beschreibung des Pakets elmNN an:

"Der ELM-Algorithmus ist eine alternative Trainingsmethode für SLFN ( Single Hidden Layer Feedforward Networks ), die weder eine iterative Abstimmung noch die Einstellung von Parametern wie Lernrate, Momentum usw. erfordert, die bei den traditionellen gradientenbasierten Lernalgorithmen ( wie Backpropagation ) ein Problem darstellen.

Das Training eines SLFN mit ELM ist ein dreistufiges Lernmodell:

Bei einer Trainingsmenge P = {(xi , ti )|xi E R , ti E R , i = 1,..., N}, einer versteckten Knotenausgabefunktion G(a, b, x) und der Anzahl der versteckten Knoten L

1) Weisen Sie den versteckten Knoten zufällig Parameter (ai , bi ) zu, i = 1,..., L. Das bedeutet, dass die Bogengewichte zwischen der Eingabeschicht und der versteckten Schicht und der versteckten Schicht zufällig erzeugt werden.

2) Berechnen Sie die Ausgabematrix H der verborgenen Schicht mit Hilfe einer der verfügbaren Aktivierungsfunktionen.

3) Berechnen Sie die Ausgangsgewichte B: B = ginv(H) %*% T ( Matrixmultiplikation ), wobei T der Ziel-Output der Trainingsmenge ist.

ginv(H) ist die verallgemeinerte Moore-Penrose-Inverse der Ausgabematrix H der verborgenen Schicht. Sie wird von der Funktion ginv des MASS-Pakets berechnet.

Nachdem das SLFN trainiert wurde, ist die Ausgabe eines generischen Testsatzes einfach Y = H %*% B (Matrixmultiplikation). Wesentliche Merkmale:

- Die Lerngeschwindigkeit von ELM ist extrem hoch.

- Im Gegensatz zu traditionellen gradientenbasierten Lernalgorithmen, die nur für differenzierbare Aktivierungsfunktionen funktionieren, funktioniert ELM für alle begrenzten, nicht konstanten, stückweise kontinuierlichen Aktivierungsfunktionen.

- Im Gegensatz zu traditionellen gradientenbasierten Lernalgorithmen, die mit verschiedenen Problemen wie lokalen Minima, ungeeigneter Lernrate und Überanpassung usw. konfrontiert sind, neigt ELM dazu, die Lösungen ohne solche trivialen Probleme zu erreichen.

- Der ELM-Lernalgorithmus sieht viel einfacher aus als andere gängige Lernalgorithmen: neuronale Netze und Support-Vector-Maschinen".

Selbst bei einer geringen Anzahl von Neuronen ist es unmöglich, zwei identische neuronale Netze zu erhalten. Sie haben den Schwellenwert für die Übertragung von Dauerleistungen in eine Klasse falsch definiert. Schwellenwert = 0,5 ist der schlechteste Fall. Annehmbar = Mittelwert/ Es gibt aber auch fortgeschrittenere.

Viel Glück!

In meiner kleinen Trainingsdatei gibt es eine 100%ige Übereinstimmung zwischen den Trainingseinheiten...

 

Über welchen Zeitraum geben Sie die Daten ab?

Ich habe einen Abstand von 2 Jahren und eine Datendifferenz von 15 Sekunden. Prädiktoren: 30 natürliche und mehr als 1000 im Format "(double)(val1 < val2)" generierte.

Anfangs dachte ich auch, dass die Anzahl der Prädiktoren reduziert werden sollte, aber die Praxis zeigte, dass mehr besser ist.

Natürlich ergeben 1000 Prädiktoren in 2 Jahren ein Volumen von etwa 3 GB. Die Verwendung von R für solche Mengen ist nicht seriös.

Python hat R im Datamining geschlagen, weil es Cython und Jython gibt, die in Projekte wie TensorFlow, Spark, MXNet... eingebunden sind.

 
Dr. Trader:

Genetics versucht, die richtigen Parameter für eine begrenzte Anzahl von Funktionsaufrufen zu finden. Durch die Verringerung der Anzahl der Varianten dieses Parameters (30 anstelle von 200) kann der Genetiker den Bereich von 1 bis 30 genauer untersuchen. Wenn Sie die spezifischen Grenzen für die Ermittlung eines Modellparameters kennen, ist es besser, wenn Sie diese Information sofort an den Genetiker weitergeben.


Alternativ dazu:

Fügen Sie diese Zeile (die grüne) in den Code ein, dann hat der Genetiker 500 Individuen in der Population anstelle der standardmäßigen 50. Und sie wird 10 Mal mehr Modelle testen können (aber auch die Laufzeit des Skripts wird sich um das 10-fache erhöhen), da sie so viele Kombinationen von Modellparametern wie möglich ausprobieren kann. Selbst bei einer maximalen Neuronenzahl von 200 denke ich, dass die Genetik auch mit 0,85 ein besseres Ergebnis erzielen kann, oder zumindest nahe daran herankommt.

Danke!!!! Es hat sich wirklich verbessert. Nun, mal sehen, wie es läuft... Die Hauptsache ist, kontinuierlich zu verdienen...

 
Vladimir Perervenko:

Ich kann nicht verstehen, von welcher Genetik Sie sprechen.

Es steht in dem R-Skript, das ich Mikhail vor hundert Seiten gezeigt habe. Der genetische Algorithmus geht die Parameter für elmnn durch (Aktivierungsfunktion, gpsh-Korn, Anzahl der versteckten Neuronen). Die Fitnessfunktion für die Genetik trainiert ein Komitee von elmnn-Modellen anhand dieser Parameter, die über kfold usw. bewertet werden.

Ich habe dieses Skript selbst geschrieben, als ich von Ihrem Artikel über elmnn und Bayes'sche Optimierung inspiriert wurde. Aber ich habe Genetik anstelle von Köder implementiert, es funktioniert viel schneller auf diese Weise, und die Einschätzung des Ausschusses ist auf meinem Geschmack gemacht.

 
SanSanych Fomenko:

Das Modell wird in zwei Fällen neu trainiert:

  • das Vorhandensein von verrauschten Prädiktoren ist ein großes Problem und wird NUR durch die Auswahl von Prädiktoren gelöst

Die Frage richtet sich nicht nur an Sie, sondern an alle.

In der Praxis ist das so, d.h. wenn es Rauschprädiktoren gibt, kommt NS nicht über 50-55% hinaus. Wenn man ihn aufhebt, kann er sogar 70 % ausgeben.

Aber warum ist das so?
1) Nun, NS sollte automatisch Gewichte nahe 0 für Rauschprädiktoren während des Trainings auswählen (dies ist gleichbedeutend mit ihrem Ausschluss aus der Auswahl). Das haben wir bei dem Problem am Anfang des Zweigs gesehen.
2) Wenn nicht durch Training, um Gewichte zu unterschätzen, dann sollte zumindest der Ausstieg sie aussieben...

 
Dr. Trader:

Es steht im R-Skript, das ich Mikhail vor etwa hundert Seiten gezeigt habe. Genetischer Algorithmus versucht Parameter für elmnn (Aktivierungsfunktion, gpsh-Korn, Anzahl der versteckten Neuronen). In der Fitnessfunktion für die Genetik wird ein Komitee von elmnn-Modellen anhand dieser Parameter trainiert, die über kfold usw. geschätzt werden.

Kopieren Sie ihn in Ihren Blog, vielleicht braucht ihn noch jemand. Es ist nicht realistisch, hier nach etwas zu suchen.
 
elibrarius:

Die Frage richtet sich nicht nur an Sie, sondern an alle.

In der Praxis ist das so, d.h. wenn es Rauschprädiktoren gibt, kommt NS nicht über 50-55% hinaus. Wenn man ihn aufhebt, kann er sogar 70 % ausgeben.

Aber warum ist das so?
1) Nun, NS sollte automatisch Gewichte nahe 0 für Rauschprädiktoren während des Trainings auswählen (dies ist gleichbedeutend mit ihrem Ausschluss aus der Auswahl). Das haben wir bei dem Problem am Anfang des Zweigs gesehen.
2) Wenn nicht durch Training, um Gewichte zu unterschätzen, dann sollte zumindest der Ausstieg sie aussieben...

Es gibt immer noch eine zusätzliche Dimension, und man muss irgendwie eine Kurve durch sie ziehen, vielleicht mit einem großen Fehler

Ausfälle erhöhen im Gegenteil den Fehler, oder?