Entraîner le modèle de prévision de séries chronologiques (GeoAI)

Synthèse

Entraîne un modèle de prévision de séries chronologiques de Deep Learning à l’aide de données de série chronologiques issues d’un cube spatio-temporel. Le modèle entraîné peut être utilisé pour prévoir les valeurs de chaque emplacement d’un cube spatio-temporel à l’aide de l’outil Prévoir à l’aide d’un modèle de série chronologique.

Les données de série chronologique peuvent suivre diverses tendances et présenter plusieurs niveaux de saisonnalité. Les modèles de prévision de séries chronologiques traditionnels basés sur des approches statistiques agissent différemment selon la tendance et les modèles de saisonnalité dans les données. Les modèles basés sur le Deep Learning ont une capacité élevée à apprendre et peuvent produire des résultats dans différents types de série chronologique, à condition que les données d’entraînement existent en quantités suffisantes.

Cet outil entraîne les modèles de prévision de séries chronologiques à l’aide de divers modèles basés sur le Deep Learning, tels que les modèles FCN (Fully Connected Network), LSTM (Long Short-Term Memory), InceptionTime, ResNet et ResCNN. Ces modèles prennent en charge les séries chronologiques multivariées, dans lesquelles le modèle apprend à partir de plusieurs variables dépendantes du temps à prévoir les valeurs futures. Le modèle entraîné est enregistré en tant que paquetage de Deep Learning (.dlpk) et peut être utilisé pour prévoir les valeurs futures avec l’outil Prévoir à l’aide d’un modèle de série chronologique.

En savoir plus sur le fonctionnement des modèles de prévision de séries chronologiques

Utilisation

  • Vous devez installer la structure de Deep Learning correspondant à Python dans ArcGIS AllSource.

    Découvrir comment installer des structures de Deep Learning pour ArcGIS

  • Cet outil accepte les données netCDF créées par les outils Créer un cube spatio-temporel en agrégeant des points, Créer un cube spatio-temporel à partir d’emplacements définis, Créer un cube spatio-temporel à partir d’une couche raster multidimensionnelle et Subdiviser un cube spatio-temporel.

  • Par rapport aux autres outils de prévision du jeu d’outils Prévision de séries chronologiques, cet outil utilise des modèles de prévision de séries chronologiques basés sur le Deep Learning. Les modèles de Deep Learning sont parfaitement capables d’apprendre et sont adaptés aux séries chronologiques qui suivent des tendances complexes et sont difficiles à modéliser avec des fonctions mathématiques simples. Toutefois, ils nécessitent un plus gros volume de données d’entraînement pour apprendre ces tendances complexes et utilisent davantage de ressources de calcul pour l’entraînement et l’inférence. Une unité de traitement graphique est recommandée pour utiliser cet outil.

  • Pour exécuter cet outil avec une unité de traitement graphique, définissez le paramètre d’environnement Type de processeur sur GPU. Si vous avez plusieurs processeurs, spécifiez plutôt le paramètre d’environnement ID de GPU.

  • Cet outil peut être utilisé pour modéliser des séries chronologiques univariées et multivariées. Si le cube spatio-temporel comporte d’autres variables liées à la variable en cours de prévision, ces variables peuvent être incluses en tant que variables explicatives pour améliorer la prévision.

  • La prévision de séries chronologiques univariées est estimée en utilisant uniquement la méthode à étape unique, qui est également la méthode par défaut.

  • La prévision de séries chronologiques multivariées peut utiliser deux approches différentes : la prévision à étape unique et la prévision en plusieurs étapes. Le paramètre En plusieurs étapes est activé lorsque plusieurs variables d’entraînement explicatives sont sélectionnées.

  • Dans la méthode à étape unique, le modèle peut être mis à jour avec les nouvelles données à chaque intervalle temporel, ce qui le rend adapté aux applications en temps réel. Toutefois, comme le modèle est mis à jour à chaque intervalle temporel, les erreurs de prévision peuvent s’accumuler au fil du temps, générant ainsi des prévisions à long terme moins précises. Lors de l’utilisation de la prévision en plusieurs étapes, le modèle prévoit plusieurs points de données futurs au-delà de l’intervalle temporel actuel. Par exemple, si l’objectif vise à prévoir les 20 prochains intervalles temporels, le modèle génère 20 prévisions consécutives simultanément. La prévision en plusieurs étapes permet au modèle d’avoir une vue plus large de la série chronologique, en capturant les tendances à long terme et les modèles de manière plus efficace. Comme le modèle prévoit plusieurs intervalles temporels en amont, le risque d’accumulation d’erreurs est réduit, générant ainsi des prévisions à long terme plus précises. Cependant, étant donné que le modèle prévoit plusieurs étapes simultanément, il risque de ne pas être suffisamment souple pour s’adapter aux modifications apportées aux données en temps réel. Le choix entre ces deux approches dépend des exigences et caractéristiques spécifiques de la tâche de prévision de séries chronologiques.

  • Le paramètre Longueur de séquence a un impact sur le résultat d’un modèle de prévision de séries chronologiques et peut être défini en tant que nombre d’intervalles temporels passés à utiliser en entrée pour prévoir le prochain intervalle temporel. Si la longueur de séquence est n, le modèle prend les n derniers intervalles temporels en entrée pour prévoir le prochain intervalle temporel. La valeur du paramètre ne peut pas être supérieure au nombre total d’intervalles temporels en entrée restants après l’exclusion des intervalles temporels de validation.

  • Au lieu de créer un modèle de prévision indépendant à chaque emplacement du cube spatio-temporel, cet outil entraîne un modèle de prévision global unique utilisant les données d’entraînement de chaque emplacement. Ce modèle global est utilisé pour prévoir les valeurs futures à chaque emplacement avec l’outil Prévoir à l’aide d’un modèle de série chronologique.

  • La valeur du paramètre Entités en sortie est ajoutée à la fenêtre Contenu avec un rendu dépendant de l’intervalle temporel final prévu.

  • Cet outil permet, par exemple, d’entraîner un modèle pour prévoir la demande en produits de détail selon les données commerciales historiques, d’entraîner un modèle pour prévoir la propagation des maladies ou d’entraîner un modèle pour prévoir la production d’énergie éolienne selon les données de production et météorologiques historiques.

  • Il est important de décider du nombre de pas de temps à exclure pour la validation. Plus le nombre d’intervalles temporels exclus est important, moins il y a d’intervalles temporels pour estimer l’EQM de validation. Si trop peu d’intervalles temporels sont exclus, l’estimation de l’EQM de validation utilise une petite quantité de données et peut être trompeuse. Excluez autant d’intervalles temporels que possible tout en en conservant un nombre suffisant pour estimer l’EQM de validation. Retenez au moins autant d’intervalles temporels pour la validation que le nombre d’intervalles temporels que vous avez l’intention de prévoir, si le cube spatio-temporel comporte suffisamment d’intervalles temporels pour le permettre.

  • Pour en savoir plus sur les exigences relatives à l’exécution de cet outil ainsi que sur les problèmes que vous pouvez rencontrer, consultez la FAQ sur le Deep Learning.

Paramètres

ÉtiquetteExplicationType de données
Données de série chronologique en entrée

Cube netCDF contenant la variable à utiliser afin de prévoir pour les intervalles temporels futurs. Ce fichier doit comporter l’extension .nc et avoir été créé à l’aide de l’outil Créer un cube spatio-temporel en agrégeant des points, Créer un cube spatio-temporel à partir d’emplacements définis ou Créer un cube spatio-temporel à partir d’une couche raster multidimensionnelle.

File
Modèle en sortie

Emplacement du dossier en sortie qui stocke le modèle entraîné. Le modèle entraîné est enregistré en tant que fichier de paquetage de Deep Learning (.dlpk).

Folder
Variable d’analyse

La variable numérique dans le jeu de données à prévoir pour les intervalles temporels futurs.

String
Longueur de séquence

Le nombre d’intervalles temporels précédents allant être utilisés lors de l’entraînement du modèle. Si les données contiennent la saisonnalité (cycles répétés), indiquez la longueur correspondant à une saison.

  • Si le paramètre En plusieurs étapes est désactivé, sa valeur doit être inférieure ou égale au nombre total d’intervalles temporels en entrée restants après l’exclusion de la valeur de paramètre Nombre d’intervalles temporels à exclure pour la validation.
  • Si le paramètre En plusieurs étapes est coché, la valeur du paramètre Longueur de séquence multipliée par 1,5 doit être inférieure ou égale au nombre total d’intervalles temporels en entrée restants après l’exclusion de la valeur de paramètre Nombre d’intervalles temporels à exclure pour la validation.

Long
Variables d’entraînement explicatives
(Facultatif)

Les variables indépendantes des données à utiliser pour entraîner le modèle. Cochez la case Catégoriel des variables qui représentent des classes ou des catégories.

Value Table
Nombre maximal d’époques
(Facultatif)

Nombre maximal d’époques pour lesquelles le modèle est entraîné. La valeur par défaut est 20.

Long
Nombre d’intervalles temporels à exclure pour la validation
(Facultatif)

Le nombre d’intervalles temporels allant être exclus pour la validation. Par exemple, si la valeur 14 est spécifiée, les 14 dernières lignes du bloc de données sont utilisées en tant que données de validation. La valeur par défaut est 10 pour cent du nombre total d’intervalles temporels. Dans l’idéal, elle ne doit pas être inférieure à 5 pour cent du nombre total d’intervalles temporels dans le cube temporel en entrée.

  • Si le paramètre En plusieurs étapes est désactivé, cette valeur de paramètre doit être inférieure à 25 pour cent du nombre total d’enregistrements dans le cube spatio-temporel en entrée.
  • Si le paramètre En plusieurs étapes est activé, cette valeur de paramètre doit être inférieure ou égale à la moitié de la valeur du paramètre Longueur de séquence.

Long
Type de modèle
(Facultatif)

Spécifie l’architecture de modèle à utiliser pour entraîner le modèle.

  • InceptionTimeArchitecture InceptionTime à utiliser pour entraîner le modèle. Il s’agit de l’option par défaut.
  • ResNetArchitecture ResNet à utiliser pour entraîner le modèle.
  • ResCNNArchitecture ResCNN à utiliser pour entraîner le modèle.
  • FCNArchitecture FCN à utiliser pour entraîner le modèle.
  • LSTMArchitecture LSTM à utiliser pour entraîner le modèle.
  • TimeSeriesTransformerArchitecture TimeSeriesTransformer à utiliser pour entraîner le modèle.
String
Taille de lot
(Facultatif)

Le nombre d’échantillons d’entraînement qui seront traités en une fois. La valeur par défaut est 64.

Selon l’unité de traitement graphique de l’ordinateur, cette valeur peut être redéfinie sur 8, 16, 32, 64, et ainsi de suite.

Long
Arguments du modèle
(Facultatif)

Les arguments supplémentaires du modèle allant être utilisés spécifiques à chaque modèle. Ces arguments peuvent être utilisés pour ajuster la complexité et la taille du modèle. Reportez-vous à la section Fonctionnement des modèles de prévision de séries chronologiques pour comprendre l’architecture de modèle ainsi que les arguments de modèle pris en charge et leurs valeurs par défaut.

Value Table
Arrêter l’entraînement lorsque le modèle ne s’améliore plus
(Facultatif)

Indique si l’entraînement du modèle doit ou non s’arrêter lorsque la perte de validation n’enregistre aucune amélioration après cinq époques consécutives.

  • Activé : l’entraînement du modèle s’arrête lorsque la perte de validation n’enregistre aucune amélioration après cinq époques consécutives. Il s’agit de l’option par défaut.
  • Désactivé : l’entraînement du modèle continue jusqu’à atteindre le nombre maximal d’époques.

Boolean
Classe d’entités en sortie
(Facultatif)

Classe d’entités en sortie de tous les emplacements du cube spatio-temporel avec les valeurs prévues stockées sous forme de champs. La classe d’entités sera créée à l’aide de la prévision du modèle entraîné sur le jeu de données de validation. La sortie affiche la prévision de l’intervalle temporel final et contient des diagrammes contextuels illustrant la prévision de séries chronologiques sur le jeu de validation.

Feature Class
Cube en sortie
(Facultatif)

Cube spatio-temporel en sortie (fichier .nc) contenant les valeurs du cube spatio-temporel en entrée, dans lesquelles les valeurs prévues des intervalles de validation correspondants ont été remplacées.

File
En plusieurs étapes
(Facultatif)

Indique si une approche en plusieurs étapes ou à étape unique est utilisée pour entraîner le modèle de prévision de séries chronologiques multivariées.

  • Activé : l’entraînement du modèle utilise une approche en plusieurs étapes.
  • Désactivé : l’entraînement du modèle utilise l’approche classique à étape unique. Il s’agit de l’option par défaut.

Boolean

Sortie obtenue

ÉtiquetteExplicationType de données
Fichier de modèle en sortie

Le modèle entraîné est enregistré en tant que fichier de paquetage de Deep Learning (.dlpk) dans le dossier de modèle en sortie.

File

arcpy.geoai.TrainTimeSeriesForecastingModel(in_cube, out_model, analysis_variable, sequence_length, {explanatory_variables}, {max_epochs}, {validation_timesteps}, {model_type}, {batch_size}, {arguments}, {early_stopping}, {out_features}, {out_cube}, {multistep})
NomExplicationType de données
in_cube

Cube netCDF contenant la variable à utiliser afin de prévoir pour les intervalles temporels futurs. Ce fichier doit comporter l’extension .nc et avoir été créé à l’aide de l’outil Créer un cube spatio-temporel en agrégeant des points, Créer un cube spatio-temporel à partir d’emplacements définis ou Créer un cube spatio-temporel à partir d’une couche raster multidimensionnelle.

File
out_model

Emplacement du dossier en sortie qui stocke le modèle entraîné. Le modèle entraîné est enregistré en tant que fichier de paquetage de Deep Learning (.dlpk).

Folder
analysis_variable

La variable numérique dans le jeu de données à prévoir pour les intervalles temporels futurs.

String
sequence_length

Le nombre d’intervalles temporels précédents allant être utilisés lors de l’entraînement du modèle. Si les données contiennent la saisonnalité (cycles répétés), indiquez la longueur correspondant à une saison.

  • Si la valeur du paramètre multistep est False, sa valeur doit être inférieure ou égale au nombre total d’intervalles temporels en entrée restants après l’exclusion de la valeur de paramètre validation_timesteps.
  • Si la valeur du paramètre multistep est True, 1,5 fois la valeur du paramètre sequence_length doit être inférieure ou égale au nombre total d’intervalles temporels en entrée restants après l’exclusion de la valeur de paramètre validation_timesteps.

Long
explanatory_variables
[explanatory_variables,...]
(Facultatif)

Les variables indépendantes des données à utiliser pour entraîner le modèle. Utilisez une valeur True après des variables qui représentent des classes ou des catégories.

Value Table
max_epochs
(Facultatif)

Nombre maximal d’époques pour lesquelles le modèle est entraîné. La valeur par défaut est 20.

Long
validation_timesteps
(Facultatif)

Le nombre d’intervalles temporels allant être exclus pour la validation. Par exemple, si la valeur 14 est spécifiée, les 14 dernières lignes du bloc de données sont utilisées en tant que données de validation. La valeur par défaut est 10 pour cent du nombre total d’intervalles temporels. Dans l’idéal, elle ne doit pas être inférieure à 5 pour cent du nombre total d’intervalles temporels dans le cube temporel en entrée.

  • Si la valeur de paramètre multistep est False, cette valeur de paramètre doit être inférieure à 25 pour cent du nombre total d’enregistrements dans le cube spatio-temporel en entrée.
  • Si la valeur de paramètre multistep est True, cette valeur de paramètre doit être inférieure ou égale à la moitié de la valeur du paramètre sequence_length.

Long
model_type
(Facultatif)

Spécifie l’architecture de modèle à utiliser pour entraîner le modèle.

  • InceptionTimeArchitecture InceptionTime à utiliser pour entraîner le modèle. Il s’agit de l’option par défaut.
  • ResNetArchitecture ResNet à utiliser pour entraîner le modèle.
  • ResCNNArchitecture ResCNN à utiliser pour entraîner le modèle.
  • FCNArchitecture FCN à utiliser pour entraîner le modèle.
  • LSTMArchitecture LSTM à utiliser pour entraîner le modèle.
  • TimeSeriesTransformerArchitecture TimeSeriesTransformer à utiliser pour entraîner le modèle.
String
batch_size
(Facultatif)

Le nombre d’échantillons d’entraînement qui seront traités en une fois. La valeur par défaut est 64.

Selon l’unité de traitement graphique de l’ordinateur, cette valeur peut être redéfinie sur 8, 16, 32, 64, et ainsi de suite.

Long
arguments
[arguments,...]
(Facultatif)

Les arguments supplémentaires du modèle allant être utilisés spécifiques à chaque modèle. Ces arguments peuvent être utilisés pour ajuster la complexité et la taille du modèle. Reportez-vous à la section Fonctionnement des modèles de prévision de séries chronologiques pour comprendre l’architecture de modèle ainsi que les arguments de modèle pris en charge et leurs valeurs par défaut.

Value Table
early_stopping
(Facultatif)

Indique si l’entraînement du modèle doit ou non s’arrêter lorsque la perte de validation n’enregistre aucune amélioration après cinq époques consécutives.

  • TRUEL’entraînement du modèle s’arrête lorsque la perte de validation n’enregistre aucune amélioration après cinq époques consécutives. Il s’agit de l’option par défaut.
  • FALSEL’entraînement du modèle continue jusqu’à atteindre le nombre maximal d’époques.
Boolean
out_features
(Facultatif)

Classe d’entités en sortie de tous les emplacements du cube spatio-temporel avec les valeurs prévues stockées sous forme de champs. La classe d’entités sera créée à l’aide de la prévision du modèle entraîné sur le jeu de données de validation. La sortie affiche la prévision de l’intervalle temporel final et contient des diagrammes contextuels illustrant la prévision de séries chronologiques sur le jeu de validation.

Feature Class
out_cube
(Facultatif)

Cube spatio-temporel en sortie (fichier .nc) contenant les valeurs du cube spatio-temporel en entrée, dans lesquelles les valeurs prévues des intervalles de validation correspondants ont été remplacées.

File
multistep
(Facultatif)

Indique si une approche en plusieurs étapes ou à étape unique est utilisée pour entraîner le modèle de prévision de séries chronologiques multivariées.

  • TRUEL’entraînement du modèle utilise une approche en plusieurs étapes.
  • FALSEL’entraînement du modèle utilise l’approche classique à étape unique. Il s’agit de l’option par défaut.
Boolean

Sortie obtenue

NomExplicationType de données
out_model_file

Le modèle entraîné est enregistré en tant que fichier de paquetage de Deep Learning (.dlpk) dans le dossier de modèle en sortie.

File

Exemple de code

Exemple d’utilisation de la fonction TrainTimeSeriesForecastingModel (script autonome)

Cet exemple illustre l’utilisation de la fonction TrainTimeSeriesForecastingModel.

# Name: TrainTimeSeriesForecastingModel.py
# Description: Train a time series model on space-time cube data with
# different AI models.
  
# Import system modules                                                                                                                                                                                                                                                                                                                    
import arcpy
import os

# Set local variables
datapath  = "path_to_data_for_forecasting" 
out_path = "path_to_gdb_for_forecasting"

model_path = os.path.join(out_path, "model")
in_cube = os.path.join(datapath, "test_data")
out_features = os.path.join(out_path, "forecasted_feature.gdb", "forecasted")

# Run TrainTimeSeriesForecastingModel
arcpy.geoai.TrainTimeSeriesForecastingModel(
        in_cube,
        model_path,
        "CONSUMPTION",
        12,
        None,
        20,
        2,
        "InceptionTime",
        64,
        None,
        True,
        out_features
    )