Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 194
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Nun, ich habe diese Sache wieder bemerkt. Die Sache ist, dass ich einen Satz von Daten, perdicts 12 und dann ihre Verzögerungen kommen, lag1 und lag2. Zuvor lagen die Eingaben meist am Anfang des Satzes, d.h. es gab nur wenige Verzögerungen und dann nicht mehr als lag1, selten lag2. Ich kann verstehen, dass die Stichprobe mit Daten überladen ist, aber Tatsache ist, dass vor der Verallgemeinerung lag1 und lag2 häufiger vorkamen. Aber es ist eine Tatsache, dass die Verallgemeinerung früher meist in den Anfangskolumnen war, jetzt ist sie in den Endkolumnen.... fast, so folgern....
Sie müssen also zu früheren Versionen zurückkehren.
Mein Flug ist in Ordnung. Vielleicht, weil es in der Stichprobe keine Verzögerungen gibt?
Es sieht im Allgemeinen gut aus, ich bin gespannt, was am Ende passieren wird.
Zum Ausschuss: Ich habe einige Beispiele genannt, aber es gibt auch Modelle, die Regression mit Rundung zur Klassifizierung verwenden, und da ist es nicht so eindeutig. Ich habe zwei verschiedene Möglichkeiten ausprobiert, die Stimmen zu kombinieren:
1) Runden Sie alles zu Klassen auf, nehmen Sie die Klasse, für die es mehr Stimmen gibt.
D.h. eine 4-Bar-Vorhersage aus drei Modellen
c(0,1, 0,5, 0,4, 0,4) c(0,6, 0,5, 0,7, 0,1) c(0,1, 0,2, 0,5, 0,7) Ich würde es weiter auf die Klassen aufrunden
c(0, 1, 0, 0) c(1,1,1,0) c(0,0,1,1) , und der endgültige Vektor mit Vorhersagen wäre c(0, 1, 1, 0) nach Anzahl der Stimmen.
2) eine andere Möglichkeit besteht darin, das durchschnittliche Ergebnis sofort zu ermitteln und es erst dann auf die Klassen aufzurunden
das Ergebnis wäre c((0.1+0.6+0.1)/3, (0.5+0.5+0.2)/3, (0.4+0.7+0.5)/3, (0.4+0.1+0.7)/3)
oder (0,2666667, 0,4000000, 0,5333333, 0,4000000), oder
c(0, 0, 1, 0)
Paket tsDyn SETAR-Funktion
Es stellt sich heraus, dass der Schwellenwert (es kann zwei Schwellenwerte wie beim RSI geben) variabel ist. Erzielt erstaunliche Ergebnisse.
Nicht zu vergessen sind auch die Kalibrierungsalgorithmen bei der Klassifizierung. Der Punkt ist, dass die Klassenvorhersage in der Realität kein Nominalwert ist, der Algorithmus berechnet die Klassenwahrscheinlichkeit, die eine reale Zahl ist. Dann wird diese Wahrscheinlichkeit z. B. durch die Hälfte geteilt und man erhält zwei Klassen. Was ist, wenn die Wahrscheinlichkeit 0,49 und 051 ist, das sind zwei Klassen? Wie wäre es mit 0,48 und 052? Ist dies eine Einteilung in Klassen? Hier ist, wo SETAR würde in zwei Klassen, zwischen denen wäre Reshetovskie "auf dem Zaun" zu teilen.
Es sieht im Allgemeinen gut aus, ich bin gespannt, was am Ende passieren wird.
Was den Ausschuss betrifft, so habe ich einige Beispiele genannt, aber es gibt auch Modelle, die eine Regression mit Rundung zur Klassifizierung verwenden, und da ist es nicht so eindeutig. Ich habe zwei verschiedene Möglichkeiten ausprobiert, die Stimmen zu kombinieren:
1) runde alles zu Klassen auf, nimm die Klasse, die die meisten Stimmen erhält.
D.h. eine 4-Balken-Vorhersage aus drei Modellen
c(0.1, 0.5, 0.4, 0.4) c(0.6, 0.5, 0.7, 0.1) c(0.1, 0.2, 0.5, 0.7) Ich würde dies weiter aufrunden auf die Klassen
c(0, 1, 0, 0) c(1,1,1,0) c(0,0,1,1) , und der endgültige Vektor mit Vorhersagen wäre c(0, 1, 1, 0) nach Anzahl der Stimmen.
2) Die andere Möglichkeit besteht darin, das durchschnittliche Ergebnis direkt zu ermitteln und es erst dann auf die Klassen aufzurunden
das Ergebnis wäre c((0,1+0,6+0,1)/3, (0,5+0,5+0,2)/3, (0,4+0,7+0,5)/3, (0,4+0,1+0,7)/3)
oder (0,2666667, 0,533333, c(0, 0, 1) oder
)
Leute, bitte helft mir bei diesem Problem, denn ich glaube nicht, dass ich eine Antwort bekommen werde.
http://ru.stackoverflow.com/questions/586979/%D0%9A%D0%B0%D0%BA-%D0%B8%D0%B7-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%B2%D1%8B%D1%87%D0%BB%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D0%BD%D0%B5%D0%BA%D0%B8%D0%B5-%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D1%8B-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BF%D0%BE-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8E
Sie können auch hier antworten, es ist mir egal.
Ich werde sie dann hier beantworten.
dat <- data.frame(cluster1=c(24,2,13,23,6), cluster2=c(5,15,13,28,12), cluster3=c(18,12,16,22,20), cluster4=c(21,7,29,10,25), cluster5=c(16,22,24,4,11), target.label=c(1,1,0,1,0))
dat <- rbind(dat, dat[1,], dat[1,])
#результат последней строки поменян на 0 для эксперимента
dat[7,"target.label"]=0
library(sqldf)
#для sqldf точек в названиях колонок быть не должно
colnames(dat)[6] <- "target"
dat1 <- sqldf( "select cluster1, cluster2, cluster3, cluster4, cluster5, avg(target) as target_avg, count(target) as target_count from dat group by cluster1, cluster2, cluster3, cluster4, cluster5" )
dat1
dat1[ dat1$target_count>=10 & dat1$target_avg>0.63 , ]
dat1[ dat1$target_count>=10 & ( dat1$target_avg<0.37 | dat1$target_avg>0.63 ), ] #на случай если оба "0" или "1" встречаются чаще 70%
Das tsDyn-Paket ist eine SETAR-Funktion
SETAR bezieht sich speziell auf die Kalibrierung von Ausschüssen, oder ist dies ein separates Thema für die Erstellung von Finanzmodellen?
Ich habe die Packungsbeilage durchgeblättert, aber nicht gefunden, was ich brauche... Es gibt eine Situation: Ich habe eine Trainingstabelle mit 10000 Beispielen. Und es gibt 100 Modelle, die mit diesen Beispielen trainiert wurden. Um die Modelle zu testen, können Sie mit ihnen dieselben Eingabedaten vorhersagen und erhalten 100 Vektoren mit jeweils 10000 Vorhersagen. SETAR könnte verwendet werden, um all diese 100 Vektoren irgendwie zu einem zusammenzuführen?
Für eine Vorhersage mit neuen Daten gäbe es dann wieder 100 Vorhersagen, die wir zu einer einzigen zusammenführen müssten (es gäbe nicht 100 Vektoren, sondern 100 Einzelvorhersagen). Kann SETAR dies ebenfalls tun, indem es die aus den Trainingsdaten gewonnenen Ausschussparameter verwendet?
SETAR bezieht sich speziell auf die Kalibrierung von Ausschüssen, oder ist dies ein separates Thema für die Erstellung von Finanzmodellen?
Ich habe das Handbuch des Pakets durchgeblättert, ich sehe nicht, was ich brauche... Folgende Situation: Ich habe eine Trainingstabelle mit 10000 Beispielen. Ich habe 100 Modelle an diesen Beispielen trainiert. Um die Modelle zu testen, können Sie sie zur Vorhersage derselben Eingabedaten verwenden und erhalten 100 Vektoren mit jeweils 10000 Vorhersagen. SETAR könnte verwendet werden, um all diese 100 Vektoren irgendwie zu einem zusammenzuführen?
Für eine Vorhersage mit neuen Daten gäbe es dann wieder 100 Vorhersagen, die wir zu einer einzigen zusammenführen müssten (es gäbe nicht 100 Vektoren, sondern 100 Einzelvorhersagen). Wird SETAR auch dazu in der Lage sein, indem es aus den Trainingsdaten abgeleitete Ausschussparameter verwendet?
Sie müssen also zu früheren Versionen zurückkehren.
Ich komme gut zurecht. Vielleicht, weil es in der Stichprobe keine Verzögerungen gibt?