Entraînez un réseau de neurones autorégressif non linéaire avec entrée externe (NARX) et réalisez des prédictions sur des nouvelles données de séries temporelles. La prédiction d'une séquence de valeurs dans une série temporelle est également appelée prédiction en plusieurs étapes. Les réseaux en boucle fermée peuvent réaliser des prédictions en plusieurs étapes. En l’absence de feedback externe, les réseaux en boucle fermée peuvent poursuivre les prédictions au moyen de feedback interne. Dans une prédiction NARX, les valeurs futures d’une série temporelle sont prédites à partir des valeurs passées de cette série, du feedback en entrée et d’une série temporelle externe.
Chargez les données de prédictions de séries temporelles simples.
Partitionnez les données entre les données d’apprentissage XTrain
et TTrain
, et les données de prédiction XPredict
. Utilisez XPredict
pour effectuer une prédiction après avoir créé le réseau en boucle fermée.
Créez un réseau NARX. Définissez les retards en entrée, les retards de feedback et la taille des couches cachées.
Préparez les données de séries temporelles avec preparets
. Cette fonction décale automatiquement les séries temporelles en entrée et cibles du nombre d’étapes nécessaires pour remplir les états initiaux d'entrée et de retard de la couche.
L'une des méthodes recommandées consiste à créer entièrement le réseau en boucle ouverte, puis à le transformer en boucle fermée pour une prédiction à plusieurs étapes à l'avance. Le réseau en boucle fermée peut alors prédire autant de valeurs futures que vous le souhaitez. Si vous simulez le réseau de neurones en boucle fermée uniquement, le réseau peut effectuer autant de prédictions que le nombre de pas de temps de la série d'entrée.
Entraînez le réseau NARX. La fonction train
entraîne le réseau en boucle ouverte (architecture série-parallèle), y compris les étapes de validation et de test.
Affichez le réseau entraîné.
Calculez la sortie du réseau Y
, les états d'entrée finaux Xf
et les états de couche finaux Af
du réseau en boucle ouverte à partir de l'entrée du réseau Xs
, des états d'entrée initiaux Xi
et des états de couche initiaux Ai
.
Calculez la performance du réseau.
Pour prédire la sortie pour les 20 pas de temps suivants, commencez par simuler le réseau en boucle fermée. Les états d'entrée finaux Xf
et les états de la couche Af
du réseau en boucle ouverte net
deviennent les états d'entrée initiaux Xic
et les états de la couche Aic
du réseau en boucle fermée netc
.
Affichez le réseau en boucle fermée.
Effectuez la prédiction pour 20 pas de temps avant en boucle fermée.
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]}