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

 
Alexey Burnakov:
Juri, ich danke dir. Ich werde darüber nachdenken.

Wir haben eine Frage. Wie haben Sie die Prädiktoren ausgewählt?

Ich schlachte sie sowieso nicht aus. Das ist die Aufgabe des VMR. Das 21. Jahrhundert ist über 16 Jahre alt, und alle groben Arbeiten sollten von automatisierten Systemen und nicht von Menschen erledigt werden.

Yury Reshetov:

... Genauer gesagt, reduziert VMR den Hyperspace, indem es einige der Prädiktoren reduziert.

Es gibt sogar ein konkretes Beispiel, bei dem VMR automatisch einen der Prädiktoren reduziert. Siehe Vorhersage von Insolvenzen

Und auf dieser Seite können Sie sogar ein einfaches klassisches Beispiel ausprobieren, wie der Algorithmus arbeitet: Reduzierung von nicht-informativen Prädiktoren und nicht-unterstützenden Vektoren (Stichproben) in einer Trainingsmenge

Прогнозируем банкротства - Векторная машина Решетова
  • sites.google.com
Авторы: Myoung-Jong Kim, Ingoo Han опубликовали статью под названием: «The discovery of experts decision rules from qualitative bankruptcy data using genetic algorithms». Судя по оригинальной авторской статье, выборка предназначалась для генетических алгоритмов, т. к. предполагалось, что для других алгоритмов она не по зубам. Однако, вынужден...
 
Ich muss Ihren Algorithmus in der Praxis ausprobieren. Ich kann mir nicht vorstellen, warum das so gut funktionieren soll.
 
Yury Reshetov:

Ich wähle sie in keiner Weise aus. Das ist die Aufgabe des VMR. Das 21. Jahrhundert ist über 16 Jahre alt und die ganze harte Arbeit sollte von automatisierten Systemen und nicht von Menschen erledigt werden.


Nach meiner Erfahrung, die ich NICHT verabsolutiere, sind die in die Modelle eingebauten Algorithmen zur Auswahl von Prädiktoren am ineffizientesten. Ebenso wenig wie die zahlreichen separaten Pakete und Funktionen, die für die Auswahl der Prädiktoren zur Verfügung stehen.

Warum sage ich das?

Für mich gibt es einen einfachen und für den Handel grundlegenden Test.

Lernen Sie das Modell kennen. Wir testen es an einer Stichprobe, die zeitlich außerhalb der Trainingsstichprobe liegt, und vergleichen die Fehler. Erstens können die Fehler nicht bei 50 % liegen - das ist überhaupt kein lernfähiges Modell. Wir berücksichtigen Fehler von weniger als 40 %. Wenn diese Fehler bei der Trainings- und der Validierungsstichprobe ungefähr gleich sind, wird das Modell nicht neu trainiert. Wenn diese Fehler signifikant unterschiedlich sind und um ein Vielfaches voneinander abweichen können, insbesondere wenn der Trainingsfehler weniger als 10 % beträgt, dann ist das Modell übertrainiert. Der Grund für die Nachschulung ist, dass es Rauschprädiktoren gibt, die der Modelllernalgorithmus NICHT nachschärft.

Bislang habe ich noch keine Prädiktoren gefunden, die kein Rauschen enthalten. Und alle Algorithmen zur Auswahl von Prädiktoren konnten mit diesem Rauschen nicht umgehen, ebenso wenig wie die Idee der Vergröberung (Regularisierung) von Modellen!

Ihre Meinung ist also falsch, und übertrainierte Modelle zu bekommen, ist in der Realität, die immer "out of sample" ist, gefährlich.

 
Alexey Burnakov:

Ich schlage Problem Nummer eins vor. Ich werde die Lösung später veröffentlichen. SanSanych hat es schon gesehen, bitte sagen Sie mir nicht die Antwort.

Einführung: Um einen Handelsalgorithmus zu erstellen, müssen Sie wissen, welche Faktoren die Grundlage für die Vorhersage des Preises, des Trends oder der Richtung der Handelseröffnung bilden werden. Die Auswahl solcher Faktoren ist keine leichte Aufgabe und unendlich kompliziert.

Im Anhang finden Sie ein Archiv mit einem künstlichen csv-Datensatz, den ich erstellt habe.

Die Daten enthalten 20 Variablen, denen das Präfix input_ vorangestellt ist, und eine Variable ganz rechts, die output.

Die Ausgangsvariable hängt von einer Teilmenge von Eingangsvariablen ab(die Teilmenge kann zwischen 1 und 20 Eingaben enthalten).

Aufgabe: mit Hilfe beliebiger Methoden (maschinelles Lernen) Eingangsvariablen auswählen, mit deren Hilfe es möglich ist, den Zustand der Ausgangsvariablen anhand der vorhandenen Daten zu bestimmen.

Gibt es weitere Probleme mit der binären Klassifizierung? Denn ich kam zu einem Zeitpunkt zu einem Tohuwabohu, als sowohl die Ergebnisse als auch die Methode der Stichprobenbildung bereits feststanden.

Ich würde gerne teilnehmen und gleichzeitig eine neue Version meines binären Klassifikators testen.

 
IvannaSvon:
Yuri, bitte antworten Sie auf eine private Nachricht.

Das Skript befindet sich im Anhang.

Der Datensatz wurde von EURUSD H1 übernommen.

Dateien:
 
Yury Reshetov:

Gibt es weitere Probleme mit der binären Klassifizierung? Denn ich bin zu einem Tohuwabohu gekommen, als sie bereits sowohl die Ergebnisse als auch die Methode der Stichprobenbildung veröffentlicht haben.

Ich würde gerne teilnehmen und gleichzeitig eine neue Version meines binären Klassifikators ausprobieren.

Es gibt immer Aufgaben :)

Das Archiv enthält zwei Dateien - train.csv und test.csv. Die letzte Spalte in den Dateien ist das erforderliche Ergebnis der binären Klassifizierung. Wir müssen die Datei train.csv verwenden, um das Modell zu trainieren, und das Modell dann auf test.csv anwenden. Die bereits bekannten Zielergebnisse für test.csv können nicht vorab verwendet werden, sie werden nur für die Endkontrolle benötigt. Die Daten stammen aus eurusd d1, Klasse 0 oder 1 - Preisrückgang oder -anstieg im nächsten Balken. Wenn das Modell das Ergebnis für test.csv in mindestens 6 von 10 Fällen richtig vorhersagt, können Sie versuchen, damit am Devisenmarkt zu handeln. Wenn es in 7 von 10 Fällen (und mehr) richtig voraussagt - das ist der richtige Weg zum Gral, wir müssen versuchen, das Modell für andere Jahre und Monate zu trainieren und zu testen, und wenn alles das gleiche ist - dann sehr gut.

Ich habe die Fehler der Vergangenheit berücksichtigt, jetzt basieren die Dateien auf Bar-Delta statt auf Rohwerten. Und alles wird nach Zeilen normalisiert, wenn der gleiche Typ von Prädiktoren in einer Zeile vorhanden ist, und nicht nach Spalten.

Ich selbst versuche, die Genetik für die Aufzählung von Prädiktorvarianten zu nutzen. Auf einer Reihe von Prädiktoren trainiere ich das Hauptkomponentenmodell mit zwei Kreuzvalidierungen und gebe den Klassifikationsfehler als Fitnesswert für die Genetik zurück. Wenn die Genetik ihre Grenze erreicht, nehme ich den endgültigen Satz von Prädiktoren und trainiere das Neuron erneut mit zwei Kreuzvalidierungen. Der endgültige Vorhersagefehler bei den Testdaten liegt bei etwa 40 %. Hier beginnt die schlechte Nachricht - je nach den Parametern des Neurons (Anzahl der internen Gewichte, Anzahl der Iterationen zwischen den Kreuzvalidierungen) variiert der endgültige Fehler, er liegt zufällig zwischen 30% und 50%. Früher war ich froh, dass ich nur 30 % bekam, aber wie sich herausstellte, kann ich es nicht kontrollieren und bekomme nur einen Durchschnitt von 40 %.
Die logische Frage lautet: Warum brauchen Sie ein Hauptkomponentenmodell in der Mitte? Es gibt nur keine Trainingsparameter, keine Dateneingabe, kein Modell und keine Berechnung des Kreuzvalidierungsfehlers bei Testdaten. Wenn man ein neuronales Netz verwendet, um die Fitnessfunktion der Genetik zu bestimmen, erhöht sich die Trainingszeit beträchtlich, und es ist nicht klar, welche Trainingsparameter für das neuronale Netz selbst verwendet werden sollen.

Im Anhang habe ich auch Yuris VMR-Modell nach R portiert. Ich habe meine Daten mit Rauschprädiktoren genommen und einen Fehler von 30 % bei den Trainingsdaten und 60 % bei den Testdaten erhalten, d. h. es ist kein Wunder geschehen, das Modell wurde neu trainiert. Es ist möglich, dass es bei der Migration des Codes einen Fehler gab. Wenn Sie irgendwelche Ungereimtheiten feststellen, lassen Sie es mich bitte wissen. Beim Trainieren des Modells hatte ich nicht genug Speicher für eine Maschine mit großem Kern, sondern verwendete einen mittleren (KernelTrickMode-Parameter <- 2). Ich konnte nicht auf eine Million Iterationen pro Spalte warten, ich habe 10000 verwendet (iterPerColumn <- 10000).

Dateien:
 
Dr. Trader:

Es gibt immer Aufgaben :)

Das Archiv enthält zwei Dateien - train.csv und test.csv.

Leider lässt sich mein RAR-Archiv nicht entpacken. IMHO ist es besser, alles in ZIP zu verpacken. Entpacker für ZIP-Dateien gibt es für alle Plattformen. Außerdem verwenden viele Benutzer kein RAR.



Dr. Trader:
Ich habe auch Yuris VMR-Modell in der App nach R portiert. Ich habe meine Daten mit Rauschprädiktoren genommen und einen Fehler von 30% bei den Trainingsdaten und einen Fehler von 60% bei den Testdaten erhalten, d.h. es ist kein Wunder geschehen und das Modell wurde neu trainiert. Wahrscheinlich handelt es sich um einen Fehler in der Code-Migration. Wenn Sie irgendwelche Ungereimtheiten feststellen, lassen Sie es mich bitte wissen.

Ich werde mich auf jeden Fall damit befassen. Ich kenne R jedoch nicht gut genug.

Wurde die Portierung manuell oder durch eine Art Automatismus vorgenommen?

 
Könnte jemand anderes die Hauptkomponentenmethode zur Rauschunterdrückung ausprobieren, aber Prädiktoren mit Tausenden von Beobachtungen, anstatt wieDr.Trader es tut?
 
Dr. Trader:


Siehe private Nachricht.
 
SanSanych Fomenko:
Vielleicht wird jemand anderes die Hauptkomponentenmethode zur Rauschunterdrückung ausprobieren, aber Prädiktoren mit Tausenden von Beobachtungen, nicht wieDr.Trader?

Warum probieren Sie es nicht aus?

ps. Ich habe es vor langer Zeit ausprobiert und nichts Interessantes dabei herausbekommen.

Im Laufe meiner Forschung bekam einige bescheidene, aber interessante Ergebnisse, würde ich gerne teilen, aber auf diesem "wunderbaren" Forum kann ich weder ein Bild hinzufügen oder eine Datei anhängen, vielleicht wer weiß, was das Problem?

Grund der Beschwerde: