Datenerweiterungsstrategien für die Zeitreihenprognose

11

Ich erwäge zwei Strategien zur "Datenerweiterung" bei der Vorhersage von Zeitreihen.

Zunächst ein bisschen Hintergrundwissen. Ein Prädiktor zur Vorhersage des nächsten Schritts einer Zeitreihe ist eine Funktion, die typischerweise von zwei Dingen abhängt, den Zeitzuständen vergangener Zeitreihen, aber auch den vergangenen Zuständen des Prädiktors:P{Ai}

P({Ait1},PSt1)

Wenn wir unser System anpassen / trainieren wollen, um ein gutes , benötigen wir genügend Daten. Manchmal reichen die verfügbaren Daten nicht aus, daher ziehen wir eine Datenerweiterung in Betracht.P

Erste Ansatz

Angenommen, wir haben die Zeitreihe mit . Und nehmen wir auch an, dass wir , das die folgende Bedingung erfüllt: .{Ai}1inϵ0<ϵ<|Ai+1Ai|i{1,,n}

Wir können eine neue Zeitreihe konstruieren , wobei eine Realisierung der Verteilung .{Bi=Ai+ri}riN(0,ϵ2)

Anstatt die Verlustfunktion nur über minimieren , tun wir dies auch über . Wenn der Optimierungsprozess also Schritte umfasst, müssen wir den Prädiktor mal "initialisieren" und berechnen ungefähr interne Zustände des Prädiktors.{Ai}{Bi}m2m2m(n1)

Zweiter Ansatz

Wir berechnen wie zuvor, aktualisieren jedoch nicht den internen Status des Prädiktors mit , sondern mit . Wir verwenden die beiden Reihen zum Zeitpunkt der Berechnung der Verlustfunktion nur zusammen, sodass wir ungefähr interne Zustände des Prädiktors berechnen .{Bi}{Bi}{Ai}m(n1)

Natürlich gibt es hier weniger Rechenarbeit (obwohl der Algorithmus etwas hässlicher ist), aber das spielt im Moment keine Rolle.

Der Zweifel

Das Problem ist: Was ist aus statistischer Sicht die "beste" Option? Und warum?

Meine Intuition sagt mir, dass die erste besser ist, weil sie hilft, die mit dem internen Zustand verbundenen Gewichte zu "regulieren", während die zweite nur hilft, die mit der Vergangenheit der beobachteten Zeitreihen verbundenen Gewichte zu regulieren.


Extra:

  • Haben Sie weitere Ideen zur Datenerweiterung für die Vorhersage von Zeitreihen?
  • Wie werden die synthetischen Daten im Trainingssatz gewichtet?
Castarco
quelle

Antworten:

5

Haben Sie weitere Ideen zur Datenerweiterung für die Vorhersage von Zeitreihen?

Ich denke gerade über das gleiche Problem nach. Ich habe das Papier "Datenerweiterung für die Klassifizierung von Zeitreihen unter Verwendung von Faltungs-Neuronalen Netzen " von Le Guennec et al. Dies gilt jedoch nicht für Prognosen. Dennoch sehen die dort erwähnten Augmentationsmethoden vielversprechend aus. Die Autoren kommunizieren 2 Methoden:

Fensterschneiden (WS)

Eine erste Methode, die von der Computer Vision Community inspiriert ist [8,10], besteht darin, Slices aus Zeitreihen zu extrahieren und eine Klassifizierung auf Slice-Ebene durchzuführen. Diese Methode wurde für Zeitreihen in [6] eingeführt. Beim Training wird jedem aus einer Zeitreihe der Klasse y extrahierten Slice dieselbe Klasse zugewiesen, und anhand der Slices wird ein Klassifikator gelernt. Die Größe des Slice ist ein Parameter dieser Methode. Zur Testzeit wird jeder Schnitt aus einer Testzeitreihe unter Verwendung des erlernten Klassifikators klassifiziert und eine Mehrheitsabstimmung durchgeführt, um ein vorhergesagtes Etikett zu bestimmen. Diese Methode wird im Folgenden als Window Slicing (WS) bezeichnet.

Window Warping (WW)

Die letzte von uns verwendete Datenerweiterungstechnik ist zeitreihenspezifischer. Es besteht darin, ein zufällig ausgewähltes Segment einer Zeitreihe durch Beschleunigen oder Verringern zu verzerren, wie in Abb. 2 dargestellt. Die Größe des ursprünglichen Objekts ist ein Parameter dieser Methode. Abb. 2 zeigt eine Zeitreihe aus dem Datensatz „ECG200“ und den entsprechenden transformierten Daten. Beachten Sie, dass diese Methode Eingabezeitreihen unterschiedlicher Länge generiert. Um dieses Problem zu beheben, führen wir Fensterschnitte für transformierte Zeitreihen durch, damit alle gleich lang sind. In diesem Artikel werden nur Warping-Verhältnisse gleich 0.5oder betrachtet 2, es könnten jedoch auch andere Verhältnisse verwendet werden, und das optimale Verhältnis könnte sogar durch Kreuzvalidierung des Trainingssatzes fein eingestellt werden. Im Folgenden wird diese Methode als Window Warping (WW) bezeichnet.

Abb. 2 aus Papier

Die Autoren hielten 90% der Serie unverändert (dh WS wurde auf 90% eingestellt und für den Zweiten Weltkrieg wurden 10% der Serie verzogen). Es wird berichtet, dass die Methoden Klassifizierungsfehler bei verschiedenen Arten von (Zeit-) Seriendaten reduzieren, mit Ausnahme von 1D-Darstellungen von Bildumrissen. Die Autoren haben ihre Daten von hier genommen: http://timeseriesclassification.com

Wie werden die synthetischen Daten im Trainingssatz gewichtet?

Da bei der Bildvergrößerung nicht erwartet wird, dass die Vergrößerung die Klasse eines Bildes ändert, wird es häufig als echte Daten gewichtet. Serie Prognose Zeit (und auch Zeitreihen - Klassifikation) könnten anders sein:

  1. Eine Zeitreihe ist für Menschen nicht leicht als zusammenhängendes Objekt wahrnehmbar. Ist es also immer noch dieselbe Klasse, je nachdem, wie viel Sie daran manipulieren? Wenn Sie nur ein wenig schneiden und verziehen und die Klassen visuell unterschiedlich sind, ist dies möglicherweise kein Problem für Klassifizierungsaufgaben
  2. Für die Prognose würde ich das argumentieren

    2.1 WS ist immer noch eine gute Methode. Unabhängig davon, bei welchem ​​90% -Teil der Serie Sie suchen, würden Sie immer noch eine Prognose erwarten, die auf denselben Regeln basiert => volles Gewicht.

    2.2 WW: Je näher es dem Ende der Serie kommt, desto vorsichtiger wäre ich. Intuitiv würde ich einen Gewichtsfaktor finden, der zwischen 0 (Verzerrung am Ende) und 1 (Verzerrung am Anfang) gleitet, vorausgesetzt, die neuesten Merkmale der Kurve sind am relevantesten.

Ascripter
quelle
5

Haben Sie weitere Ideen zur Datenerweiterung für die Vorhersage von Zeitreihen?

Eine weitere Antwort mit einem anderen Ansatz, basierend auf "Dataset Augmentation in Feature Space" von DeVries und Taylor.

In dieser Arbeit zeigen wir, dass die Extrapolation zwischen Stichproben im Feature-Space verwendet werden kann, um Datensätze zu erweitern und die Leistung von überwachten Lernalgorithmen zu verbessern. Der Hauptvorteil unseres Ansatzes besteht darin, dass er domänenunabhängig ist, kein Fachwissen erfordert und daher auf viele verschiedene Arten von Problemen angewendet werden kann.

Klingt für mich vielversprechend. Grundsätzlich können Sie jeden Autoencoder verwenden , um Darstellungen im Feature-Space zu erstellen. Diese Merkmale können interpoliert oder extrapoliert werden.

Die folgende Abbildung zeigt als Beispiel die Interpolation von zwei Merkmalsraumvektoren und (beachten Sie, dass positivere Ergebnisse für die Extrapolation aus zwei Vektoren gemeldet werden, siehe das Papier für Details). Der resultierende erweiterte Vektor wird dann zurück in den Eingaberaum decodiert und zum Training in das Netzwerk eingespeist.C k C 'CjCkC

Das Papier behandelt wiederum nur die Sequenzklassifizierung. Aber auch hier sind IMO die Prinzipien für die Regressionsanalyse dieselben. Sie erhalten neue Daten aus vermutlich derselben Verteilung wie Ihre realen Daten, genau das möchten Sie.

Architektur der AE-Erweiterung

Wenn wir dieses Prinzip der Datengenerierung durch ein neuronales Netzwerk weiter ausarbeiten, erhalten wir generative Adversarial Networks (GAN) . Sie könnten auf ähnliche Weise verwendet werden, um erweiterte Daten zu generieren, was wahrscheinlich die ausgefeilteste Methode auf dem neuesten Stand der Technik sein wird.

Ascripter
quelle
3

Ich habe kürzlich einen anderen Ansatz implementiert, der von diesem Artikel von Bergmeir, Hyndman und Benitez inspiriert wurde .

Die Idee ist, eine Zeitreihe zu nehmen und zuerst eine Transformation wie die Box Cox-Transformation oder Yeo-johnson (die einige Probleme mit der Box Cox löst) anzuwenden, um die Varianz der Reihe zu stabilisieren, und dann eine STL-Zerlegung auf die transformierte Reihe anzuwenden für saisonale Serien oder eine Lösszerlegung, um die Residuen der Serie zu erhalten. Nehmen Sie diese Residuen und booten Sie sie mit einem Bootstrap für bewegliche Blöcke, um zusätzliche Serien zu generieren . Bei diesen zusätzlichen Serien wird dann der anfängliche Trend und die Saisonalität der Startserie zu den Bootstrap-Residuen addiert, bevor die im ersten Schritt angewendete Leistungstransformation zuletzt invertiert wird.BB

Auf diese Weise können so viele zusätzliche Zeitreihen wie nötig generiert werden, die die anfänglichen Zeitreihen recht gut darstellen. Hier ist ein Beispiel für die Anwendung einiger realer Daten, um zusätzliche ähnliche Zeitreihen zu generieren:

Erweiterte Serie

Hier wird die Erweiterung mit einer Yeo-Johnson-Transformation und nicht mit Box Cox gezeigt, wie im Originalpapier vorgeschlagen.

Asen
quelle