Addestrare una rete neurale autoregressiva non lineare con input esterno (NARX) ed eseguire previsioni su nuovi dati di serie temporali. La previsione di una sequenza di valori in una serie temporale è nota anche come previsione multifase. Le reti a loop chiuso possono eseguire previsioni multifase. Quando manca il feedback esterno, le reti a loop chiuso possono continuare a eseguire la previsione utilizzando il feedback interno. Nella previsione NARX, i valori futuri di una serie temporale sono previsti a partire dai valori passati della serie, dall'input di feedback e da una serie temporale esterna.
Caricare i dati di previsione di una serie temporale semplice.
Suddividere i dati in dati di addestramento XTrain
e TTrain
e in dati di previsione XPredict
. Utilizzare XPredict
per eseguire la previsione dopo aver creato la rete a loop chiuso.
Creare una rete NARX. Definire i ritardi di input, i ritardi di feedback e la dimensione dei livelli nascosti.
Preparare i dati della serie temporale utilizzando preparets
. Questa funzione sposta automaticamente le serie temporali di input e di target del numero di fasi necessarie per riempire gli stati iniziali di input e di ritardo del livello.
Una pratica consigliata è quella di creare completamente la rete a loop aperto per poi trasformarla in una rete a loop chiuso per la previsione multifase in avanti. Quindi, la rete a loop chiuso può prevedere tutti i valori futuri che si desidera. Se si simula la rete neurale solo nella modalità a loop chiuso, la rete può eseguire un numero di previsioni pari al numero di fasi temporali della serie di input.
Addestrare la rete NARX. La funzione train
addestra la rete in un loop aperto (architettura in serie parallela), comprese le fasi di convalida e di test.
Visualizzare la rete addestrata.
Calcolare l'output di rete Y
, gli stati finali di input Xf
e gli stati finali del livello Af
della rete a loop aperto dall'input di rete Xs
, dagli stati iniziali di input Xi
e dagli stati iniziali del livello Ai
.
Calcolare le prestazioni della rete.
Per prevedere l'output per le successive 20 fasi temporali, simulare prima la rete nella modalità a loop chiuso. Gli stati finali di input Xf
e gli stati del livello Af
della rete a loop aperto diventano gli stati iniziali di input Xic
e gli stati del livello Aic
della rete a loop chiuso netc
.
Visualizzare la rete a loop chiuso.
Eseguire la previsione per 20 fasi temporali in avanti nella modalità a loop chiuso.
Yc=1×20 cell array
{[-0.0156]} {[0.1133]} {[-0.1472]} {[-0.0706]} {[0.0355]} {[-0.2829]} {[0.2047]} {[-0.3809]} {[-0.2836]} {[0.1886]} {[-0.1813]} {[0.1373]} {[0.2189]} {[0.3122]} {[0.2346]} {[-0.0156]} {[0.0724]} {[0.3395]} {[0.1940]} {[0.0757]}