Come applicare la rete neurale alle previsioni delle serie storiche?


83

Sono nuovo di machine learning e ho cercato di capire come applicare la rete neurale alla previsione di serie storiche. Ho trovato risorse relative alla mia query, ma mi sembra di essere ancora un po 'perso. Penso che una spiegazione di base senza troppi dettagli sarebbe di aiuto.

Diciamo che ho alcuni valori di prezzo per ogni mese per alcuni anni e voglio prevedere nuovi valori di prezzo. Potrei ottenere un elenco di prezzi negli ultimi mesi e quindi provare a trovare tendenze simili in passato usando K-Clos-Neighbor. Potrei usare il tasso di cambiamento o qualche altra proprietà delle tendenze passate per provare a prevedere nuovi prezzi. Come posso applicare la rete neurale a questo stesso problema è quello che sto cercando di scoprire.




@solartic, solo curioso, hai implementato con successo questo metodo?
Saggy Manatee And Swan Folk

Risposte:


102

Ecco una semplice ricetta che può aiutarti a iniziare a scrivere codice e testare idee ...

Supponiamo che tu abbia registrato mensilmente dati per diversi anni, quindi hai 36 valori. Supponiamo anche che ti interessi solo prevedere in anticipo un mese (valore).

  1. Analisi dei dati esplorativi: applicare alcuni dei metodi di analisi delle serie storiche tradizionali per stimare la dipendenza da ritardo nei dati (ad es. Grafici di autocorrelazione e autocorrelazione parziale, trasformazioni, differenze). Supponiamo che il valore di un determinato mese sia correlato ai dati degli ultimi tre mesi, ma non molto oltre.
  2. Partiziona i tuoi dati in set di addestramento e validazione: prendi i primi 24 punti come valori di allenamento e i punti rimanenti come set di validazione.
  3. Crea il layout della rete neurale: prenderai i valori degli ultimi tre mesi come input e vuoi predire il valore del mese successivo. Pertanto, è necessaria una rete neurale con un livello di input contenente tre nodi e un livello di output contenente un nodo. Probabilmente dovresti avere un livello nascosto con almeno un paio di nodi. Sfortunatamente, scegliere il numero di livelli nascosti e il loro rispettivo numero di nodi non è qualcosa per cui ci sono chiare linee guida. Comincerei in piccolo, come 3: 2: 1.
  4. Creare i modelli di allenamento: ogni modello di allenamento avrà quattro valori, con i primi tre corrispondenti ai nodi di input e l'ultimo che definisce quale sia il valore corretto per il nodo di output. Ad esempio, se i dati di allenamento sono valori poi p a t t e r n 1 : x 1 , x 2 , x 3 , x 4 p a t t e r n 2 : x 2 , x 3 , x 4 , x 5 ... p a t t e r n 21 : x 21
    x1,x2,x24
    pattern1:x1,x2,x3,x4
    pattern2:x2,x3,x4,x5
    pattern21:x21,x22,x23,x24
  5. Allena la rete neurale su questi schemi
  6. Testare la rete sul set di validazione (mesi 25-36): qui passerai i tre valori necessari alla rete neurale per il layer di input e vedrai a cosa viene impostato il nodo di output. Quindi, per vedere quanto bene la rete neurale addestrata può prevedere il valore del mese 32, passerai i valori per i mesi 29, 30 e 31

Questa ricetta è ovviamente di alto livello e all'inizio potresti grattarti la testa quando cerchi di mappare il tuo contesto in diverse librerie / programmi software. Ma, si spera, questo delinea il punto principale: è necessario creare modelli di allenamento che ragionevolmente contengano la struttura di correlazione della serie che si sta tentando di prevedere. E se si esegue la previsione con una rete neurale o un modello ARIMA, il lavoro esplorativo per determinare quale sia quella struttura è spesso la parte più lunga e difficile.

Nella mia esperienza, le reti neurali possono fornire grandi funzionalità di classificazione e previsione, ma la loro configurazione può richiedere molto tempo. Nell'esempio sopra, potresti scoprire che 21 modelli di allenamento non sono sufficienti; diverse trasformazioni dei dati di input portano a previsioni migliori / peggiori; la variazione del numero di livelli nascosti e nodi dei livelli nascosti influisce notevolmente sulle previsioni; eccetera.

Consiglio vivamente di visitare il sito Web neural_forecasting , che contiene tonnellate di informazioni sulle competizioni di previsione della rete neurale. La pagina Motivations è particolarmente utile.


12
+1 a questa risposta, ma aggiungendo anche che anche se i 3 mesi più recenti sono i soli correlati alla risposta, potrebbero esserci anche fattori come gli stessi mesi dell'anno negli ultimi 5 anni precedenti che sono input utili ( ad es. se i Decembers tendono ad apparire come i precedenti Decembers, in genere).
Rossdavidh,

1
Bella risposta. Ho trovato questo molto utile. Una spiegazione di alto livello è esattamente quello che volevo. @rossdavidh: buon punto +1.
solartico

2
Sarebbe bello avere alcuni codici di esempio qui.
Léo Léopold Hertz

1
La cosa interessante sarebbe un set di dati di serie storiche multivariate insieme ai regressori.
Tommaso Guerrini,

1
Qualcuno conosce un documento con un'applicazione per dati reali e un confronto con il metodo "tradizionale" delle serie storiche?
Marco Fumagalli,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.