Régression et classification basées sur une forêt (GeoAnalytics)

Synthèse

Crée des modèles et génère des prévisions à l’aide d’une adaptation de l’algorithme des forêts aléatoires ; celle-ci est une méthode de machine learning supervisée mise au point par Leo Breiman et Adele Cutler. Les prédictions peuvent être réalisées sur des variables catégorielles (classification) ou des variables continues (régression). Les variables explicatives sont des champs de la table attributaire des entités d’entraînement. Outre la validation des performances du modèle en fonction des données d’entraînement, vous pouvez aussi réaliser des prévisions sur des entités.

Utilisation

  • Cet outil permet de créer des centaines d’arbres, regroupés sous le nom d’ensemble d’arbres décisionnels, en vue de créer un modèle à utiliser par la suite pour la prévision. Chaque arbre décisionnel est créé à partir de portions des données d'origine (entraînement) générées de manière aléatoire. Chaque arbre génère sa propre prévision et ses votes relatifs à un résultat. Le modèle de forêt tient compte des votes de tous les arbres décisionnels dans la prévision ou le classement du résultat d’un échantillon inconnu. Cela est important, car les arbres individuels peuvent avoir des problèmes de sur-ajustement à un modèle ; cependant, l’association de plusieurs arbres dans une forêt pour prévision règle le problème de sur-ajustement associé à un seul arbre.

  • Cet outil peut être utilisé en deux modes opératoires. Avec le mode Train (Entraîner), vous pouvez évaluer les performances de différents modèles et examiner une diversité de variables explicatives et de paramètres de l’outil. Lorsque vous avez trouvé un modèle adéquat, vous pouvez utiliser le mode Train and Predict (Entraîner et prévoir).

  • Cet outil dynamique convient parfaitement aux jeux de données volumineux. Pour un entraînement optimal, il est recommandé d'exécuter l’outil sur plusieurs centaines d'entités au minimum. Cet outil n'est pas adapté aux jeux de données de taille très réduite.

  • Les entités Input Training Features (Entités d’entraînement en entrée) peuvent être des tables, des points, des lignes ou des entités surfaciques. L'outil ne fonctionne pas avec les données multi-parties.

  • Les entités qui comportent une ou plusieurs valeurs nulles ou encore des valeurs de chaîne vide dans les champs de prévision ou explicatifs seront exclues de la sortie. Vous pouvez modifier les valeurs à l’aide de l’outil Calculer un champ, si nécessaire.

  • Cet outil produit une variété de sorties selon les modes de fonctionnement suivants :

    • Train (Entraîner) produit les deux sorties suivantes :
      • Entités formées en sortie : contient toutes les entités Input Training Features (Entités d’entraînement en entrée) utilisées dans le modèle créé, ainsi que toutes les variables explicatives utilisées dans le modèle. Elle contient également les prévisions pour toutes les entités utilisées pour entraîner le modèle, ce qui peut être utile lors de l’évaluation des performances du modèle créé.
      • Outil Messages de synthèse : messages pour vous aider à comprendre les performances du modèle créé. Ces messages contiennent des informations sur les caractéristiques du modèle, l’importance des variables et les diagnostics de validation.
    • Train and Predict (Entraîner et prévoir) produit les trois sorties suivantes :
      • Entités formées en sortie : contient toutes les entités Input Training Features (Entités d’entraînement en entrée) utilisées dans le modèle créé, ainsi que toutes les variables explicatives utilisées dans le modèle. Elle contient également les prévisions pour toutes les entités utilisées pour entraîner le modèle, ce qui peut être utile lors de l’évaluation des performances du modèle créé.
      • Entités prévues en sortie : une couche des résultats prévus. Les prévisions sont appliquées à la couche à prévoir (avec l’option Input Prediction Features (Entités de prévision en entrée)) à l’aide du modèle généré via la couche d’entraînement.
      • Outil Messages de synthèse : messages pour vous aider à comprendre les performances du modèle créé. Ces messages contiennent des informations sur les caractéristiques du modèle, l’importance des variables et les diagnostics de validation.

  • Vous pouvez utiliser le paramètre Create Variable Importance Table (Créer une table de l’importance des variables) pour créer une table affichant l’importance des variables pour l’évaluation. Les valeurs des 20 variables les plus importantes sont également indiquées dans la fenêtre de messages.

  • Les variables explicatives peuvent provenir des champs et doivent contenir une variété de valeurs. Si la variable explicative est catégorielle, la case à cocher Categorical (Catégoriel) doit être sélectionnée (les variables de type chaîne sont automatiquement sélectionnées). Les variables explicatives catégorielles sont limitées à 60 valeurs uniques, sachant que les performances du modèle sont améliorées si le nombre de catégories est restreint. Pour une taille de données définie, plus une variable comprend de catégories, plus elle va dominer le modèle et moins les résultats de prédiction seront efficaces.

  • Lors de l’appariement de variables explicatives, les options Champ d’entraînement et Champ de prévision doivent comporter des champs du même type (par exemple, un champ double dans Champ d’entraînement doit être apparié à un champ double dans Champ de prévision).

  • Les modèles de forêt n’extrapolent pas. Ils peuvent seulement classer ou effectuer une prédiction en fonction de la plage de valeurs avec laquelle le modèle a été préparé. Entraînez le modèle avec des entités d’entraînement et des variables explicatives qui figurent dans la plage de vos entités et variables cibles. L’exécution de l’outil échoue si les variables explicatives de la prévision possèdent des catégories qui n’existent pas dans les entités d’entraînement.

  • La valeur par défaut du paramètre Number of Trees (Nombre d'arbres) est 100. L’augmentation du nombre d’arbres dans le modèle de forêt permet d’obtenir une prévision plus précise, mais son calcul est plus long.

  • Prise en charge d’une seule couche pour l’entraînement et d’une seule couche pour la prévision. Pour combiner plusieurs jeux de données en un seul, utilisez les outils Construire un carroyage à plusieurs variables et Enrichir depuis un carroyage à plusieurs variables afin de générer les données en entrée.

  • Cet outil de géotraitement est optimisé par ArcGIS GeoAnalytics Server. L’analyse est réalisée sur GeoAnalytics Server et les résultats sont stockés dans votre contenu dans ArcGIS Enterprise.

  • Lors de l’exécution des outils GeoAnalytics Server, l’analyse est réalisée sur GeoAnalytics Server. Pour des performances optimales, GeoAnalytics Server doit pouvoir accéder aux données via les couches d’entités hébergées sur votre portail ArcGIS Enterprise ou les partages de fichiers Big Data. Les données qui ne sont pas locales pour GeoAnalytics Server sont transférées sur GeoAnalytics Server avant le début de l’analyse. Autrement dit, l’exécution d’un outil prend plus de temps et, dans certains cas, le transfert des données depuis ArcGIS Pro vers GeoAnalytics Server peut échouer. Le seuil d’échec dépend aussi bien des débits du réseau que de la taille et de la complexité des données. Il est recommandé de toujours partager les données ou de créer un partage de fichiers Big Data.

    Pour en savoir plus sur le partage des données dans votre portail.

    En savoir pus sur la création d’un partage de fichiers Big Data via ArcGIS Server Manager

Paramètres

ÉtiquetteExplicationType de données
Type de prévision

Spécifie le mode opératoire de l’outil. Vous pouvez exécuter l’outil pour entraîner un modèle dédié à l’évaluation des performances, à la prévision d'entités ou à la création d'une surface de prévision,

  • entraînement uniquementUn modèle est formé, sans génération de prédictions. Cette option permet d’évaluer la précision de votre modèle avant de générer des prévisions. Elle génère des diagnostics relatifs au modèle dans la fenêtre de messages, ainsi qu’un diagramme sur l’importance des variables. Il s’agit du paramètre par défaut.
  • Entraîner et prévoirLes prévisions ou les classifications seront générées pour les entités. Des variables explicatives doivent être fournies pour les entités d’entraînement et les entités à prévoir. Cette option génère une classe d’entités, des diagnostics relatifs au modèle dans la fenêtre de messages, ainsi qu’une table facultative sur l’importance des variables.
String
Entités d’entraînement en entrée

La couche contenant le paramètre Variable to Predict (Variable à prévoir) et les champs de variables d’entraînement explicatives.

Record Set
Nom des entités en sortie
(Facultatif)

Nom de la couche d’entités en sortie.

String
Variable à prévoir
(Facultatif)

Variable du paramètre Input Training Features (Entités d’entraînement en entrée) contenant les valeurs à utiliser pour entraîner le modèle. Ce champ contient des valeurs (d’entraînement) connues de la variable qui sera utilisée pour réaliser des prévisions à des emplacements inconnus.

Field
Traiter les variables comme catégorielles
(Facultatif)

Indique si la variable à prévoir (Variable to Predict) est une variable catégorielle.

  • Activé : la variable à prévoir (Variable to Predict) est une variable catégorielle et l’outil exécute une classification.
  • Désactivé : la variable à prévoir (Variable to Predict) est continue et l’outil exécute une régression. Il s’agit de l’option par défaut.
Boolean
Variables explicatives
(Facultatif)

Liste des champs qui représentent les variables explicatives utilisées pour prévoir la valeur ou la catégorie de la variable à prévoir (Variable to Predict). Cochez la case Categorical (Catégoriel) des variables qui représentent des classes ou des catégories (comme l’occupation du sol, la présence ou l'absence).

Value Table
Créer une table de l’importance des variable
(Facultatif)

Spécifie si la table en sortie contient des informations décrivant l’importance de chaque variable explicative utilisée dans le modèle.

  • Activé : la table en sortie contient des informations pour chaque variable explicative.
  • Désactivé : la table en sortie ne contient pas d’informations pour chaque variable explicative. Il s’agit de l’option par défaut.
Boolean
Entités de prévision en entrée
(Facultatif)

Couche d’entités représentant les emplacements où se produisent les prévisions. Cette couche d’entités doit également comporter toutes les variables explicatives fournies en tant que champs et correspondant aux champs utilisés issus des données d’entraînement.

Record Set
Apparier les variables explicatives
(Facultatif)

Liste des variables explicatives (Explanatory Variables) spécifiées dans les entités d’entraînement en entrée (Input Training Features) à droite et de leurs champs correspondants dans les entités de prévision en entrée (Input Prediction Features) à gauche.

Value Table
Nombre d’arbres
(Facultatif)

Nombre d'arbres à créer dans le modèle de forêt. En augmentant le nombre d'arbres dans le modèle, vous obtiendrez généralement une prédiction plus précise mais le temps de calcul sera plus long. Le nombre d'arbres par défaut est 100.

Long
Taille minimale des feuilles
(Facultatif)

Nombre minimal d’observations requises pour conserver une feuille (c’est-à-dire le nœud terminal d’un arbre sans fractionnements supplémentaires). La valeur minimale par défaut est de 5 pour la régression et de 1 pour la classification. Pour les jeux de données très volumineux, l’augmentation de ces nombres aura pour effet de réduire le temps d’exécution de l’outil.

Long
Profondeur d’arbre maximale
(Facultatif)

Nombre maximum de fractionnements pouvant être effectués pour un arbre. Si la profondeur maximum est élevée, le nombre de fractionnements créés augmente, ce qui accroît les risques de sur-ajustement du modèle. La valeur par défaut est dynamique ; elle dépend du nombre d'arbres créés et du nombre de variables incluses.

Long
Données disponibles par arbre (%)
(Facultatif)

Pourcentage d’entités d’entraînement en entrée (Input Training Features) utilisées pour chaque arbre décisionnel. La valeur par défaut est 100 pour cent des données. Les échantillons de chaque arbre sont sélectionnés de manière aléatoire à partir des deux tiers des données spécifiées.

Chaque arbre décisionnel de la forêt est créé à partir d’un échantillon aléatoire ou d’un sous-ensemble (équivalant approximativement aux deux tiers) des données d’entraînement disponibles. Si un pourcentage plus faible de données est utilisé en entrée pour chaque arbre décisionnel, l’outil s’exécute plus rapidement sur les jeux de données très volumineux.

Long
Nombre de variables échantillonnées de manière aléatoire
(Facultatif)

Nombre de variables explicatives utilisées pour créer chaque arbre décisionnel.

Chaque arbre décisionnel dans la forêt est créé à l’aide d’un sous-ensemble aléatoire des variables explicatives spécifiées. Une augmentation du nombre de variables utilisées dans chaque arbre décisionnel accroît les risques de sur-ajustement de votre modèle, notamment s’il comporte au moins une variable dominante. Si Variable to Predict (Variable à prévoir) est numérique, il est courant d’utiliser la racine carrée du nombre total de variables explicatives ou, si Variable to Predict (Variable à prévoir)) est catégorielle, de diviser le nombre total de variables explicatives par 3.

Long
Données d’entraînement exclues pour la validation (%)
(Facultatif)

Pourcentage (entre 10 % et 50 %) des Entités d’entraînement en entrée à réserver en guise de jeu de données de test pour la validation. Le modèle sera formé sans ce sous-ensemble aléatoire de données et les valeurs observées pour ces entités seront comparées aux valeurs prévues. La valeur par défaut est 10 pour cent.

Long
Data store
(Facultatif)

Indique l’instance ArcGIS Data Store dans laquelle la sortie est enregistrée. La valeur par défaut est Stockage de Big Data spatio-temporelles. Tous les résultats stockés dans un répertoire de données Big Data spatio-temporelles seront stockés en WGS84. Les résultats stockés dans un répertoire de données relationnelles conservent leur système de coordonnées.

  • Stockage de Big Data spatio-temporellesLa sortie sera stockée dans un stockage de Big Data spatio-temporelles. Il s’agit de l’option par défaut.
  • Stockage des données relationnellesLa sortie sera stockée dans un data store relationnel.
String

Sortie obtenue

ÉtiquetteExplicationType de données
Entités entraînées en sortie

La sortie contenant les variables en entrée utilisées pour l’entraînement, ainsi que la variable observée pour prévoir le paramètre, et les prévisions associées pouvant être utilisées pour évaluer davantage les performances du modèle.

Record Set
Table de l’importance des variables

Table contenant des informations décrivant l’importance de chaque variable explicative à utiliser dans le modèle créé.

Record Set
Entités prévues en sortie

Couche qui recevra les prévisions du modèle.

Record Set

arcpy.geoanalytics.Forest(prediction_type, in_features, {output_trained_name}, {variable_predict}, {treat_variable_as_categorical}, {explanatory_variables}, {create_variable_importance_table}, {features_to_predict}, {explanatory_variable_matching}, {number_of_trees}, {minimum_leaf_size}, {maximum_tree_depth}, {sample_size}, {random_variables}, {percentage_for_validation}, {data_store})
NomExplicationType de données
prediction_type

Spécifie le mode opératoire de l’outil. Vous pouvez exécuter l’outil pour entraîner un modèle dédié à l’évaluation des performances, à la prévision d'entités ou à la création d'une surface de prévision,

  • TRAINUn modèle est formé, sans génération de prédictions. Cette option permet d’évaluer la précision de votre modèle avant de générer des prévisions. Elle génère des diagnostics relatifs au modèle dans la fenêtre de messages, ainsi qu’un diagramme sur l’importance des variables. Il s’agit du paramètre par défaut.
  • TRAIN_AND_PREDICTLes prévisions ou les classifications seront générées pour les entités. Des variables explicatives doivent être fournies pour les entités d’entraînement et les entités à prévoir. Cette option génère une classe d’entités, des diagnostics relatifs au modèle dans la fenêtre de messages, ainsi qu’une table facultative sur l’importance des variables.
String
in_features

Classe d’entités contenant le paramètre variable_predict et les champs de variables d’entraînement explicatives.

Record Set
output_trained_name
(Facultatif)

Nom de la couche d’entités en sortie.

String
variable_predict
(Facultatif)

Variable du paramètre in_features contenant les valeurs à utiliser pour entraîner le modèle. Ce champ contient des valeurs (d’entraînement) connues de la variable qui sera utilisée pour réaliser des prévisions à des emplacements inconnus.

Field
treat_variable_as_categorical
(Facultatif)
  • CATEGORICALvariable_predict est une variable catégorielle et l’outil exécute une classification.
  • NUMERICvariable_predict est continue et l’outil exécute une régression. Il s’agit de l’option par défaut.
Boolean
explanatory_variables
[[Variable, Categorical],...]
(Facultatif)

Liste des champs qui représentent les variables explicatives utilisées pour prévoir la valeur ou la catégorie de variable_predict. Utilisez le paramètre treat_variable_as_categorical pour désigner des variables qui représentent des classes ou des catégories (comme l’occupation du sol, la présence ou l’absence). Affectez à la variable la valeur true si elle représente des classes ou des catégories telles que l’occupation du sol, la présence ou l’absence, et la valeur false si la variable est continue.

Value Table
create_variable_importance_table
(Facultatif)

Spécifie si la table en sortie contient des informations décrivant l’importance de chaque variable explicative utilisée dans le modèle.

  • CREATE_TABLELa table en sortie contient des informations pour chaque variable explicative.
  • NO_TABLELa table en sortie ne contient pas d’informations pour chaque variable explicative. Il s’agit de l’option par défaut.
Boolean
features_to_predict
(Facultatif)

Couche d’entités représentant les emplacements où se produisent les prévisions. Cette couche d’entités doit également comporter toutes les variables explicatives fournies en tant que champs et correspondant aux champs utilisés issus des données d’entraînement.

Record Set
explanatory_variable_matching
[[Prediction, Training],...]
(Facultatif)

Liste des variables explanatory_variables spécifiées dans in_features à droite et leurs champs correspondants dans features_to_predict à gauche ; par exemple, [["LandCover2000", "LandCover2010"], ["Income", "PerCapitaIncome"]].

Value Table
number_of_trees
(Facultatif)

Nombre d'arbres à créer dans le modèle de forêt. En augmentant le nombre d'arbres dans le modèle, vous obtiendrez généralement une prédiction plus précise mais le temps de calcul sera plus long. Le nombre d'arbres par défaut est 100.

Long
minimum_leaf_size
(Facultatif)

Nombre minimal d’observations requises pour conserver une feuille (c’est-à-dire le nœud terminal d’un arbre sans fractionnements supplémentaires). La valeur minimale par défaut est de 5 pour la régression et de 1 pour la classification. Pour les jeux de données très volumineux, l’augmentation de ces nombres aura pour effet de réduire le temps d’exécution de l’outil.

Long
maximum_tree_depth
(Facultatif)

Nombre maximum de fractionnements pouvant être effectués pour un arbre. Si la profondeur maximum est élevée, le nombre de fractionnements créés augmente, ce qui accroît les risques de sur-ajustement du modèle. La valeur par défaut est dynamique ; elle dépend du nombre d'arbres créés et du nombre de variables incluses.

Long
sample_size
(Facultatif)

Pourcentage d’entités in_features utilisées pour chaque arbre décisionnel. La valeur par défaut est 100 pour cent des données. Les échantillons de chaque arbre sont sélectionnés de manière aléatoire à partir des deux tiers des données spécifiées.

Chaque arbre décisionnel de la forêt est créé à partir d’un échantillon aléatoire ou d’un sous-ensemble (équivalant approximativement aux deux tiers) des données d’entraînement disponibles. Si un pourcentage plus faible de données est utilisé en entrée pour chaque arbre décisionnel, l’outil s’exécute plus rapidement sur les jeux de données très volumineux.

Long
random_variables
(Facultatif)

Nombre de variables explicatives utilisées pour créer chaque arbre décisionnel.

Chaque arbre décisionnel dans la forêt est créé à l’aide d’un sous-ensemble aléatoire des variables explicatives spécifiées. Une augmentation du nombre de variables utilisées dans chaque arbre décisionnel accroît les risques de sur-ajustement de votre modèle, notamment s’il comporte au moins une variable dominante. Si la variable variable_predict est numérique, il est courant d’utiliser la racine carrée du nombre total de variables explicatives ou, si la variable variable_predict est catégorielle, de diviser le nombre total de variables explicatives par 3.

Long
percentage_for_validation
(Facultatif)

Pourcentage (entre 10 % et 50 %) des entités in_features à réserver en guise de jeu de données de test pour la validation. Le modèle est préparé (entraîné) sans ce sous-ensemble aléatoire de données, et les valeurs observées pour ces entités sont comparées aux valeurs prévues. La valeur par défaut est 10 pour cent.

Long
data_store
(Facultatif)

Indique l’instance ArcGIS Data Store dans laquelle la sortie est enregistrée. La valeur par défaut est SPATIOTEMPORAL_DATA_STORE. Tous les résultats stockés dans un répertoire de données Big Data spatio-temporelles seront stockés en WGS84. Les résultats stockés dans un répertoire de données relationnelles conservent leur système de coordonnées.

  • SPATIOTEMPORAL_DATA_STORELa sortie sera stockée dans un stockage de Big Data spatio-temporelles. Il s’agit de l’option par défaut.
  • RELATIONAL_DATA_STORELa sortie sera stockée dans un data store relationnel.
String

Sortie obtenue

NomExplicationType de données
output_trained

La sortie contenant les variables en entrée utilisées pour l’entraînement, ainsi que la variable observée pour prévoir le paramètre, et les prévisions associées pouvant être utilisées pour évaluer davantage les performances du modèle.

Record Set
variable_of_importance

Table contenant des informations décrivant l’importance de chaque variable explicative à utiliser dans le modèle créé.

Record Set
output_predicted

Couche qui recevra les prévisions du modèle.

Record Set

Exemple de code

Exemple d’utilisation de la forêt (fenêtre Python)

Le script ci-dessous pour la fenêtre Python illustre l’utilisation de la fonction ForestBasedClassificationAndRegression.

Dans ce script, des entités de réseau sont décrites et une couche d’échantillon de 2 500 entités est créée.

#-------------------------------------------------------------------------------
# Name: Forest.py
# Description: Run Forest on sales data from 1980 and predict for sales in 1981
#
# Requirements: ArcGIS GeoAnalytics Server

# Import system modules
import arcpy
arcpy.env.workspace = "c:/data/commercial.gdb"
# Set local variables
trainingDataset = "https://analysis.org.com/server/rest/services/Hosted/sales/FeatureServer/0"
predictionDataset = "https://analysis.org.com/server/rest/services/Hosted/next_year/FeatureServer/0"
outputName = "training"
outputPredictedName = "predicted"

# Execute Forest
arcpy.geoanalytics.Forest("TRAIN_AND_PREDICT", inputDataset, outputName, "PERIMETER", None, ""STORE_CATEGORY true;AVG_INCOME false;POPULATION false", None, predictionDataset, 
"STORE_CATEGORY STORE_CATEGORY;AVG_INCOME MEAN_INCOME; POPULATION POPULATION", 100, , , 120, , 10, "SPATIOTEMPORAL_DATA_STORE")

Environnements

Cas particuliers

Système de coordonnées en sortie

Système de coordonnées qui sera utilisé pour l'analyse. L’analyse sera réalisée dans le système de coordonnées en entrée, à moins que ce paramètre en spécifie un autre. Pour GeoAnalytics Tools, les résultats finaux sont stockés dans le Spatiotemporal Data Store dans WGS84.

Informations de licence

  • Basic: Nécessite ArcGIS GeoAnalytics Server
  • Standard: Nécessite ArcGIS GeoAnalytics Server
  • Advanced: Nécessite ArcGIS GeoAnalytics Server

Rubriques connexes