Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 97
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Halten Sie nicht vertrauen Bedeutung, wenn es für Forex verwenden. Bei Iris handelt es sich um sehr einfache Daten, es gibt direkte Muster zwischen den verfügbaren Daten und Klassen. RF findet einfach eine minimale Menge von Prädiktoren, auf deren Grundlage Iris-Klassen definiert werden können, und schon ist man fertig.
Wie kann RF nicht-lineare Abhängigkeiten erfassen? Mir scheint, dass es für den Markt nur deshalb nicht funktioniert, weil die Prädiktoren faul sind; gäbe es normale Prädiktoren, würde es wie bei der Iris mit einer Fehlerquote von 95% funktionieren.
Bei Schwertlilien ist es ganz einfach: Wenn ein Blütenblatt von so-und-so bis so-und-so lang ist, dann ist es Klasse 1, und wenn es von so-und-so bis so-und-so breit ist, dann ist es Klasse 2, usw. RF findet Intervalle von Prädiktorwerten, die am besten mit den Zielwerten übereinstimmen.
Ich brauche für diese Aufgabe nicht einmal einen Wald, ein Baum reicht für 90 % Genauigkeit:
Das heißt, wenn eine bestimmte Klasse einem bestimmten Bereich von Prädiktorwerten oder deren Kombinationen entspricht und sich diese Intervalle nicht überschneiden, dann wird der Baum oder der Wald alles zu 100% lösen.
Die Abhängigkeiten von Forex sind viel komplizierter, und ein Wald benötigt Dutzende von Prädiktoren, um die Zielwerte zu beschreiben. Der Wald wird sicherlich solche Intervalle von Prädiktoren und deren Kombinationen finden, die die Zielwerte beschreiben, aber es werden einfach nur Kombinationen ausgewählt, ohne jegliche Logik oder Analyse. Was der Wald für eine Entscheidung treffen wird - Rauschen oder ein wirklich wichtiger Prädiktor - ist eine Frage des Zufalls. Forest for forex funktioniert nur dann korrekt, wenn ungeeignete Prädiktoren im Voraus aussortiert werden und nur die für das Lernen notwendigen übrig bleiben. Das Problem ist, dass die notwendigen Prädiktoren irgendwie identifiziert oder gefunden werden müssen, und der Wald ist dabei keine Hilfe.
Das ist mir noch nicht gelungen.
Die meiste Zeit hat es gedauert, die Prädiktoren mit Eigenwert = 0 nach cov() der Trainingstabelle auszusieben (ich gehe davon aus, dass nur speziell korrelierte Prädiktoren geeignet sind). Nach 24 Stunden kam es zum Training des ForeCA-Modells selbst, das aufgrund eines Fehlers nicht trainiert werden konnte:
Das Paket stellt sehr hohe Anforderungen an die Prädiktoren und enthält viele verschiedene Einschränkungen. Ich weiß nicht einmal, was der letzte Fehler bedeutet, aber ich werde ihn genauer untersuchen.
Ich werde das später fertigstellen:
Google sagt, dass Sie die Prädiktoren nicht löschen müssen. Sie können sie so transformieren, dass sie nicht mehr korreliert sind, dann hat die Kovarianzmatrix vollen Rang, was für ForeCA erforderlich ist. Für die Aufhellung gibt es einige Funktionen im Paket selbst (es funktionierte nicht sofort, Sie müssen sie herausfinden), plus die Theorie in den Links unten.
Um ForeCA richtig zu nutzen, müssen Sie zuerst verstehen und lernen, wie man es macht:
http://stats.stackexchange.com/questions/23420/is-whitening-always-good
http://courses.media.mit.edu/2010fall/mas622j/whiten.pdf
1) Der Forex Forest wird nur dann korrekt funktionieren, wenn Sie die ungeeigneten Prädiktoren im Voraus aussortieren und nur die benötigten für das Training übrig lassen. Das Problem ist, dass die richtigen Prädiktoren identifiziert oder gefunden werden müssen, und der Wald ist dabei keine Hilfe.
2) Das Paket ist sehr anspruchsvoll für Prädiktoren, es gibt viele Einschränkungen. Ich weiß nicht einmal, was der letzte Fehler bedeutet, aber ich werde ihn genauer untersuchen.
1) Ich habe eine Idee vorgeschlagen, von der ich denke, dass sie gut genug ist, um eine solche Auswahl zu treffen, aber niemand ist daran interessiert, und ich kann sie nicht selbst implementieren.
2) Ich kann es nicht selbst tun. 2) Sie dürfen nur die Datenmenge reduzieren, sonst wissen Sie es selbst).
Ich habe diesen Beitrag bereits gepostet, aber niemand hat reagiert, ich versuche es noch einmal.
Ich habe diesen Beitrag bereits gepostet, aber niemand hat darauf reagiert, also versuche ich es noch einmal. In BP gibt es einen Begriff wie Dynamic Time Warping (DTW), mit dessen Hilfe man das Preisdiagramm lesbarer und damit für den Algorithmus besser erkennbar machen kann
und alles scheint in Ordnung zu sein, aber das Traurige ist, dass wir als Ergebnis dieser Transformation zwei Koordinaten x und y Zeit(synthetisch) und Werte erhalten
die Frage ist, wie man diese Transformation in einen Vektor zurückverwandelt, so dass er seine Eigenschaften nicht verliert
so sieht es aus - oben normal, unten dtw
1) Ich habe eine Idee vorgeschlagen, die ich für gut genug halte, um eine solche Auswahl zu treffen, aber niemand ist daran interessiert, und ich kann sie nicht selbst umsetzen.
2) Reduzieren Sie nur die Datenmenge oder kennen Sie sich aus)
Was schlagen Sie vor? Aber was habe ich verpasst? Darf ich Ihre Idee wiederholen?
Die Frage ist, wie man diese Transformation in einen normalen Vektor zurückverwandeln kann, ohne seine Eigenschaften zu verlieren.
Ich habe ein weiteres Beispiel mit ForeCA gemacht, in Archiv kleine Tabelle für Test und Code für die Arbeit mit ihm.
Dieses Mal habe ich es richtig gemacht.
Sie können Ihre eigene Tabelle mit Trainingsdaten für das Modell verwenden, die Hauptsache ist, dass es eine Matrix ohne Faktoren ist (Training mit lm, Sie können nur Regression verwenden). Die Anzahl der Zeilen sollte viel größer sein als die Anzahl der Prädiktoren, da es sonst zu Fehlern in ForeCA kommt.
Ich habe 0 und 1 Zielwerte, mit anderen Genauigkeit wird nicht richtig bestimmt werden, wenn das, korrigieren Sie bitte Code in RegressionToClasses01(regr) für Ihren Fall an der Stelle, wo Regression Ergebnis wird auf Klassen gerundet.
trainData - Daten für die Ausbildung
trainDataFT - Daten für den Fronttest
Ergebnis:
lm auf Rohdaten: 75% Genauigkeit auf Trainingsdaten und 57% auf neuen Daten.
lm auf alle 14 Komponenten von foreCA: 75 % auf Trainingsdaten und 61 % auf neue Daten. Etwas besser, aber in diesem Fall ist +4% nur +1 richtiges Ergebnis, die Tabelle ist ziemlich klein :)
Das heißt, wenn die Prädiktoren bereits vorausgewählt sind, sollte sich die Genauigkeit nach ForeCA nicht verschlechtern, vielleicht sogar um ein paar Prozentpunkte erhöhen.
Ich habe auch ein Diagramm mit der Abhängigkeit der Genauigkeit von der Anzahl der ForeCA-Komponenten hinzugefügt. Es scheint, dass die Ergebnisse umso genauer sind, je größer die Anzahl der Komponenten ist. Maximal zulässige Anzahl von Komponenten = Anzahl von Prädiktoren.
Der zweite Teil des Experiments lautet.
Ich hatte 14 zuvor ausgewählte Prädiktoren und fügte weitere 14 mit Zufallswerten hinzu. Die maximal zulässige Anzahl von ForeCA-Komponenten beträgt nun 28.
Die Vorhersagegenauigkeit mit allen 28 Komponenten auf Trainingsdaten beträgt in beiden Fällen (mit und ohne foreCA) 76 %, die Genauigkeit auf neuen Daten beträgt in beiden Fällen 57 %.
Ich glaube nicht, dass foreCA mit dem Müll in den Prädiktoren fertig geworden ist, ich habe das erwartete Wunder nicht gesehen.
Na und?