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 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.

  • 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 de prévoir la production d’énergie éolienne selon les données de production et météorologiques historiques.

  • Il est important de bien déterminer le nombre d’intervalles temporels à exclure de 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. 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.

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. 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. Cette valeur ne doit pas être supérieure à 25 pour cent du nombre d’intervalles temporels en entrée. La valeur par défaut est 2.

Long
Type de modèle
(Facultatif)

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

  • InceptionTime
  • ResNet
  • ResCNN
  • FCN
  • LSTM

Le type de modèle par défaut est InceptionTime.

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

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

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})
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. 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.

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. 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. Cette valeur ne doit pas être supérieure à 25 pour cent du nombre d’intervalles temporels en entrée. La valeur par défaut est 2.

Long
model_type
(Facultatif)

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

  • InceptionTime
  • ResNet
  • ResCNN
  • FCN
  • LSTM

Le type de modèle par défaut est InceptionTime.

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

Exemple de code

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
    )