Wie wende ich das Neuronale Netz auf die Vorhersage von Zeitreihen an?

83

Ich bin neu im maschinellen Lernen und habe versucht herauszufinden, wie man ein neuronales Netzwerk auf Zeitreihenprognosen anwendet. Ich habe eine Ressource gefunden, die mit meiner Anfrage zusammenhängt, aber ich scheine immer noch etwas verloren zu sein. Ich denke, eine grundlegende Erklärung ohne zu viele Details würde helfen.

Nehmen wir an, ich habe einige Preiswerte für jeden Monat in einigen Jahren und ich möchte neue Preiswerte vorhersagen. Ich konnte eine Preisliste für die letzten Monate abrufen und dann mithilfe von K-Nearest-Neighbor nach ähnlichen Trends in der Vergangenheit suchen. Ich könnte die Änderungsrate oder eine andere Eigenschaft der vergangenen Trends verwenden, um neue Preise vorherzusagen. Ich versuche herauszufinden, wie ich neuronale Netze auf dasselbe Problem anwenden kann.

solartic
quelle
1
Vorhersage mit neuronalen Netzen und Bayer's Previou im Thread Die richtige Verwendung von rekurrenten neuronalen Netzen für die Zeitreihenanalyse half mir, mein Verständnis zu verbessern.
Solartic
@solartic, nur neugierig, haben Sie diese Methode erfolgreich implementiert?
Saggy Manatee und Swan Folk

Antworten:

102

Hier ist ein einfaches Rezept, das Ihnen helfen kann, Code zu schreiben und Ideen zu testen ...

Nehmen wir an, Sie haben monatliche Daten, die über mehrere Jahre aufgezeichnet wurden, also 36 Werte. Angenommen, Sie möchten nur einen Monat (Wert) im Voraus vorhersagen.

  1. Explorative Datenanalyse: Wenden Sie einige der traditionellen Zeitreihenanalysemethoden an, um die Verzögerungsabhängigkeit in den Daten abzuschätzen (z. B. Autokorrelations- und Teilautokorrelationsdiagramme, Transformationen, Differenzierung). Angenommen, Sie stellen fest, dass der Wert eines bestimmten Monats mit den Daten der letzten drei Monate korreliert, aber nicht viel darüber hinaus.
  2. Unterteilen Sie Ihre Daten in Trainings- und Validierungssätze: Nehmen Sie die ersten 24 Punkte als Trainingswerte und die verbleibenden Punkte als Validierungssatz.
  3. Erstellen Sie das neuronale Netzwerk-Layout: Sie nehmen die Werte der letzten drei Monate als Eingaben und möchten den Wert des nächsten Monats vorhersagen. Sie benötigen also ein neuronales Netzwerk mit einer Eingabeebene, die drei Knoten enthält, und einer Ausgabeebene, die einen Knoten enthält. Sie sollten wahrscheinlich eine ausgeblendete Ebene mit mindestens ein paar Knoten haben. Leider gibt es keine klaren Richtlinien für die Auswahl der Anzahl der ausgeblendeten Ebenen und der entsprechenden Anzahl der Knoten. Ich würde klein anfangen, wie 3: 2: 1.
  4. X1,X2,X24
    peinttern1:X1,X2,X3,X4
    peinttern2:X2,X3,X4,X5
    peinttern21:X21,X22,X23,X24
  5. Trainieren Sie das neuronale Netz nach diesen Mustern
  6. Testen Sie das Netzwerk auf dem Validierungssatz (Monate 25-36): Hier geben Sie die drei Werte ein, die das neuronale Netzwerk für die Eingabeebene benötigt, und sehen, auf welche Werte der Ausgabeknoten eingestellt wird. Um zu sehen, wie gut das trainierte neuronale Netzwerk den Wert von Monat 32 vorhersagen kann, geben Sie die Werte für die Monate 29, 30 und 31 ein

Dieses Rezept ist offensichtlich auf hohem Niveau und Sie können sich zuerst den Kopf zerkratzen, wenn Sie versuchen, Ihren Kontext in verschiedene Softwarebibliotheken / -programme abzubilden. Hoffentlich skizziert dies jedoch den Hauptpunkt: Sie müssen Trainingsmuster erstellen, die die Korrelationsstruktur der Serie enthalten, die Sie prognostizieren möchten. Unabhängig davon, ob Sie die Prognose mit einem neuronalen Netzwerk oder einem ARIMA-Modell durchführen, ist die Erkundung der Struktur oft der zeitaufwändigste und schwierigste Teil.

Nach meiner Erfahrung können neuronale Netze hervorragende Klassifizierungs- und Prognosefunktionen bieten, deren Einrichtung kann jedoch zeitaufwändig sein. Im obigen Beispiel können Sie feststellen, dass 21 Trainingsmuster nicht ausreichen. Unterschiedliche Transformationen der Eingabedaten führen zu besseren / schlechteren Prognosen. Das Variieren der Anzahl der ausgeblendeten Ebenen und der Knoten für ausgeblendete Ebenen wirkt sich stark auf die Prognosen aus. usw.

Ich empfehle dringend einen Blick auf die neural_forecasting- Website, die jede Menge Informationen zu Wettbewerben zur Vorhersage neuronaler Netze enthält. Die Motivationsseite ist besonders nützlich.

Josh Hemann
quelle
12
+1 zu dieser Antwort, aber auch das Hinzufügen, dass selbst wenn die letzten 3 Monate die einzigen sind, die mit der Antwort korrelieren, es auch Faktoren wie den gleichen Monat des Jahres in den letzten 5 Jahren geben kann, die nützliche Eingaben sind ( zB wenn Decembers normalerweise so aussehen wie vorherige Decembers).
Rossdavidh
1
Gute Antwort. Ich fand das sehr hilfreich. Eine gute Erklärung ist genau das, was ich wollte. @ Rossdavidh: Guter Punkt +1.
Solartic
2
Es wäre toll, hier ein paar Beispielcodes zu bekommen.
Léo Léopold Hertz 준영
1
Das Interessante wäre ein multivariater Zeitreihendatensatz zusammen mit Regressoren.
Tommaso Guerrini,
1
Kennt jemand eine Arbeit mit einer Anwendung auf reale Daten und einem Vergleich mit der "traditionellen" Zeitreihenmethode?
Marco Fumagalli