Zum Beispiel:
Ich möchte zukünftige Werte einer Zeitreihe basierend auf früheren Werten mehrerer Zeitreihen unter Verwendung einer ANN und / oder SVM vorhersagen. Eingaben sind verzögerte Werte aus jeder Zeitreihe, und die Ausgaben sind Prognosen mit einem Schritt voraus (Prognosen mit weiteren Horizonten werden erstellt, indem die Vorhersagen unter Verwendung vorheriger Vorhersagen "vorwärtsgerollt" werden).
Sollten SVMs und ANNs nicht in der Lage sein, Trends und Zyklen zu lernen? Würden sie nicht in der Lage sein, Dinge zu lernen wie: "Wenn alles andere gleich ist, sollte die Ausgabe dieser Serie 2x die vorherige Ausgabe sein?" Oder, wenn ich eine kategoriale Variable für den Monat gebe: "Teilen Sie die Vorhersage, die ich gemacht hätte, durch 2, da es Januar ist?"
Würde der Versuch, die Daten zu dezyklisieren und zu beeinträchtigen, zu mehr Verzerrungen als nötig führen?
Antworten:
Bei Algorithmen für maschinelles Lernen ist es häufig vorteilhaft, die Skalierung oder Normalisierung von Merkmalen zu verwenden, um die schnelle Konvergenz des Algorithmus während des Trainings zu unterstützen und zu vermeiden, dass ein Satz von Merkmalen einen anderen dominiert. Nehmen wir zum Beispiel das Problem der Vorhersage von Aktienkursen. Wenn Sie hochpreisige Aktien wie Apple oder Microsoft zusammen mit einigen Penny Stocks einbeziehen, werden die hochwertigen Funktionen, die Sie notwendigerweise aus Apple- und Microsoft-Preisen extrahieren, diejenigen überwältigen, die Sie aus den Penny Stocks extrahieren, und Sie werden nicht auf einem trainieren Apfel zu Apfel Basis (kein Wortspiel beabsichtigt!), und das resultierende trainierte Modell kann möglicherweise nicht sehr gut verallgemeinern.
Es wäre jedoch eine sehr gute Sache , imho "zu versuchen, die Daten zu dezyklisieren und zu verschlechtern" . Das Extrahieren der verschiedenen zyklischen und Trendkomponenten und das Normalisieren durch Subtrahieren ihrer jeweiligen Mittelwerte und Dividieren durch ihre Standardabweichungen würde alle Daten für alle Zeitreihen in den gleichen ungefähren Bereich bringen, und dann würden Sie darauf trainieren, Daten zu mögen, die wann mögen Durch Umkehrung der Normalisierung neu skaliert, würde sich für Vorhersagezwecke wahrscheinlich viel besser verallgemeinern lassen.
Darüber hinaus kann es für jede Zeitreihe vorkommen, dass der Trend die zyklische Komponente überschwemmt, sodass Sie möglicherweise nur mit Trenddaten trainieren, die mit ziemlicher Sicherheit bei zyklischen Zeitreihen nicht gut funktionieren, und umgekehrt. Wenn Sie die beiden Komponenten trennen und jeweils mit separaten SVMs oder NNs trainieren und dann die beiden Vorhersagen neu kombinieren, erhalten Sie möglicherweise einen genaueren und leichter verallgemeinerbaren Algorithmus.
quelle
Wie weit prognostizieren Sie im Vergleich zu den Zeitskalen, in denen Trends oder Zyklen ablaufen? Zhang, Qi 2005 - 'Neuronale Netzprognosen für saisonale und Trendzeitreihen' finden De-Saisonalisierung und De-Trending (DSDT) vorteilhaft, aber ihre Vorhersagezeitskalen ähneln denen ihrer Trend- / Saisonzeitskalen. Im Gegensatz dazu habe ich an Daten gearbeitet, bei denen ich kurze Zeitskalenvorhersagen (z. B. 1 Tag) mache und Trend / Saisonalität nur über viel längere Zeitskalen wirken. DSDT verbessert meine Vorhersagegenauigkeit immer noch bis zu einem gewissen Grad, aber die ML kann ohne DSDT alleine ziemlich gut zurechtkommen, da Trend / Saisonalität für die letzten Datenpunkte praktisch irrelevant sind.
quelle
Ich bin mir ziemlich sicher, dass Sie hier falsche Tools verwenden.
ML-Methoden werden für die Interpolation erstellt (wie die Vorhersage von Zeitreihen A aus Zeitreihen B und C); Für Hochrechnungen haben wir Markov-Ketten und Freunde.
Das Problem bei Ihrem Ansatz ist, dass es unter diesen Bedingungen furchtbar leicht ist, das Modell zu überpassen, und was noch schlimmer ist, es ist schwer zu erkennen (eine normale Kreuzvalidierung schlägt fehl, so dass es sehr schwierig ist, Parameter richtig anzupassen usw. .).
Es ist auch eine schlechte Idee, Prädiktoren explizite Zeit hinzuzufügen - ich habe Modelle gesehen, die angepasst wurden nur pünktlich und entscheidungsgerecht mit einer Genauigkeit von 90% bei der Kreuzvalidierung und zufälligen Schätzungen bei Datentests nach dem Training wurden. Wenn Sie Zeit benötigen, ist es besser, sie als eine Reihe von Zyklusbeschreibungen wie Wochentag oder Sekunden nach Mitternacht aufzunehmen, die offensichtlich niemals die Länge Ihrer Trainingsreihe überschreiten oder sich dieser annähern.
quelle