Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 137
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
Was ist das Problem? Bitte helfen Sie mir.
Es funktioniert folgendermaßen:
test_vec <- numeric() # тут будем хранить показатели теста
for(i in 151:ln){
print(i)
idx <- (i-150):i
#проводим линейную регрессию для определения правильного соотношения
x <- data[idx, ]
model <- lm(ri ~ si + 0, x)
#вычисляем разницу цен (спред)
spread <- x$ri - coef(model)[[1]] * x$si
#проводим тест Дики-Фуллера на стационарность
test <- adf.test(as.vector(spread), k = 0)
test_vec[i-150] <- test$p.value
}
plot(test_vec, type = 's')
Erstens kann R^2 0,55 realistischerweise erreicht werden, indem eine kleine funktionale Transformation der "Metafunktion" vorgenommen wird. Hinzu kommt, dass sich die Funktion in ihrer Form als etwas kompliziert erweist.
Und noch etwas - versuchen Sie zu nehmen:
rowMeans(df[,1:10])
...
Ich habe 10 neue Spalten hinzugefügt, das hat nichts an nnet geändert, die Ergebnisse und Lernkurven sind in etwa gleich geblieben, das Modell wählt die gleichen Prädiktoren aus.
Aber der Baum brachte plötzlich viel bessere Ergebnisse. Der Wald ist auch besser geworden, aber ein Baum führt alleine (pseudo r^2=0.39), hier sind die Graphen mit Rattle auf den neuen Daten.
Der Baum wählte nur rowMeans[,1:50] und erinnerte sich an seine Werte aus den Trainingsdaten. Es besteht also eine sehr enge, aber nicht lineare Beziehung zwischen rowMeans[,1:50] und dem Ziel.
Wenn wir jedoch nur diese 10 neuen Prädiktoren belassen, dann wird nnet auf r^2=0,22 trainieren, was ebenfalls besser ist.
Ich habe 10 neue Spalten hinzugefügt, das hat nichts an nnet geändert, die Ergebnisse und Lernkurven sind ungefähr gleich, das Modell wählt die gleichen Prädiktoren.
Aber der Baum brachte plötzlich viel bessere Ergebnisse. Der Wald ist auch besser geworden, aber ein Baum führt alleine (pseudo r^2=0.39), hier sind die Graphen mit Rattle auf den neuen Daten.
Der Baum wählte nur rowMeans[,1:50] und erinnerte sich an seine Werte aus den Trainingsdaten. Es besteht also eine sehr enge, aber nicht lineare Beziehung zwischen rowMeans[,1:50] und dem Ziel.
Wenn wir jedoch nur diese 10 neuen Prädiktoren belassen, dann wird nnet auf r^2=0,22 trainieren, was ebenfalls besser ist.
Das ist richtig. mean(1:50). Gute Ergebnisse. Ich werde nun versuchen, die Annäherung an die Funktion ein wenig zu verbessern. Wenn es Ihnen nichts ausmacht, können Sie das Streudiagramm zwischen der gefundenen Korrektur und der simulierten Ausgabe veröffentlichen. Für NS oder für zufällige Wälder. Ich werde meine nachher posten. Es sollte eine Nichtlinearität geben.
Alexey Burnakov:
Hier sollte es eine Nichtlinearität geben.
Dem Schaubild nach zu urteilen, besteht ein kleiner Zusammenhang. Aber sowohl Neuronics als auch der Baum stellen nur einen allgemeinen Trend fest. Und dieser Prädiktor allein kann natürlich nicht zum Trainieren des Modells verwendet werden, mehr kann man mit einem Baum nicht erreichen.
Der Grafik nach zu urteilen, gibt es einen gewissen Zusammenhang. Aber sowohl die Neuronen als auch der Baum zeigen nur einen allgemeinen Trend. Und dieser Prädiktor allein hilft natürlich nicht, das Modell zu trainieren, es ist unmöglich, mehr aus dem Baum herauszuholen.
Vielen Dank, vielen Dank.
Ja, ich stimme zu.
Meine Diagramme:
rmse minimieren
echte Abhängigkeit:
Modell:
Real und Modell:
Die ursprüngliche Konzeption ist rein:
Wie der echte ausgesehen hat, wenn man die Geräuschentwicklung betrachtet, haben Sie bereits gesehen.
Die bestmögliche Modellierungsqualität:
Es funktioniert:
Der Grafik nach zu urteilen, gibt es einen gewissen Zusammenhang. Aber sowohl die Neuronen als auch der Baum zeigen nur einen allgemeinen Trend. Und dieser Prädiktor allein reicht natürlich nicht aus, um das Modell zu trainieren, es ist unmöglich, mehr aus dem Baum herauszuholen.
Wir müssen die Aufgabe zusammenfassen und aufschreiben, was wir verstanden haben.
Alles unter der Annahme, dass wir im wirklichen Leben nichts über die Art der Abhängigkeit wissen.
Ich verstehe das so:
1) Es ist schwierig, aus einer Reihe einfacher Fics wie Preisrückgaben eine Abhängigkeit zu ziehen, und viele Methoden funktionieren nicht gut. Aber nach allgemeinen Grundsätzen kann man durch Faltung eine ungefähre Lösung erhalten.
2) Wenn Sie viele Merkmale im Voraus erstellen, ist die Wahrscheinlichkeit groß, dass die konventionellen Methoden gut funktionieren.
3) Der beste Qualitätsmaßstab für Rohchips ist nach dem Faltungs-NS der konventionelle NS, gefolgt von anderen Methoden mit etwa demselben Ergebnis.
4) bei vielen potenziell erzeugten Fichen, Wald, NS funktioniert gut.
5) Die Frage, ob es besser ist, die NS-Faltung die Chips selbst einsammeln zu lassen als einen Menschen, ist noch offen. Die richtige Faltungsarchitektur zu finden, ist wahrscheinlich genauso viel Arbeit wie die Erstellung einer Reihe von Merkmalen im Voraus.
Was können Sie hinzufügen, Dr.?
Ich habe versucht, fics zu generieren, als Sie das Problem zum ersten Mal gepostet haben. Der Algorithmus hat die ganze Nacht verschiedene mathematische Kombinationen durchgespielt und die besten neuen Prädiktoren durch vtreat-Schätzung ausgewählt. Es gab kein positives Ergebnis, das Modell konnte nicht einmal richtig von den neuen Prädiktoren lernen. Es ist also entweder zufällig und man errät die richtigen Prädiktoren und mathematischen Operationen auf ihnen, oder nicht. Sie können tagelang Varianten entwickeln und ausprobieren und es wird trotzdem nichts nützen. Da das Faltungsnetzwerk mit den ursprünglichen Prädiktoren bessere Ergebnisse erzielte als das übliche Netzwerk mit Rowmeans, ist es wahrscheinlich besser, das Faltungsnetzwerk zu verwenden.
Ich habe versucht, fics zu generieren, als Sie das Problem zum ersten Mal gepostet haben. Der Algorithmus hat die ganze Nacht verschiedene mathematische Kombinationen durchgespielt und die besten neuen Prädiktoren durch vtreat-Schätzung ausgewählt. Es gab kein positives Ergebnis, das Modell konnte nicht einmal richtig von den neuen Prädiktoren lernen. Es ist also entweder zufällig und man errät die richtigen Prädiktoren und mathematischen Operationen auf ihnen, oder nicht. Sie können tagelang Varianten erstellen und ausprobieren und es wird trotzdem nichts nützen. Da das Faltungsnetzwerk mit den ursprünglichen Prädiktoren bessere Ergebnisse erzielt hat als das übliche Netzwerk mit Rowmeans, ist es meiner Meinung nach besser, ein Faltungsnetzwerk zu verwenden.
Danke, Dr.!
Ja, das ist auch ein guter Punkt. Es ist nur so, dass ich es gewohnt bin, Summen mit einem gleitenden Erhöhungsfenster abzuziehen, ebenso wie Differenzen mit einer gleitenden Verzögerung und alle anderen gleitenden Dinge in der Vergangenheit.
Ich sehe, ich habe die Vorstellung, dass es für die Modellierung von fast allem (fast!) ausreicht, Prädiktoren der Form zu nehmen:
aktueller_Preis - Preis(lag1)
aktueller_Preis - Preis(lag2)
...
aktueller_Preis - Preis(lag_n)
Dies kann als gleitende Summen behandelt werden (die leicht in Durchschnittswerte umgewandelt werden können), und jede Konfiguration des Trends kann reproduziert werden: Knicke an verschiedenen Stellen, Geschwindigkeit, Beschleunigung.
Apropos Faltungsnetzwerk: Ich schlage vor, dass Sie versuchen, den von mir zitierten Code in die Praxis umzusetzen. Und konzentrieren Sie sich auf die Analyse der Gewichte und Kernel des Netzes. Der Kernel zeigt die Art der Faltung an. Gewichte können Bedeutung und Nichtlinearität anzeigen.
Ich persönlich pausiere vorerst mit meinem Hauptexperiment, obwohl es dort bereits einige erträgliche Ergebnisse gibt. Mir wird nur langweilig... Ich beschloss, die Vorhersage eines Aktieninstruments mit einem Faltungsnetzwerk zu versuchen. Der Aufwand ist ziemlich gering (um eine Größenordnung niedriger als der Forex-Spread), und es besteht die Vorstellung, dass es funktioniert. Ich werde Ihnen später mehr darüber erzählen.
Schnellkurs auf CNN: http://cs231n.github.io/convolutional-networks/
Diese Videovorträge waren früher auch auf YouTube zu sehen, dann wurden sie entfernt, aber sie bleiben in archive.org - https://archive.org/details/cs231n-CNNs
In englischer Sprache, aber sehr informativ und nützlich. Hauptsächlich geht es um Bilderkennung durch Faltungsnetze, aber es gibt auch eine Menge nützlicher Informationen über Neuronen im Allgemeinen.