Prévision de séries temporelles avec TensorFlow : composants, modèles et étapes

Publié: 2021-05-02

Table des matières

Qu'est-ce que la prévision de séries chronologiques ?

Saviez-vous que l'Asie-Pacifique est le marché mondial de l'apprentissage en profondeur le plus en croissance avec un TCAC (taux de croissance annuel composé) de plus de 40 % ? La prédiction TensorFlow des séries chronologiques est un concept important dans le deep learning et le ML. Tous les modèles d'apprentissage en profondeur/ML ont un ensemble de données respectif qui est une collection d'observations. Ces observations incluent souvent une composante temporelle. Les séries chronologiques organisent les observations séquentiellement dans le temps, ajoutant ainsi une nouvelle dimension à l'ensemble de données, c'est-à-dire le temps.

On peut penser à ce qui sera réalisé en augmentant la dimensionnalité de leur ensemble de données ? Eh bien, ajouter une dimension temporelle à votre ensemble de données créera un niveau détaillé de dépendance entre les observations. Le résultat est ensuite prédit à l'aide de la prévision de séries chronologiques d'observations antérieures.

L'utilisation de données de séries chronologiques (données historiques) pour prédire l'avenir est appelée prévision de séries chronologiques. Il faut également s'assurer que l'avenir est complètement inconnu et ne peut être prédit que sur la base de données historiques.

Les données de séries chronologiques sont analysées pour développer des modèles qui décrivent efficacement les données. La série temporelle est décomposée en plusieurs composants pour développer des modèles adaptés. Une fois que les modèles qui décrivent le mieux les données historiques sont développés, ils sont ensuite utilisés pour les prévisions. Il ne faut pas confondre l'analyse des séries chronologiques avec la prévision des séries chronologiques car cette dernière n'entre en action que lorsque la première est terminée.

Composants de la série chronologique

Avant de connaître les prévisions TensorFlow de séries chronologiques , il faut se familiariser avec le composant d'une série chronologique. Une série chronologique est décomposée en quatre composantes lors de l'analyse de la série chronologique. Ces composants aident à comprendre correctement l'ensemble de données. Les quatre composantes d'une série chronologique sont les suivantes :

  • Tendances – Le comportement d'une série/d'un ensemble de données dans le temps est expliqué par des tendances. Le comportement croissant et décroissant d'une série chronologique s'explique par des tendances.
  • Niveau – Le niveau est la valeur de base de la série chronologique, étant donné que la représentation de la série est une ligne droite. De nombreux experts définissent également le niveau comme la valeur moyenne de la série.
  • Saisonnalité - Les comportements de la série qui se répètent dans le temps sont appelés saisonnalité. Certains experts qualifient également la saisonnalité de fluctuations périodiques.
  • Bruit – Chaque jeu de données contient des points de données/valeurs aberrantes que le modèle de série chronologique ne peut pas expliquer. Ces ensembles de données possèdent des propriétés imprévisibles et ne peuvent pas être cartographiés via une analyse/prévision de séries chronologiques.

Il convient de noter qu'une série temporelle doit avoir un niveau et un certain bruit. Cependant, les tendances et la saisonnalité dans une série chronologique sont facultatives.

Pourquoi TensorFlow ?

Bien qu'il existe de nombreux frameworks disponibles sur le marché pour la prévision des séries chronologiques, les professionnels de la technologie profonde préfèrent TensorFlow à tous les frameworks disponibles. TensorFlow est écrit en Python, C++ et CUDA qui font partie des langages de programmation largement utilisés. TensorFlow est une bibliothèque de logiciels open source spécialement conçue pour l'apprentissage automatique et l'apprentissage en profondeur.

TensorFlow nous aide à créer des modèles ML lors de l'analyse de séries chronologiques qui seront utilisées pour les prévisions. Il propose aux utilisateurs de créer différents types de modèles tels que CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), etc. TensorFlow peut vous aider à prévoir un pas de temps unique ou multiple en fonction de l'utilisateur et de l'ensemble de données. Lors de la prévision de séries temporelles TensorFlow , vous pouvez :

  • Prévoyez une seule caractéristique/dimension pour un seul pas de temps.
  • Prévoyez toutes les dimensions de l'ensemble de données pour un seul pas de temps.
  • Prévoyez plusieurs étapes en une seule fois (faites toutes les prédictions en même temps).
  • Prévision pour plusieurs étapes où une prédiction est effectuée à la fois (autorégressive).

Configuration des données pour la prévision de séries chronologiques

Avant de faire des prévisions de séries chronologiques, nous devons préparer les données en conséquence. La configuration des prévisions de séries chronologiques comprend divers processus tels que l'extraction de données, la visualisation, l'exploration , le nettoyage, etc. Voyons les étapes de configuration des données pour les prévisions de séries chronologiques :

  • L'étape de base consiste à importer les données ou à extraire les données. Vous devez disposer d'un ensemble de données à partir duquel des informations riches seront extraites à l'aide de la prévision de séries chronologiques.
  • L'étape suivante est le nettoyage des données, où vous supprimez les points de données en double ou non pertinents. Les données manquantes sont également traitées à cette étape. Si des valeurs aberrantes sont découvertes tôt, supprimez-les de l'ensemble de données. Les erreurs structurelles peuvent également être corrigées lors du nettoyage des données.
  • Les quantités d'une série temporelle qui varient avec le temps sont appelées signaux. Ces signaux représentent également divers événements physiques dans une série chronologique. Par exemple, s'il existe une série chronologique de descriptions météorologiques de n'importe quel endroit sur des jours différents, les signaux seraient les événements physiques tels que la température, les précipitations, etc. Continuez en convertissant les signaux au format sin cos.
  • En plus de convertir les signaux au format sin cos, convertissez l'heure et la date en secondes. Une fois que vous avez terminé, tracez le temps et la fonction sin cos.
  • Avant de prévoir et de former nos données, nous allons diviser les données en fonction du temps pour une simplification supplémentaire.
  • Les données doivent maintenant être normalisées avant l'entraînement. L'étape la plus simple pour la normalisation des données consiste à soustraire la moyenne de l'ensemble de données de chaque point de données, puis à la diviser par l'écart type.
  • Une fois que vous en avez terminé avec la normalisation des données, vous devez vérifier le biais des données. Le biais de données est défini comme une condition dans laquelle certains éléments de l'ensemble de données sont fortement représentés par rapport à d'autres éléments. Les données biaisées entraînent une précision moindre ainsi que des analyses biaisées. Vous pouvez tracer un graphique en violon pour supprimer tout biais de données présent dans votre jeu de données.

Fenêtrage des données

Vous devez vous demander qu'il y a beaucoup de processus impliqués avant la prévision de séries chronologiques. Eh bien, les jeunes passionnés de technologie doivent savoir que la préparation des données est une étape cruciale avant la formation ou l'analyse des données. Le fenêtrage des données est la dernière étape de la configuration des données pour les prévisions TensorFlow de séries chronologiques . Le fenêtrage des données aide à utiliser les données avec différents modèles sans aucun souci.

Par exemple, si un modèle prédit 1 heure dans le futur, vous avez besoin d'une fenêtre de données historiques de 6 heures pour prédire efficacement. La fenêtre de données historiques est appelée "largeur d'entrée" tandis que la fenêtre de données à prédire est appelée "décalage" pendant le fenêtrage des données.

Checkout : Projets Tensorflow les plus populaires

Modèles TensorFlow en une seule étape

Lorsque vous avez l'ensemble de données dans sa forme la plus simple et que vous ne prédisez qu'un seul pas de temps dans le futur, vous utiliserez les modèles en une seule étape de TensorFlow. Par exemple, si vous avez créé une fenêtre de données de 'heures', alors prédisez pour un pas de temps, ce qui signifie que vous prédisez une heure dans le futur. Un objet "WindowGenerator" est créé dans TensorFlow pour développer des paires en une seule étape, c'est-à-dire une entrée et une étiquette.

Il est également suggéré de créer un modèle de base avant de former votre modèle. La création d'un modèle de référence vous aidera à comparer le modèle initial en une seule étape avec les futurs modèles complexes. Par exemple, si vous prédisez la température pour une heure dans le futur, créez un modèle de référence qui renvoie la température actuelle sous forme de prédiction (pas de changement).

Étant donné que les températures changent lentement au fil du temps, il est possible qu'il n'y ait aucun changement de température après une heure. Notez que le modèle de référence ne sera pas efficace lors de la prédiction de plusieurs pas de temps.

Un autre exemple de création d'un modèle à pas de temps unique à l'aide de TensorFlow consiste à insérer une transformation linéaire entre l'entrée et la sortie. Assurez-vous que la sortie dépend uniquement du pas de temps unique à évaluer lors de la création d'un modèle linéaire à l'aide de TensorFlow. Le modèle dense est un autre modèle en une seule étape créé à l'aide de TensorFlow.

Les réseaux de neurones à convolution via TensorFlow peuvent également être utilisés pour prédire pour un seul pas de temps. Une couche de convolution dans TensorFlow prendra plusieurs pas de temps comme entrée pour prédire un pas de temps. Les RNN sont également largement utilisés pour les prévisions de séries chronologiques.

L'état interne de la machine saute également d'un pas de temps à un autre car les RNN traitent une série temporelle pas à pas (par défaut). La prévision TensorFlow de séries chronologiques via RNN est un bon choix, car les modèles RNN ont tendance à se souvenir d'un long historique d'entrées (données historiques).

Modèles multi-étapes TensorFlow

Dans les modèles multi-étapes, la prédiction est faite sur une plage de pas de temps. Contrairement à un modèle à une seule étape, un modèle à plusieurs étapes prédit une plage de valeurs futures à l'aide de données historiques. Les modèles à plusieurs étapes peuvent prédire l'ensemble de la série temporelle future en une seule fois via une prédiction à un seul coup. Vous pouvez également utiliser la prédiction autorégressive, où le modèle effectue une prédiction en une seule étape à la fois. Le résultat de la prédiction en une seule étape dans la prédiction autorégressive fonctionne comme entrée pour la prédiction du pas de temps suivant.

Conclusion

La prédiction TensorFlow de séries chronologiques fournit des résultats précis par rapport à d'autres frameworks. Nous avons discuté de certains des modèles en une étape (CNN, RNN, Dense, etc.) qui peuvent être utilisés pour la prédiction en une étape via TensorFlow.

Vous pouvez également prédire une plage de valeurs futures à l'aide de modèles à plusieurs étapes. Il convient également de noter que la préparation des données est une étape clé avant la prédiction TensorFlow des séries chronologiques . Vous pouvez en savoir plus sur la prédiction de séries chronologiques dans DL (Deep Learning) et ML en optant pour le programme de certificat avancé upGrad en DL et ML . Commencez à apprendre la prévision de séries chronologiques avec TensorFlow !

Quelles sont les limites de l'utilisation de TensorFlow ?

Bien que TensorFlow diminue la longueur du code, il rend également le code un peu complexe. Par rapport à ses concurrents, TensorFlow est lent et aussi moins utilisable. TensorFlow est en retard lorsqu'il s'agit de proposer des boucles symboliques pour des séquences indéfinies. TensorFlow n'a que la prise en charge du GPU NVIDIA et la prise en charge de la programmation du GPU Python. Il n'a pas d'autres formes de soutien. Il n'a pas beaucoup d'avantages pour les utilisateurs du système d'exploitation Windows.

L'amplitude des discontinuités aux frontières de chaque séquence finie enregistrée par le numériseur est réduite par fenêtrage. Un système de fenêtrage permet à de nombreuses applications de partager simultanément l'affichage graphique et les ressources de présentation d'un ordinateur. Vous souhaiterez peut-être utiliser plusieurs applications à la fois sur un ordinateur doté d'une interface utilisateur graphique (GUI).

Est-il difficile d'apprendre TensorFlow ?

TensorFlow est facile pour certaines personnes, tandis que d'autres considèrent qu'il est difficile à apprendre. Si vous avez une connaissance préalable de divers langages de programmation et que vous maîtrisez diverses techniques d'apprentissage automatique, l'apprentissage de TensorFlow vous sera facile. Cependant, le niveau de difficulté dépend également de votre intérêt. Si vous êtes vraiment intéressé par TensorFlow, l'apprendre ne sera pas une tâche très difficile.