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

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 peuvent prendre la forme de champs dans la table attributaire des entités d'entraînement, de jeux de données raster et d'entités de distance dédiées au calcul des valeurs de proximité à utiliser en guise de variables supplémentaires. Outre la validation des performances du modèle en fonction des données d’entraînement, vous pouvez aussi réaliser des prédictions sur des entités ou sur un raster de prédiction.

En savoir plus sur le fonctionnement de l’outil Régression et classification basées sur une forêt

Illustration

Illustration de l’outil Régression et classification basées sur une forêt

Utilisation

  • Cet outil permet de créer des centaines d’arbres, regroupés sous le nom d’ensemble d’arbres décisionnels, qui servent à 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 possède trois modes de fonctionnement. Avec l’option Train (Entraînement), 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 l’option Predict to features (Prévoir des entités) ou Predict to raster (Prévoir un raster). 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.

  • Le paramètre Entités d’entraînement en entrée peut s’appliquer à des points ou des polygones. L'outil ne fonctionne pas avec les données multi-parties.

  • Une licence ArcGIS Spatial Analyst extension est requise pour utiliser des rasters en tant que variables explicatives ou pour générer une valeur Surface de prévision en sortie.

  • Cet outil génère différentes sorties. Entités formées en sortie contient l’ensemble des valeurs Entités d’entraînement en entrée utilisées dans le modèle créé, ainsi que l’ensemble des variables explicatives utilisées dans le modèle (notamment les champs en entrée utilisés, toutes les distances calculées et les valeurs de raster extraites ou calculées). Cette sortie contient aussi les prévisions de toutes les entités utilisées pour entraîner le modèle, ce qui peut s'avérer utile pour évaluer les performances du modèle créé. Lorsque vous utilisez cet outil pour effectuer une prévision, il génère une nouvelle classe d’entités contenant les valeurs Entités prévues en sortie ou une nouvelle valeur Surface de prévision en sortie si des rasters explicatifs sont fournis.

  • Lorsque vous utilisez l’option Prévoir des entités, une nouvelle classe d’entités contenant les valeurs Entités prévues en sortie est créée. Lorsque l’option Prévoir un raster est utilisée, une nouvelle valeur Surface de prévision en sortie est créée.

  • Cet outil crée également des messages et des diagrammes pour vous aider à comprendre les performances du modèle créé. Vous pouvez accéder aux messages en passant le curseur de la souris sur la barre d’avancement, en cliquant sur le bouton de menu contextuel ou en développant la section de messages dans la fenêtre Geoprocessing (Géotraitement). Vous pouvez également accéder aux messages d’une précédente exécution de l’outil Prédiction et classification basées sur une forêt via l’historique du géotraitement. Ces messages contiennent des informations sur les caractéristiques du modèle, les erreurs OOB (out of bag), l’importance des variables et les diagnostics de validation.

    Vous pouvez utiliser le paramètre Output Variable Importance Table (Table de l’importance des variables en sortie) 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. Le diagramme est accessible directement sous la couche dans la fenêtre Contents (Contenu).

  • Les variables explicatives peuvent provenir de champs, être calculées à partir d'entités de distance ou extraites de rasters. Vous pouvez utiliser n’importe quelle combinaison de ces types de variable explicative, mais au moins un type est obligatoire. Les variables explicatives utilisées (issues de champs, d'entités de distance ou de rasters) doivent contenir diverses valeurs. Si la variable explicative est catégorielle, cochez la case Catégoriel (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.

  • Les entités de distance permettent de créer automatiquement des variables explicatives représentant une distance entre les entités fournies et les valeurs Entités d’entraînement en entrée. Les distances entre chacune des valeurs Entités de distance d’entraînement explicatives et la valeur Entité d’entraînement en entrée la plus proche sont calculées. Si les valeurs Entités de distance d’entraînement explicatives en entrée sont des polygones ou des lignes, les attributs de distance sont calculés comme étant la distance entre les segments les plus proches de la paire d’entités. La méthode de calcul des distances est différente toutefois pour les polygones et pour les lignes. Pour plus d’informations, reportez-vous à la rubrique Calcul de la distance avec les outils de proximité.

  • Si vos valeurs Entités d’entraînement en entrée sont des points et que vous utilisez le paramètre Rasters d’entraînement explicatifs, l’outil explore chaque emplacement de point pour en extraire les variables explicatives. Pour les rasters multicanaux, seul le premier canal est utilisé.

  • Même si plusieurs couches de même nom peuvent se trouver dans la fenêtre Contenu, l’outil n’accepte pas les couches explicatives de même nom ou ne supprime pas les noms de couche en double dans les listes déroulantes. Pour éviter ce problème, vérifiez que chaque couche porte un nom unique.

  • Si les valeurs Entités d’entraînement en entrée sont des polygones, que la valeur du paramètre Variable à prévoir est catégorielle et que vous utilisez exclusivement des valeurs Rasters d’entraînements explicatifs, le paramètre Convertir les polygones en résolution raster pour l’entraînement est disponible. Si vous activez ce paramètre, le polygone est divisé en points au centroïde de chaque cellule raster dont le centroïde est situé dans le polygone. Les valeurs de raster de chaque emplacement de point sont alors extraites, puis utilisées pour former le modèle. Une méthode d'échantillonnage bilinéaire est utilisée pour les variables numériques, tandis que la méthode du plus proche est utilisée pour les variables catégorielles. La taille de cellule par défaut des polygones convertis correspond à la taille de cellule maximale des rasters en entrée. Vous pouvez néanmoins modifier cette valeur par défaut dans le paramètre d’environnement Taille de cellule. Si ce paramètre n’est pas activé, une valeur de raster est utilisée pour chaque polygone dans le modèle. Chaque polygone se voit attribuer la valeur moyenne pour les rasters continus et la majorité pour les rasters catégoriels.

    Les polygones sont convertis en résolution de raster (à gauche) ou se voient attribuer une valeur moyenne (à droite).

  • Les données utilisées pour chaque variable explicative spécifiée doivent présenter des variations. Si vous recevez un message d’erreur indiquant qu’un des champs ou des rasters spécifiés ne présente aucune variation, vous pouvez essayer d’exécuter l’outil à nouveau en définissant cette variable comme catégorielle. Si 95 pour cent des entités affichent la même valeur pour une variable donnée, celle-ci est signalée comme ne présentant aucune variation.

  • Le paramètre Compenser les catégories creuses peut être utilisé si la variation dans les catégories n’est pas équilibrée. Par exemple, si certaines catégories se produisent des centaines de fois dans le jeu de données et que quelques-unes se produisent beaucoup moins souvent, ce paramètre permet de s’assurer que chaque catégorie est représentée dans chaque arbre pour créer des modèles équilibrés.

  • Lors de l’appariement des variables explicatives, les champs Prediction et Training doivent être de même type (un champ double dans Training doit être apparié à un champ double dans Prediction).

  • Les modèles basés sur une forêt n’effectuent pas d’extrapolation ; ils peuvent uniquement classer ou prédire une valeur sur laquelle le modèle a été formé. Lorsqu’une valeur basée sur des variables explicatives est prévue comme étant très supérieure ou très inférieure à la plage du jeu de données d'entraînement d’origine, cette valeur sera évaluée par le modèle comme étant proche de la valeur la plus élevée ou la plus faible du jeu de données d'origine. Les performances de l’outil risquent d’être médiocres si vous essayez d’effectuer une prévision avec des variables explicatives différentes de celles utilisées pour préparer le modèle.

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

  • Pour utiliser les jeux de données mosaïque comme variables explicatives, utilisez d’abord l’outil Make Mosaic Layer (Créer une couche de mosaïque) puis copiez le chemin d’accès complet à la couche dans l’outil, ou utilisez l’outil Make Mosaic Layer (Créer une couche de mosaïque) ainsi que l’outil Make Raster Layer (Générer une couche raster) pour adapter le modèle de traitement au jeu de données mosaïque.

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

  • Lorsque le paramètre Calculer l’incertitude est activé, l’outil calcule un intervalle de prévision de 90 % pour chaque valeur prévue pour Variable à prévoir. Lorsque Type de prévision est défini sur Entraîner uniquement ou Prévoir des entités, deux champs sont ajoutés à la valeur Entités entraînées en sortie ou Entités prévues en sortie. Ces champs, qui se terminent par _P05 et _P95, représentent les limites supérieure et inférieure de l’intervalle de prévision. Pour toute nouvelle observation, vous pouvez prévoir avec une confiance de 90 pour cent que la valeur de la nouvelle observation se situera dans l’intervalle, en considérant les mêmes variables explicatives. Lorsque l’option Prévoir un raster est utilisée, deux rasters supplémentaires représentant les limites supérieure et inférieure de l’intervalle de prévision sont ajoutés à la fenêtre Contenu.

  • Pour des raisons de performance, le paramètre Entités de distance d’entraînement explicatives n’est pas disponible lorsque l’option Prévoir un raster du paramètre Type de prédiction est utilisée. Pour inclure des distances vers des entités en tant que variables explicatives, calculez des rasters de distance à l’aide de l’outil Accumulation de distance et incluez-les dans le paramètre Rasters d’entraînement explicatifs.

  • Cet outil prend en charge le traitement parallèle et utilise 50 pour cent des processeurs disponibles par défaut. Le nombre de processeurs utilisés peut être augmenté ou réduit à l’aide de l’environnement Facteur de traitement parallèle.

  • Pour en savoir plus sur le fonctionnement de cet outil et sur les diagrammes et messages en sortie, reportez-vous à la rubrique Fonctionnement de l’outil Régression et classification basées sur une forêt.

    Bibliographie :

    • Breiman, Leo. Out-Of-Bag Estimation. 1996.
    • Breiman, L. (1996). Bagging predictors. Machine learning, 24(2), 123-140.
    • Breiman, Leo. « Random Forests ». Machine Learning. 45 (1): 5-32. doi:10.1023/A:1010933404324. 2001.
    • Breiman, L., J.H. Friedman, R.A. Olshen, C.J. Stone. Classification and regression trees. New York: Routledge. Chapitre 4. 2017.
    • Dietterich, T. G. (Juin 2000). Ensemble methods in machine learning. Extrait de International workshop on multiple classifier systems (pages 1-15). Springer, Berlin, Heidelberg.
    • Gini, C. (1912). Variabilità e mutabilità. Reprinted in Memorie di metodologica statistica (Ed. Pizetti E, Salvemini, T). Rome: Libreria Eredi Virgilio Veschi.
    • Grömping, U. (2009). Variable importance assessment in regression: linear regression versus random forest. The American Statistician, 63(4), 308-319.
    • Ho, T. K. (Août 1995). Random decision forests. Extrait de Document analysis and recognition, 1995, proceedings of the third international conference on Document Analysis and Recognition. (Vol. 1, pages 278-282). IEEE.
    • James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An introduction to statistical learning (Vol. 112). New York: springer.
    • LeBlanc, M., & Tibshirani, R. (1996). Combining estimates in regression and classification. Journal of the American Statistical Association, 91(436), 1641-1650.
    • Loh, W. Y., & Shih, Y. S. (1997). Split selection methods for classification trees. Statistica sinica, 815-840.
    • Meinshausen, Nicolai. "Quantile regression forests." Journal of Machine Learning Research 7. Jun (2006): 983-999.
    • Nadeau, C., & Bengio, Y. (2000). Inference for the generalization error. Extrait de Advances in neural information processing systems (pages 307-313).
    • Strobl, C., Boulesteix, A. L., Kneib, T., Augustin, T., & Zeileis, A. (2008). Conditional variable importance for random forests. BMC bioinformatics, 9(1), 307.
    • Zhou, Z. H. (2012). Ensemble methods: foundations and algorithms. CRC press.

Paramètres

ÉtiquetteExplicationType de données
Type de prédiction

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 du 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.
  • Prévoir des entitésLes 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 et un diagramme facultatifs sur l’importance des variables.
  • Prévoir un rasterUn raster de prédiction est généré pour la zone correspondant à l’intersection des rasters explicatifs. Des rasters explicatifs doivent être fournis à la fois pour la zone d'entraînement et pour la zone de prévision. Cette option génère une surface de prédiction, des diagnostics relatifs au modèle dans la fenêtre de messages, ainsi qu'une table et un diagramme facultatifs sur l’importance des variables.
String
Entités d’entraînement en entrée

Classe d’entités contenant la valeur de paramètre Variable à prévoir et, le cas échéant, les variables d’entraînement explicatives issues des champs.

Feature Layer
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 valeur Variable à prévoir est une variable catégorielle.

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

Liste des champs qui représentent les variables explicatives utilisées pour prévoir la valeur ou la catégorie de la valeur Variable à prévoir. 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
Entités de distance d’entraînement explicatives
(Facultatif)

Les entités de distance d’entraînement explicatives. Les variables explicatives sont automatiquement créées en calculant la distance entre les entités fournies et les valeurs Entités d’entraînement en entrée. Les distances entre chacune des valeurs Entités de distance d’entraînement explicatives en entrée et la valeur Entités d’entraînement en entrée la plus proche sont calculées. Si les valeurs Entités de distance d’entraînement explicatives en entrée sont des polygones ou des lignes, les attributs de distance sont calculés comme étant la distance entre les segments les plus proches de la paire d’entités.

Feature Layer
Rasters d’entraînement explicatifs
(Facultatif)

Les variables d’entraînement explicatives extraites de rasters. Les variables d’entraînement explicatives sont automatiquement créées en extrayant des valeurs de cellule raster. Pour chacune des entités du paramètre Entités d’entraînement en entrée, la valeur de la cellule raster est extraite à l’emplacement exact. Pour les rasters continus, la valeur de raster est extraite par la méthode de rééchantillonnage bilinéaire de raster. Pour les rasters catégoriels, la valeur de raster est extraite par la méthode d'affectation du voisin le plus proche. Cochez la case Categorical (Catégoriel) des rasters qui représentent des classes ou des catégories (comme l’occupation du sol, la présence ou l’absence).

Value Table
Entités de prévision en entrée
(Facultatif)

Classe d'entités qui représente les emplacements où des prévisions sont réalisées. Cette classe 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.

Feature Layer
Entités prévues en sortie
(Facultatif)

La classe d’entités en sortie qui contient les résultats de la prévision.

Feature Class
Surface de prédiction en sortie
(Facultatif)

Le raster en sortie qui contient les résultats de la prévision. La taille de cellule par défaut correspond à la taille de cellule maximale des entrées raster. Pour définir une taille de cellule différente, utilisez le paramètre d’environnement Taille de cellule.

Raster Dataset
Apparier les variables explicatives
(Facultatif)

Liste des valeurs Variables explicatives spécifiées dans le paramètre Entités d’entraînement en entrée à droite et de leurs champs correspondants dans le paramètre Entités de prévision en entrée à gauche.

Value Table
Apparier les entités de distance
(Facultatif)

Liste des valeurs Entités de distance explicatives spécifiées pour le paramètre Entités d’entraînement en entrée à droite et de leurs jeux d’entités correspondants dans le paramètre Entités de prévision en entrée à gauche.

Si les valeurs Entités de distance explicatives qui sont utilisées pour l’entraînement se situent dans une zone d’étude ou une période différente, il est possible de fournir celles qui sont les plus adaptées au paramètre Entités de prévision en entrée.

Value Table
Apparier les rasters explicatifs
(Facultatif)

Liste des valeurs Rasters explicatifs spécifiées pour le paramètre Entités d’entraînement en entrée à droite et de leurs rasters correspondants dans le paramètre Entités de prévision en entrée ou Surface de prévision à créer à gauche.

Si les valeurs Rasters explicatifs qui sont utilisées pour l’entraînement se situent dans une zone d’étude ou une période différente, il est possible de fournir celles qui sont les plus adaptées au paramètre Entités de prévision en entrée.

Value Table
Entités formées en sortie
(Facultatif)

Les variables explicatives utilisées pour l’entraînement (notamment les valeurs de raster échantillonnées et les calculs de distance), ainsi que le champ Variable à prévoir observé et les prévisions supplémentaires susceptibles d’être utilisées pour approfondir l’évaluation des performances du modèle entraîné.

Feature Class
Table de l’importance des variables en sortie
(Facultatif)

Table qui contient des informations décrivant l’importance de chaque variable explicative (champs, entités de distance et rasters) utilisée dans le modèle créé. Le diagramme créé à partir de cette table est accessible dans la fenêtre Contents (Contenu).

Table
Convertir les polygones en résolution raster pour l'entraînement
(Facultatif)

Détermine le traitement des polygones pendant l’entraînement du modèle si les valeurs Entités d’entraînement en entrée sont des polygones avec une valeur catégorielle Variable à prévoir et que seules des valeurs Rasters d’entraînement explicatifs ont été spécifiées.

  • Activé : le polygone est divisé en toutes les cellules raster dont les centroïdes se trouvent dans le polygone. Les valeurs de raster à chaque centroïde sont extraites et utilisées pour entraîner le modèle. Ainsi, le modèle n’est plus entraîné sur le polygone, mais sur les valeurs de raster extraites pour chaque centroïde de cellule. Il s’agit de l’option par défaut.
    Polygone divisé en cellules raster
  • Désactivé : chaque polygone se voit attribuer la valeur moyenne des rasters continus sous-jacents et la majorité pour les rasters catégoriels sous-jacents.
    Polygone dont la valeur attribuée est soit la moyenne, soit la majorité

Boolean
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évision 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 maximum
(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 des valeurs Entités d’entraînement en entrée qui seront 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 qui seront 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. L’augmentation du nombre de variables utilisées dans chaque arbre décisionnel augmente la probabilité de sur-ajustement du modèle, en particulier si une ou plusieurs variables dominent. Si la valeur Variable à prévoir est numérique, il est courant d’utiliser la racine carrée du nombre total de variables explicatives (champs, distances et rasters confondus) et, si la valeur Variable à prévoir est catégorielle, de diviser le nombre total de variables explicatives (champs, distances et rasters confondus) par 3.

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

Pourcentage (entre 10 pour cent et 50 pour cent) des valeurs Entités d’entraînement en entrée qui sera réservé 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.

Double
Table des performances de classification en sortie (Matrice de confusion)
(Facultatif)

Matrice de confusion pour la classification qui récapitule les performances du modèle créé. Cette table permet de calculer d’autres diagnostics en plus des mesures d’exactitude et de sensibilité que l’outil calcule dans les messages en sortie.

Table
Table de validation en sortie
(Facultatif)

Si la valeur Nombre d’exécutions pour la validation est supérieure à 2, cette table crée un diagramme de la distribution de R2 pour chaque modèle. Cette distribution permet d’évaluer la stabilité du modèle.

Table
Compenser les catégories creuses
(Facultatif)

Indique si chaque catégorie du jeu de données d’entraînement, quelle que soit sa fréquence, est représentée dans chaque arbre.

  • Activé : chaque arbre inclut toutes les catégories représentées dans le jeu de données d’entraînement.
  • Désactivé : chaque arbre est créé en fonction d’un échantillon aléatoire des catégories dans le jeu de données d’entraînement. Il s’agit de l’option par défaut.

Boolean
Nombre d’exécutions pour la validation
(Facultatif)

Le nombre d’itérations de l’outil. La distribution de R2 pour chaque exécution s’affiche à l’aide du paramètre Table de validation en sortie. Une fois ce paramètre défini et les prévisions en cours de génération, seul le modèle qui a produit la valeur R2 la plus élevée est utilisé pour les prévisions.

Long
Calculer l’incertitude
(Facultatif)

Spécifie si l’incertitude de prévision sera calculée lorsque vous effectuez l’entraînement, une prévision sur des entités, une prévision sur un raster.

  • Activé : un intervalle d’incertitude de prévision sera calculé.
  • Désactivé : l’incertitude ne sera pas calculée. Il s’agit de l’option par défaut.
Boolean

Sortie obtenue

ÉtiquetteExplicationType de données
Couches de raster d’incertitude en sortie

Lorsque le paramètre Calculer l’incertitude est sélectionné, l’outil calcule un intervalle de prévision de 90 pour cent autour de chaque valeur prévue du paramètre Variable à prévoir.

Raster Layer

arcpy.stats.Forest(prediction_type, in_features, {variable_predict}, {treat_variable_as_categorical}, {explanatory_variables}, {distance_features}, {explanatory_rasters}, {features_to_predict}, {output_features}, {output_raster}, {explanatory_variable_matching}, {explanatory_distance_matching}, {explanatory_rasters_matching}, {output_trained_features}, {output_importance_table}, {use_raster_values}, {number_of_trees}, {minimum_leaf_size}, {maximum_depth}, {sample_size}, {random_variables}, {percentage_for_training}, {output_classification_table}, {output_validation_table}, {compensate_sparse_categories}, {number_validation_runs}, {calculate_uncertainty})
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 du 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.
  • PREDICT_FEATURESLes 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 et un diagramme facultatifs sur l’importance des variables.
  • PREDICT_RASTERUn raster de prédiction est généré pour la zone correspondant à l’intersection des rasters explicatifs. Des rasters explicatifs doivent être fournis à la fois pour la zone d'entraînement et pour la zone de prévision. Cette option génère une surface de prédiction, des diagnostics relatifs au modèle dans la fenêtre de messages, ainsi qu'une table et un diagramme facultatifs sur l’importance des variables.
String
in_features

Classe d’entités contenant la valeur de paramètre variable_predict et, le cas échéant, les variables d’entraînement explicatives issues des champs.

Feature Layer
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)
  • CATEGORICALLa valeur variable_predict est une variable catégorielle et l’outil exécute une classification.
  • NUMERICLa valeur variable_predict est continue et l’outil exécute une régression. Il s'agit du paramètre 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 la valeur 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 valeur CATEGORICAL à la variable si cette dernière représente des classes ou des catégories telles que l’occupation du sol, la présence ou l’absence, et la valeur NUMERIC si elle est continue.

Value Table
distance_features
[distance_features,...]
(Facultatif)

Les entités de distance d’entraînement explicatives. Les variables explicatives sont automatiquement créées en calculant la distance entre les entités fournies et les valeurs in_features. Les distances entre chacune des valeurs distance_features en entrée et la valeur in_features la plus proche sont calculées. Si les valeurs distance_features en entrée sont des polygones ou des lignes, les attributs de distance sont calculés comme la distance entre les segments les plus proches de la paire d’entités.

Feature Layer
explanatory_rasters
[[Variable, Categorical],...]
(Facultatif)

Les variables d’entraînement explicatives extraites de rasters. Les variables d’entraînement explicatives sont automatiquement créées en extrayant des valeurs de cellule raster. Pour chacune des entités du paramètre in_features, la valeur de la cellule raster est extraite à l’emplacement exact. La méthode de rééchantillonnage bilinéaire de raster est utilisée pour extraire la valeur de raster, sauf si le raster est défini comme catégoriel. Dans ce cas, la méthode d'affectation du voisin le plus proche est appliquée. Affectez la valeur CATEGORICAL au raster si ce dernier représente des classes ou des catégories telles que l’occupation du sol, la présence ou l’absence, et la valeur NUMERIC s’il est continu.

Value Table
features_to_predict
(Facultatif)

Classe d'entités qui représente les emplacements où des prévisions sont réalisées. Cette classe 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.

Feature Layer
output_features
(Facultatif)

La classe d’entités en sortie qui contient les résultats de la prévision.

Feature Class
output_raster
(Facultatif)

Le raster en sortie qui contient les résultats de la prévision. La taille de cellule par défaut correspond à la taille de cellule maximale des entrées raster. Pour définir une taille de cellule différente, utilisez le paramètre d’environnement Taille de cellule.

Raster Dataset
explanatory_variable_matching
[[Prediction, Training],...]
(Facultatif)

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

Value Table
explanatory_distance_matching
[[Prediction, Training],...]
(Facultatif)

Liste des valeurs distance_features spécifiées pour le paramètre in_features à droite et de leurs jeux d’entités correspondants dans le paramètre features_to_predict à gauche.

Si les valeurs explanatory_distance_features qui sont utilisées pour l’entraînement se situent dans une zone d’étude ou une période différente, il est possible de fournir celles qui sont les plus adaptées au paramètre features_to_predict.

Value Table
explanatory_rasters_matching
[[Prediction, Training],...]
(Facultatif)

Liste des valeurs explanatory_rasters spécifiées pour le paramètre in_features à droite et de leurs rasters correspondants dans le paramètre features_to_predict ou output_raster à créer à gauche.

Si les valeurs explanatory_rasters qui sont utilisées pour l’entraînement se situent dans une zone d’étude ou une période différente, il est possible de fournir celles qui sont les plus adaptées au paramètre features_to_predict.

Value Table
output_trained_features
(Facultatif)

Les variables explicatives utilisées pour l’entraînement (notamment les valeurs de raster échantillonnées et les calculs de distance), ainsi que le champ variable_to_predict observé et les prévisions supplémentaires susceptibles d’être utilisées pour approfondir l’évaluation des performances du modèle entraîné.

Feature Class
output_importance_table
(Facultatif)

Table qui contient des informations décrivant l’importance de chaque variable explicative (champs, entités de distance et rasters) utilisée dans le modèle créé.

Table
use_raster_values
(Facultatif)

Détermine le traitement des polygones pendant l’entraînement du modèle si les valeurs in_features sont des polygones avec une valeur catégorielle variable_predict et que seules les valeurs explanatory_rasters ont été spécifiées.

  • TRUELe polygone est divisé en toutes les cellules raster dont les centroïdes se trouvent dans le polygone. Les valeurs de raster à chaque centroïde sont extraites et utilisées pour entraîner le modèle. Ainsi, le modèle n’est plus entraîné sur le polygone, mais sur les valeurs de raster extraites pour chaque centroïde de cellule. Il s’agit de l’option par défaut.
  • FALSEChaque polygone se voit attribuer la valeur moyenne des rasters continus sous-jacents et la majorité pour les rasters catégoriels sous-jacents.
Boolean
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évision 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_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 des valeurs in_features qui seront 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 qui seront 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. L’augmentation du nombre de variables utilisées dans chaque arbre décisionnel augmente la probabilité de sur-ajustement du modèle, en particulier si une ou plusieurs variables dominent. Si la valeur variable_predict est numérique, il est courant d’utiliser la racine carrée du nombre total de variables explicatives (champs, distances et rasters confondus) et, si la valeur variable_predict est catégorielle, de diviser le nombre total de variables explicatives (champs, distances et rasters confondus) par 3.

Long
percentage_for_training
(Facultatif)

Pourcentage (entre 10 pour cent et 50 pour cent) des valeurs in_features qui sera réservé 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.

Double
output_classification_table
(Facultatif)

Matrice de confusion pour la classification qui récapitule les performances du modèle créé. Cette table permet de calculer d’autres diagnostics en plus des mesures d’exactitude et de sensibilité que l’outil calcule dans les messages en sortie.

Table
output_validation_table
(Facultatif)

Si la valeur Nombre d’exécutions pour la validation est supérieure à 2, cette table crée un diagramme de la distribution de R2 pour chaque modèle. Cette distribution permet d’évaluer la stabilité du modèle.

Table
compensate_sparse_categories
(Facultatif)

Indique si chaque catégorie du jeu de données d’entraînement, quelle que soit sa fréquence, est représentée dans chaque arbre.

  • TRUEChaque arbre inclut toutes les catégories représentées dans le jeu de données d’entraînement.
  • FALSEChaque arbre est créé en fonction d’un échantillon aléatoire des catégories dans le jeu de données d’entraînement. Il s’agit de l’option par défaut.
Boolean
number_validation_runs
(Facultatif)

Le nombre d’itérations de l’outil. La distribution de R2 pour chaque exécution s’affiche à l’aide du paramètre Table de validation en sortie. Une fois ce paramètre défini et les prévisions en cours de génération, seul le modèle qui a produit la valeur R2 la plus élevée est utilisé pour les prévisions.

Long
calculate_uncertainty
(Facultatif)

Spécifie si l’incertitude de prévision sera calculée lorsque vous effectuez l’entraînement, une prévision sur des entités, une prévision sur un raster.

  • TRUEUn intervalle d’incertitude de prévision sera calculé.
  • FALSEL’incertitude ne sera pas calculée. Il s’agit de l’option par défaut.
Boolean

Sortie obtenue

NomExplicationType de données
output_uncertainty_raster_layers

Lorsque calculate_uncertainty est défini sur TRUE, l’outil calcule un intervalle de prévision de 90 pour cent autour de chaque valeur prévue du paramètre variable_to_predict.

Raster Layer

Exemple de code

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

Le script Python ci-dessous montre comment utiliser la fonction Forest.

import arcpy
arcpy.env.workspace = r"c:\data"

# Forest-based model using only the training method and all data
# comes from a single polygon feature class. The tool excludes 10% of the 
# input features from training and uses these values to validate the model.

prediction_type = "TRAIN"
in_features = r"Boston_Vandalism.shp"
variable_predict = "VandCnt"
explanatory_variables = [["Educat", "false"], ["MedAge", "false"], 
    ["HHInc", "false"], ["Pop", "false"]]
output_trained_features = "TrainingFeatures.shp"
number_of_trees = 100
sample_size = 100
percentage_for_training = 10

arcpy.stats.Forest(prediction_type, in_features, variable_predict, None,
    explanatory_variables, None, None, None, None, None, None, None, None,
    output_trained_features, None, True, number_of_trees, None, None, sample_size, 
    None, percentage_for_training)
Exemple 2 d’utilisation de la forêt (script autonome)

Le script Python ci-dessous illustre l’utilisation de la fonction Forest pour prévoir des entités.

# Import system modules
import arcpy

# Set property to overwrite existing outputs
arcpy.env.overwriteOutput = True

# Set the work space to a gdb
arcpy.env.workspace = r"C:\Data\BostonCrimeDB.gdb"

# Forest-based model taking advantage of both distance features and 
# explanatory rasters. The training and prediction data has been manually
# split so the percentage to exclude parameter was set to 0. A variable importance
# table is created to help assess results and advanced options have been used
# to fine tune the model.

prediction_type = "PREDICT_FEATURES"
in_features = r"Boston_Vandalism_Training"
variable_predict = "Vandalism_Count"
treat_variable_as_categorical = None
explanatory_variables = [["EduClass", "true"], ["MedianAge", "false"],
    ["HouseholdIncome", "false"], ["TotalPopulation", "false"]]
distance_features = r"Boston_Highways"
explanatory_rasters = r"LandUse true"
features_to_predict = r"Boston_Vandalism_Prediction"
output_features = r"Prediction_Output"
output_raster = None
explanatory_variable_matching = [["EduClass", "EduClass"], ["MedianAge", "MedianAge"], 
    ["HouseholdIncome", "HouseholdIncome"], ["TotalPopulation", "TotalPopulation"]]
explanatory_distance_matching = [["Boston_Highways", "Boston_Highways"]]
explanatory_rasters_matching = [["LandUse", "LandUse"]]
output_trained_features = r"Training_Output"
output_importance_table = r"Variable_Importance"
use_raster_values = True
number_of_trees = 100
minimum_leaf_size = 2
maximum_level = 5
sample_size = 100
random_sample = 3
percentage_for_training = 0

arcpy.stats.Forest(prediction_type, in_features, variable_predict,
    treat_variable_as_categorical, explanatory_variables, distance_features,
    explanatory_rasters, features_to_predict, output_features, output_raster,
    explanatory_variable_matching, explanatory_distance_matching, 
    explanatory_rasters_matching, output_trained_features, output_importance_table,
    use_raster_values, number_of_trees, minimum_leaf_size, maximum_level,
    sample_size, random_sample, percentage_for_training)
Exemple 3 d’utilisation de la forêt (script autonome)

Le script Python ci-dessous illustre l’utilisation de la fonction Forest pour créer une surface de prévision.

# Import system modules
import arcpy

# Set property to overwrite existing outputs
arcpy.env.overwriteOutput = True

# Set the work space to a gdb
arcpy.env.workspace = r"C:\Data\Landsat.gdb"

# Using a forest-based model to classify a landsat image. The TrainingPolygons feature 
# class was created manually and is used to train the model to 
# classify the remainder of the landsat image.

prediction_type = "PREDICT_RASTER"
in_features = r"TrainingPolygons"
variable_predict = "LandClassName"
treat_variable_as_categorical = "CATEGORICAL" 
explanatory_variables = None
distance_features = None
explanatory_rasters = [["Band1", "false"], ["Band2", "false"], ["Band3", "false"]]
features_to_predict = None
output_features = None
output_raster = r"PredictionSurface"
explanatory_variable_matching = None
explanatory_distance_matching = None
explanatory_rasters_matching = [["Band1", "Band1"], ["Band2", "Band2"], ["Band3", "Band3"]]
output_trained_features = None
output_importance_table = None
use_raster_values = True
number_of_trees = 100
minimum_leaf_size = None
maximum_level = None
sample_size = 100
random_sample = None
percentage_for_training = 10

arcpy.stats.Forest(prediction_type, in_features, variable_predict,
    treat_variable_as_categorical, explanatory_variables, distance_features,
    explanatory_rasters, features_to_predict, output_features, output_raster,
    explanatory_variable_matching, explanatory_distance_matching, 
    explanatory_rasters_matching, output_trained_features, output_importance_table,
    use_raster_values, number_of_trees, minimum_leaf_size, maximum_level,
    sample_size, random_sample, percentage_for_training)

Environnements

Cas particuliers

Générateur de nombres aléatoires

Le type de générateur de nombres aléatoires utilisé est toujours Mersenne Twister.

Facteur de traitement parallèle

Le traitement parallèle est uniquement utilisé lorsque des prévisions sont créées.

Informations de licence

  • Basic: Limité
  • Standard: Limité
  • Advanced: Limité

Rubriques connexes