Strategie di aumento dei dati per la previsione di serie storiche


13

Sto prendendo in considerazione due strategie per "aumentare i dati" nella previsione delle serie storiche.

Innanzitutto, un po 'di background. Un predittore per prevedere il passaggio successivo di una serie temporale è una funzione che di solito dipende da due cose, gli stati passati delle serie temporali, ma anche gli stati passati del predittore:P{Ai}

P({Ait1},PSt1)

Se vogliamo regolare / addestrare il nostro sistema per ottenere una buona , allora avremo bisogno di dati sufficienti. A volte i dati disponibili non saranno sufficienti, quindi consideriamo di aumentare i dati.P

Primo approccio

Supponiamo di avere la serie temporale , con . E supponiamo anche che abbiamo che soddisfi le seguenti condizioni: .{Ai}1inϵ0<ϵ<|Ai+1Ai|i{1,,n}

Possiamo costruire una nuova serie temporale , dove è una realizzazione della distribuzione .{Bi=Ai+ri}riN(0,ϵ2)

Quindi, invece di ridurre al minimo la funzione di perdita solo su , lo facciamo anche su . Quindi, se il processo di ottimizzazione richiede passaggi, dobbiamo "inizializzare" il predittore volte e calcoleremo circa stati interni del predittore.{Ai}{Bi}m2m2m(n1)

Secondo approccio

Calcoliamo come prima, ma non aggiorniamo lo stato interno del predittore usando , ma . Usiamo le due serie solo insieme al momento del calcolo della funzione di perdita, quindi calcoleremo circa stati interni del predittore.{Bi}{Bi}{Ai}m(n1)

Naturalmente, qui c'è meno lavoro di calcolo (anche se l'algoritmo è un po 'più brutto), ma per ora non ha importanza.

Il dubbio

Il problema è: da un punto di vista statistico, qual è l'opzione "migliore"? E perché?

La mia intuizione mi dice che il primo è migliore, perché aiuta a "regolarizzare" i pesi relativi allo stato interno, mentre il secondo aiuta solo a regolarizzare i pesi relativi al passato delle serie storiche osservate.


Extra:

  • Altre idee su come aumentare i dati per la previsione delle serie storiche?
  • Come ponderare i dati sintetici nel set di allenamento?

Risposte:


6

Altre idee su come aumentare i dati per la previsione delle serie storiche?

Attualmente sto pensando allo stesso problema. Ho trovato il documento "Miglioramento dei dati per la classificazione delle serie storiche utilizzando reti neurali convoluzionali" di Le Guennec et al. che tuttavia non copre le previsioni. Tuttavia i metodi di aumento menzionati sembrano promettenti. Gli autori comunicano 2 metodi:

Window Slicing (WS)

Un primo metodo che si ispira alla comunità della visione artificiale [8,10] consiste nell'estrarre sezioni da serie temporali ed eseguire la classificazione a livello di sezione. Questo metodo è stato introdotto per le serie storiche in [6]. Durante l'allenamento, a ciascuna sezione estratta da una serie temporale della classe y viene assegnata la stessa classe e un classificatore viene appreso utilizzando le sezioni. La dimensione della sezione è un parametro di questo metodo. Al momento del test, ogni sezione di una serie temporale del test viene classificata utilizzando il classificatore appreso e viene eseguito un voto a maggioranza per decidere un'etichetta prevista. Questo metodo viene definito window slicing (WS) nel seguito.

Window Warping (WW)

L'ultima tecnica di aumento dei dati che utilizziamo è più specifica per le serie storiche. Consiste nel deformare una porzione selezionata casualmente di una serie temporale accelerandola su o giù, come mostrato in Fig. 2. La dimensione della porzione originale è un parametro di questo metodo. La Fig. 2 mostra una serie temporale dal set di dati “ECG200” e i corrispondenti dati trasformati. Si noti che questo metodo genera serie temporali di input di lunghezze diverse. Per far fronte a questo problema, eseguiamo il taglio delle finestre su serie temporali trasformate affinché tutti abbiano la stessa lunghezza. In questo documento, consideriamo solo rapporti di deformazione uguali 0.5o uguali 2, ma potrebbero essere utilizzati altri rapporti e il rapporto ottimale potrebbe persino essere regolato attraverso la convalida incrociata sul set di addestramento. Di seguito, questo metodo verrà chiamato window warping (WW).

Fig. 2 dalla carta

Gli autori hanno mantenuto invariato il 90% delle serie (ovvero WS è stato impostato su una sezione del 90% e per la WW il 10% delle serie è stato deformato). È stato riferito che i metodi riducono l'errore di classificazione su diversi tipi di dati (temporali) delle serie, ad eccezione delle rappresentazioni 1D dei contorni delle immagini. Gli autori hanno preso i loro dati da qui: http://timeseriesclassification.com

Come ponderare i dati sintetici nel set di allenamento?

Nell'aumento delle immagini, poiché non è previsto che la modifica cambi la classe di un'immagine, è molto comune ponderarla come qualsiasi dato reale. Le previsioni delle serie storiche (e persino la classificazione delle serie storiche) potrebbero essere diverse:

  1. Una serie temporale non è facilmente percepibile come un oggetto contiguo per l'uomo, quindi a seconda di quanto manometta, è ancora della stessa classe? Se tagli e deformi solo un po 'e le classi sono visivamente distinte, ciò potrebbe non costituire un problema per le attività di classificazione
  2. Per le previsioni, direi che

    2.1 WS è ancora un bel metodo. Indipendentemente da quale parte del 90% della serie guardi, ti aspetteresti comunque una previsione basata sulle stesse regole => peso totale.

    2.2 WW: Più si avvicina alla fine della serie, più cauto sarei. Intuitivamente, troverei un fattore di peso che scorre tra 0 (deformazione alla fine) e 1 (deformazione all'inizio), supponendo che le caratteristiche più recenti della curva siano le più rilevanti.


6

Altre idee su come aumentare i dati per la previsione delle serie storiche?

Un'altra risposta con un approccio diverso, basato su "Aumento del set di dati nello spazio delle funzionalità" di DeVries e Taylor.

In questo lavoro, dimostriamo che l' estrapolazione tra campioni nello spazio delle funzioni può essere utilizzata per aumentare i set di dati e migliorare le prestazioni degli algoritmi di apprendimento supervisionato. Il vantaggio principale del nostro approccio è che è indipendente dal dominio , non richiede conoscenze specialistiche e può quindi essere applicato a molti diversi tipi di problemi.

Mi sembra promettente. In linea di principio è possibile utilizzare qualsiasi codificatore automatico per creare rappresentazioni nello spazio delle funzioni. Queste funzioni possono essere interpolate o estrapolate.

CjCkC

L'articolo copre di nuovo solo la classificazione in sequenza. Ma ancora una volta i principi dell'IMO sono gli stessi per l'analisi di regressione. Ottieni nuovi dati presumibilmente dalla stessa distribuzione dei tuoi dati reali, ecco cosa vuoi.

architettura di aumento AE

Se elaboriamo ulteriormente questo principio di generazione dei dati da una rete neurale, finiremo con Generative Adversarial Networks (GAN) . Potrebbero essere usati in modo simile per generare dati aumentati che probabilmente saranno il modo più sofisticato e all'avanguardia per farlo.


4

Di recente ho implementato un altro approccio ispirato a questo articolo di Bergmeir, Hyndman e Benitez.

BB

In questo modo è possibile generare tutte le serie temporali aggiuntive necessarie che rappresentano abbastanza bene le serie temporali iniziali. Ecco un esempio dell'applicazione su alcuni dati reali per generare ulteriori serie temporali simili:

Serie aumentata

Qui l'incremento viene mostrato usando una trasformazione Yeo-johnson e non Box Cox come suggerito nel documento originale.

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.