Ich versuche zu verstehen, wie man maschinelles Lernen eins oder mehr Schritte in die Zukunft voraussagt.
Ich habe eine finanzielle Zeitserie mit einigen beschreibenden Daten und möchte ein Modell bilden und dann das Modell verwenden, um n-Schritte vorauszusagen.
Was ich bisher gemacht habe, ist:
getSymbols("GOOG")
GOOG$sma <- SMA(Cl(GOOG))
GOOG$range <- GOOG$GOOG.High-GOOG$GOOG.Low
tail(GOOG)
GOOG.Open GOOG.High GOOG.Low GOOG.Close GOOG.Volume GOOG.Adjusted sma range
2013-05-07 863.01 863.87 850.67 857.23 1959000 857.23 828.214 13.20
2013-05-08 857.00 873.88 852.91 873.63 2468300 873.63 834.232 20.97
2013-05-09 870.84 879.66 868.23 871.48 2200600 871.48 840.470 11.43
2013-05-10 875.31 880.54 872.16 880.23 1897700 880.23 848.351 8.38
2013-05-13 878.89 882.47 873.38 877.53 1448500 877.53 854.198 9.09
2013-05-14 877.50 888.69 877.14 887.10 1579300 887.10 860.451 11.55
Dann habe ich ein randomForest-Modell an diese Daten angepasst.
fit <- randomForest(GOOG$GOOG.Close ~ GOOG$sma + GOOG$range, GOOG)
Was überraschend gut zu passen scheint:
> fit
Call:
randomForest(formula = GOOG$GOOG.Close ~ GOOG$sma + GOOG$range, data = GOOG)
Type of random forest: regression
Number of trees: 500
No. of variables tried at each split: 1
Mean of squared residuals: 353.9844
% Var explained: 97.28
Und versuchte es zu nutzen, um vorherzusagen:
predict(fit, GOOG, n.ahead=2)
Aber diese Vorhersage hat nicht funktioniert.
Ich versuche, den Abschluss vorherzusagen. Sollte ich den anderen Variablen so viele Schritte nacheilen, wie ich die Vorhersage möchte, bevor ich das Modell anpasse?
Wahrscheinlich sollte ich noch viele andere Dinge berücksichtigen, aber dies sind wirklich meine ersten Schritte, um maschinelles Lernen auszuprobieren.