Flow Forecast est une bibliothèque d'apprentissage profond basée sur PyTorch, conçue pour la prédiction, la classification et la détection d'anomalies de séries temporelles, avec une application initiale dans la prévision des inondations. Cette bibliothèque offre des capacités robustes pour les séries temporelles multivariées, permettant de traiter des données complexes contenant plusieurs caractéristiques corrélées, et fournit une solution complète pour diverses tâches de prédiction.
Qu'est-ce que la prédiction de séries temporelles multivariées ?
La prédiction de séries temporelles multivariées consiste à utiliser simultanément l'historique de plusieurs variables corrélées pour prévoir les tendances futures. Contrairement à la prédiction univariée, elle capture les relations complexes entre les variables, améliorant ainsi la précision. Par exemple, dans la prévision des inondations, il ne suffit pas de considérer le niveau d'eau ; il faut aussi intégrer les précipitations, la température, les débits amont, etc.
Points forts de Flow Forecast
1. Architecture de modèles dédiée aux données multivariées
Flow Forecast propose plusieurs modèles prenant en charge les entrées multivariées. LSTMForecast est l'un des plus simples et des plus utilisés. Il traite directement les séries temporelles multidimensionnelles et capture les dépendances à long terme via des couches LSTM empilées.
class LSTMForecast(torch.nn.Module):
"""
Modèle LSTM simple pour la prédiction de séries temporelles.
Prend une entrée multivariée et produit une séquence prédite.
"""
def __init__(
self,
seq_length: int,
n_time_series: int, # nombre de caractéristiques multivariées
output_seq_len=1,
hidden_states: int = 20,
num_layers=2,
bias=True,
batch_size=100,
probabilistic=False):
# Code d'initialisation du modèle
2. Prise en charge de modèles avancés
En plus de LSTM, Flow Forecast intègre plusieurs modèles récents :
- Informer : conçu pour les longues séquences temporelles, adapté aux données multidimensionnelles de grande dimension.
- Transformers : inclut Transformer XL, CrossFormer, utilisant des mécanismes d'attention pour capturer les interactions complexes entre variables.
- Modèles probabilistes : permettent de produire des distributions de probabilité pour les prédictions, fournissant une estimation de l'incertitude.
3. Chaîne d'outils de prétraitement complète
Les modules de prétraitement se trouvent dans flood_forecast/preprocessing/ :
data_converter.py: conversion de formats de données.temporal_feats.py: extraction de caractéristiques temporelles.interpolate_preprocess.py: traitement des valeurs manquantes.pytorch_loaders.py: chargeurs de données PyTorch.
Ces outils aident à gérer les problèmes courants dans les séries temporelles multivariées : valeurs manquantes, anomalies, et ingénierie des caractéristiques.
4. Configuration et entraînement flexibles
Flow Forecast permet de paramétrer les modèles via des fichiers de configuraton, s'adaptant à divers scénarios. Le module d'entraînement se trouve dans flood_forecast/trainer.py et propose un pipeline complet d'entraînement, validation et évaluation.
Démarrage rapide avec Flow Forecast
1. Installation
Clonez le dépôt :
git clone https://gitcode.com/gh_mirrors/fl/flow-forecast
cd flow-forecast
pip install -r requirements.txt
2. Préparation des données multivariées
Assurez-vous que vos données contiennent plusieurs colonnes de caractéristiques, chaque colonne représentant une variable. Flow Forecast prend en charge le format CSV et d'autres formats via les modules de prétraitement.
3. Choix du modèle
Pour la plupart des tâches multivariées, commencez par un modèle LSTM simple, puis explorez des modèles plus complexes comme Informer ou Transformer.
4. Configuration et entraînement
Créez un fichier de configuration avec la longueur de séquence, le nombre de variables, la taille des couches cachées, etc. Utilisez ensuite le module trainer pour lancer l'entraînement.
5. Évaluation et prédiction
Après l'entraînement, évaluez les performances avec flood_forecast/evaluator.py et générez des prédictions multivariées.
Applications pratiques
- Prévision des inondations : combine précipitations, niveau d'eau, température, etc.
- Prévision de la demande énergétique : intègre indicateurs économiques, météo, historique.
- Prévision du trafic : tient compte des heures, météo, jours fériés.
- Prévision des ventes : utilise les tendances du marché, promotions, saisonnalité.
Flow Forecast offre une solution riche et puissante pour la prédiction de séries temporelles multivariées, avec une large gamme de modèles, des outils de prétraitement complets et des options d'entraînement flexibles.