Classification et régression basées sur une forêt et boostées (Statistiques spatiales)

Synthèse

Crée des modèles et génère des prévisions à l’aide d’une des deux méthodes de Machine Learning supervisées : une adaptation de l’algorithme des forêts aléatoires mis au point par Leo Breiman et Adele Cutler, ou l’agorithme Extreme Gradient Boosting (XGBoost) développé par Tianqi Chen et Carlos Guestrin. 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 Classification et régression basées sur une forêt et boostées

Illustration

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

Utilisation

  • Cet outil prend en charge deux types de modèles : basé sur une forêt et dont le gradient est boosté. Les deux types de modèles permettent 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.

    • Basé sur une forêt : crée un modèle en appliquant une technique de bagging dans laquelle chaque arbre décisionnel est créé en parallèle avec une portion des données d’origine (entraînement) générée aléatoirement. Chaque arbre génère sa propre prévision et ses votes relatifs à un résultat. Le modèle basé sur une 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. Ce modèle requiert moins de paramètres et est plus intuitif.
    • Gradient boosté : crée un modèle en appliquant une technique selon laquelle chaque arbre décisionnel est créé de manière séquentielle avec les données d’origine (entraînement). Chaque arbre corrige les erreurs des arbres précédents ; le modèle combine plusieurs apprenants faibles pour devenir un modèle de prévision puissant. Le modèle à gradient boosté intègre la régularisation ainsi qu’une technique d’arrêt prématuré pour empêcher le surajustement. Ce modèle permet de mieux contrôler les hyperparamètres et est plus complexe.
  • Cet outil peut être utilisé dans trois modes opératoires : entraîner, prévoir des entités et prévoir un raster. Dans le paramètre Type de prévision, l’option Entraînement uniquement permet d’évaluer les performances de différents modèles au fur et à mesure que vous essayez diverses variables explicatives et des paramètres variés de l’outil. Une fois que vous avez trouvé un modèle adéquat, utilisez l’option Prévoir des entités ou 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 les sorties facultatives suivantes :

    • Entités entraînées en sortie : classe d’entités qui contient toutes les valeurs du paramètre Entités d’entraînement en entrée et toutes les variables explicatives utilisées dans le modèle. Les variables explicatives incluent tous les champs en entrée utilisés, les distances calculées et les valeurs de raster extraites ou calculées. La classe d’entités inclut également des prévisions pour chaque entité dans les valeurs de Entités d’entraînement en entrée. Sont incluses les entités qui ont été utilisées pour entraîner et valider le modèle. Si la variable à prévoir n’est pas catégorielle, la classe d’entités comprend le résidu et le résidu standard de chaque prévision. Si la variable à prévoir est catégorielle, la classe d’entités contient un champ Correctly Classified qui indique si le modèle a correctement classé chaque prévision. Utilisez les champs Residual et Standard Residual ou le champ Correctly Classified pour faciliter l’évaluation des performances du modèle créé.
    • Fichier du modèle entraîné en sortie : fichier réutilisable qui contient les résultats du modèle entraîné. Le fichier peut être employé dans l’outil Prévoir à l’aide d’un fichier de modèle de statistiques spatiales pour la prévision de nouvelles entités.
    • Entités prévues en sortie : classe d’entités qui contient la valeur prévue du modèle pour chaque entité. Cette option est disponible uniquement lorsque la valeur du paramètre Type de prévision est Prévoir des entités.
    • Surface de prévision en sortie : raster en sortie qui contient les résultats de la prévision. Cette sortie est disponible uniquement lorsque le paramètre Type de prévision a pour valeur Prévoir un raster.
    • Table de l’importance des variables en sortie : table qui décrit l’importance de chaque variable explicative (champs, entités de distance et rasters).
    • Table d’optimisation des paramètres en sortie : table qui contient les réglages des paramètres et les valeurs d’objectif de chaque essai d’optimisation. Cette sortie est disponible uniquement lorsque le paramètre Optimiser les paramètres est coché.
    • Table des performances de classification en sortie (Matrice de confusion) : table qui résume les performances du modèle sur les données de validation. Les colonnes de la matrice représentent les catégories prévues par le modèle et les lignes correspondent aux catégories réelles. Utilisez la table pour évaluer les performances du modèle sur les données de validation. Cette sortie est disponible uniquement lorsque le paramètre Traiter comme catégoriel est coché.
  • Cet outil crée des messages 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 via l’historique de géotraitement. Les messages comprennent les informations suivantes :

    • Caractéristiques du modèle
    • Erreurs Out-of-bag du modèle
    • Diagnostic d’entraînement
    • Diagnostic de validation
    • Diagnostic des variables explicatives
    • Importance des variables : si la valeur du paramètre Table de l’importance des variables en sortie est renseignée, les messages de géotraitement indiquent les 20 variables les plus importantes. Si la valeur du paramètre Nombre d’exécutions pour la validation est supérieure à 1, il existe plus d’un ensemble de valeurs d’importance des variables. Chaque exécution est associée à un ensemble de valeurs d’importance des variables ; les messages de géotraitement indiquent donc l’ensemble de valeurs d’importance des variables associé à l’exécution avec une précision ou un R-carré le plus proche de la précision ou du R-carré médian.

  • Cet outil ajoute les diagrammes facultatifs suivants dans la fenêtre Contenu :

    • Performances de prévision : diagramme à barres empilées qui permet d’évaluer le degré d’ajustement du modèle aux données. Les catégories sur l’axe x sont prévues par le modèle pour la valeur de Entités d’entraînement en entrée. Sont incluses les entités qui ont été utilisées pour entraîner et valider le modèle. Les couleurs représentent les véritables catégories des entités d’entraînement en entrée. Ce diagramme est généré uniquement si la variable à prévoir est catégorielle, si la case Traiter la variable comme catégorielle est cochée et si le paramètre Entités entraînées en sortie est renseigné.
    • Matrice de confusion : diagramme de densité matriciel. L’axe x représente la catégorie prévue des entités indiquées dans Entités d’entraînement en entrée, et l’axe y leur catégorie réelle. Les cellules en diagonale indiquent le nombre de prévisions correctes de catégorie effectuées par le modèle. Des nombres plus élevés dans les cellules en diagonale indiquent de bonnes performances de la part du modèle. Ce diagramme est généré uniquement si la variable à prévoir est catégorielle, si le paramètre Traiter la variable comme catégorielle est sélectionné.
    • Récapitulatif de l’importance des variables ou Distribution de l’importance des variables : diagramme à barres qui affiche l’importance de chaque variable explicative par rapport au modèle. Si la valeur de Nombre d’exécutions pour la validation est supérieure à 1, le diagramme est une boîte à moustaches qui affiche la distribution des valeurs d’importance pour chaque variable explicative. Ce diagramme est généré su vous avez renseigné le paramètre Table de l’importance des variables en sortie.
    • Performances de validation : diagramme à barres empilées qui permet d’évaluer le degré de performances du modèle sur les données de validation. Les catégories réelles des entités des données de validation figurent sur l’axe x. La couleur représente la catégorie prévue des entités dans les données de validation. Ce diagramme est généré uniquement si la variable à prévoir est catégorielle, si la case Traiter la variable comme catégorielle est cochée et si le paramètre Table des performances de classification en sortie (Matrice de confusion) est renseigné.
    • Validation R2 ou Précision de validation : histogramme qui affiche la distribution des valeurs R2 ou de précision. La distribution des valeurs R2 ou de précision est liée au caractère aléatoire introduit à la création du modèle. Ce diagramme permet d’évaluer la stabilité des performances du modèle lors de ses différentes exécutions. Ce diagramme est généré uniquement si le paramètre Table de validation en sortie est renseigné et si la valeur du paramètre Nombre d’exécutions pour la validation est supérieure à 1.
  • 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. La case Catégoriel est automatiquement cochée pour les variables de type chaîne. 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 domine le modèle et moins les résultats de prévision sont 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 sont calculées à partir de chaque entité indiquée dans Entités d’entraînement en entrée vers la valeur de Entités de distance d’entraînement explicatives la plus proche. 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 de distance explicatives et les couches raster explicatives portant le même nom. Pour éviter ce problème, vérifiez que chaque couche porte un nom unique ou supprimez les noms de couche en double dans les listes déroulantes.

  • 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. Ce paramètre est pris en charge uniquement lorsque le paramètre Type de modèle a pour valeur Basé sur une forêt.

  • 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 et boostés n’effectuent pas d’extrapolation ; ils peuvent uniquement classer ou prévoir une valeur avec laquelle le modèle a été entraîné. 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 est é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. De même, l’outil échoue s’il existe dans les données de validation des catégories qui ne figurent pas dans les entités d’entraînement.

  • Pour utiliser les jeux de données mosaïque comme variables explicatives, exécutez d’abord l’outil Créer une couche de mosaïque, puis copiez le chemin d’accès complet à la couche dans l’outil ou utilisez l’outil Créer une couche de mosaïque et l’outil Générer une couche raster pour ajuster 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. Dans le cas du modèle basé sur une forêt, l’augmentation du nombre d’arbres dans le modèle génère une prévision plus précise, mais son calcul est plus long.

  • Si le paramètre Type de modèle a pour valeur Basé sur une forêt et si le paramètre Calculer l’incertitude est coché, l’outil calcule un intervalle de prévision de 90 % autour de chaque valeur prévue pour Variable à prévoir. Lorsque le paramètre Type de prévision a pour valeur 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 le paramètre Type de prévision a pour valeur Prévoir un raster, 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 le paramètre Type de prévision a pour valeur Prévoir un raster. 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.
    • Chen, T., and Guestrin, C. (2016). « XGBoost: A Scalable Tree Boosting System. » In Proceedings of the 22nd ACM SIGKDD Conference on Knowledge Discovery and Data Mining. 785-794.
    • 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évision

Spécifie le mode d’opération utilisé. 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 de l’option 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 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.

  • Coché : la valeur de Variable à prévoir est une variable catégorielle et la classification est effectuée.
  • Non coché : la valeur de Variable à prévoir est continue et une régression est effectuée. 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)

Couche d’entités contenant 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 sont calculées à partir de chacune des entités indiquées dans Entités d’entraînement en entrée vers les valeurs Entités de distance d’entraînement explicatives les plus proches. 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 localisations 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évision 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 entraîné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 utilisée dans le modèle Les variables explicatives incluent les champs, les entités de distance et les rasters utilisés pour la création du modèle.

Si le paramètre Type de modèle a pour valeur Gradient boosté, l’importance est mesurée par gain, pondération et couverture ; la table inclut alors ces champs. La sortie comprend un diagramme à barres si le paramètre Nombre d’exécutions pour la validation a pour valeur 1, ou une boîte à moustaches affichant l’importance des variables explicatives si la valeur est supérieure à 1.

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

Détermine le mode de 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. Le modèle n’est plus entraîné sur le polygone ; il est entraîné 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

  • Non coché : chaque polygone se voit attribuer la valeur moyenne des rasters continus sous-jacents et la majorité pour les rasters catégoriels sous-jacents.

    Moyenne ou majorité attribuée à la valeur de polygone

Boolean
Nombre d’arbres
(Facultatif)

Nombre d’arbres créés dans les modèles basés sur une forêt et à gradient boosté. La valeur par défaut est 100.

Si le paramètre Type de modèle a pour valeur Basé sur une forêt, un nombre plus élevé d’arbres produisent généralement des prévisions de modèle plus précises, mais le temps de calcul est plus long. Si le paramètre Type de modèle a pour valeur Gradient boosté, un nombre plus élevé d’arbres peuvent produire des prévisions de modèle plus précises, mais risquent également de conduire à un surajustement des données d’entraînement. Pour éviter le surajustement des données, indiquez des valeurs pour les paramètres Profondeur d’arbre maximale, Régularisation L2 (Lambda), Réduction de perte minimale pour les divisions (Gamma) et Vitesse d’apprentissage (Eta).

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. Si le paramètre Type de modèle a pour valeur Basé sur une forêt, la valeur par défaut est dynamique et dépend du nombre d’arbres créés ainsi que du nombre de variables incluses. Si le paramètre Type de modèle a pour valeur Gradient boosté, la valeur par défaut est 6.

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 des modèles basés sur une forêt et à gradient boosté 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. Par défaut, la racine carrée du nombre total de variables explicatives (champs, distances et rasters confondus) est utilisée si la valeur de Variable à prévoir est catégorielle, ou le nombre total de variables explicatives (champs, distances et rasters confondus) est divisé par 3 si la valeur de Variable à prévoir est numérique.

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 est entraîné sans ce sous-ensemble aléatoire de données et les valeurs prévues par le modèle pour ces entités sont comparées aux valeurs observées. La valeur par défaut est 10 pour cent.

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

Matrice de confusion qui résume les performances du modèle créé sur les données de validation. La matrice compare les catégories prévues par le modèle pour les données de validation aux catégories réelles. Cette table peut être utilisée pour calculer des diagnostics supplémentaires qui ne figurent pas dans les messages en sortie. Ce paramètre est disponible lorsque la valeur de Variable à prévoir est catégorielle et que le paramètre Traiter comme catégoriel est coché.

Table
Table de validation en sortie
(Facultatif)

Table qui contient le R2 pour chaque modèle si la valeur de Variable à prévoir n’est pas catégorielle, ou la précision de chaque modèle si la valeur est catégorielle. Cette table inclut un diagramme à barres de la distribution des précisions ou des valeurs R2. Cette distribution permet d’évaluer la stabilité du modèle. Ce paramètre est disponible lorsque la valeur de Nombre d’exécutions pour la validation est supérieure à 2.

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. Ce paramètre est disponible lorsque le paramètre Type de modèle a pour valeur Basé sur une forêt.

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

Vous pouvez afficher la distribution des valeurs R2 ou des précisions de tous les modèles à l’aide du paramètre Table de validation en sortie. Si le paramètre Type de prévision a pour valeur Prévoir un raster ou Prévoir des entités, le modèle qui a produit la valeur R2 ou la précision la plus élevée est utilisé pour effectuer des 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.

Ce paramètre est disponible lorsque le paramètre Type de modèle a pour valeur Basé sur une forêt.

  • 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
Fichier du modèle entraîné en sortie.
(Facultatif)

Un fichier de modèle en sortie dans lequel sera enregistré le modèle entraîné qui pourra être utilisé ultérieurement pour effectuer des prévisions.

File
Type de modèle
(Facultatif)

Spécifie la méthode utilisée pour créer le modèle.

  • Basée sur une forêtUn modèle est créé avec une adaptation de l’algorithme des forêts aléatoires. Le modèle utilise les votes de centaines d’arbres décisionnels. Chaque arbre décisionnel est créé à partir d’un sous-ensemble généré aléatoirement des données d’origine et des variables d’origine.
  • Gradient boostéUn modèle est créé avec l’algorithme XGBoost (Extreme Gradient Boosting). Le modèle crée une séquence de centaines d’arbres dans laquelle chaque arbre corrige les erreurs des arbres précédents.
String
Régularisation L2 (Lambda)
(Facultatif)

Terme de régularisation qui réduit la sensibilité du modèle aux entités individuelles. Si cette valeur augmente, le modèle devient plus conservateur et empêche le surajustement des données d’entraînement. Si la valeur est égale à 0, le modèle devient le modèle Boosting de gradient traditionnel. La valeur par défaut est 1.

Ce paramètre est disponible lorsque le paramètre Type de modèle a pour valeur Gradient boosté.

Double
Réduction de perte minimale pour les divisions (Gamma)
(Facultatif)

Seuil auquel la réduction de perte minimale doit diviser les arbres.

Les divisions potentielles sont évaluées quant à leur réduction de perte. Si la réduction de perte de la division candidate est plus élevée que cette valeur de seuil, la partition a lieu. Des valeurs de seuil plus élevées empêchent le surajustement et génèrent des modèles plus conservateurs avec moins de partitions. La valeur par défaut est 0.

Ce paramètre est disponible lorsque le paramètre Type de modèle a pour valeur Gradient boosté.

Double
Vitesse d’apprentissage (Eta)
(Facultatif)

Valeur qui réduit la contribution de chaque arbre à la prévision finale. La valeur doit être supérieure à 0 et inférieure ou égale à 1. Une vitesse d’apprentissage plus faible empêche le surajustement du modèle, mais peut nécessiter des temps de calcul plus longs. La valeur par défaut est de 0,3.

Ce paramètre est disponible lorsque le paramètre Type de modèle a pour valeur Gradient boosté.

Double
Nombre maximal de groupes pour la recherche de divisions
(Facultatif)

Nombre de groupes selon lequel les données d’entraînement sont divisées pour la recherche du meilleur point de division. La valeur doit être différente de 1. La valeur par défaut est 0, ce qui correspond à l’utilisation d’un algorithme glouton. Un algorithme glouton crée une division candidate à chaque point de données. Il est déconseillé d’indiquer un nombre trop faible de groupes, car cela génère des performances de prévision de modèle médiocres.

Ce paramètre est disponible lorsque le paramètre Type de modèle a pour valeur Gradient boosté.

Long
Optimiser les paramètres
(Facultatif)

Indique si une méthode d’optimisation est utilisée pour rechercher le jeu d’hyperparamètres qui permet d’atteindre des performances de modèle optimales.

  • Coché : une méthode d’optimisation est utilisée pour rechercher le jeu d’hyperparamètres.
  • Non coché : aucune méthode d’optimisation n’est utilisée. Il s’agit de l’option par défaut.

Boolean
Méthode d’optimisation
(Facultatif)

Spécifie la méthode d’optimisation utilisée pour sélectionner et tester des points de recherche afin de trouver le jeu optimal d’hyperparamètres. Les points de recherche sont des combinaisons d’hyperparamètres au sein de l’espace de recherche ; ils sont spécifiés par le paramètre Réglage des paramètres de modèle. Cette sortie est disponible lorsque le paramètre Paramètres d’optimisation est coché.

  • Recherche aléatoire (Rapide)Un algorithme d’échantillonnage aléatoire stratifié est utilisée pour la sélection des points de recherche dans l’espace de recherche. Il s’agit de l’option par défaut.
  • Recherche aléatoire (Robuste)Un algorithme d’échantillonnage aléatoire stratifié est utilisée pour la sélection des points de recherche. Chaque recherche est exécutée 10 fois avec une valeur de départ aléatoire différente. Le résultat de chaque recherche est la meilleure exécution médiane déterminée par la valeur du paramètre Optimiser la cible (Objectif). Cette option est disponible lorsque le paramètre Type de modèle a pour valeur Basé sur une forêt.
  • Recherche dans la grilleTous les points de recherche au sein de l’espace de recherche sont sélectionnés.
String
Optimiser la cible (Objectif)
(Facultatif)

Spécifie la fonction ou la valeur de l’objectif qui sera réduite ou augmentée pour la recherche du jeu optimal d’hyperparamètres.

  • R-carréLa méthode d’optimisation augmente la valeur de R2 pour rechercher le jeu optimal d’hyperparamètres. Cette option est disponible uniquement lorsque la variable à prévoir n’est pas catégorielle. Il s’agit de la valeur par défaut lorsque la variable à prévoir n’est pas catégorielle.
  • Erreur quadratique moyenne (EQM)La méthode d’optimisation réduit l’erreur quadratique moyenne pour rechercher le jeu optimal d’hyperparamètres. Cette option est disponible uniquement lorsque la variable à prévoir n’est pas catégorielle.
  • PrécisionLa méthode d’optimisation augmente la précision pour rechercher le modèle optimal. Cette option est disponible uniquement lorsque la variable à prévoir est catégorielle. Il s’agit de la valeur par défaut lorsque la variable à prévoir est catégorielle.
  • Coefficient de corrélation de Matthews (MCC)La méthode d’optimisation augmente le coefficient de corrélation de Matthews pour rechercher le jeu optimal d’hyperparamètres. Cette option est disponible uniquement lorsque la variable à prévoir est catégorielle.
  • Score F1La méthode d’optimisation augmente le Score F1 pour rechercher le jeu optimal d’hyperparamètres. Cette option est disponible uniquement lorsque la variable à prévoir est catégorielle.
String
Nombre d’exécutions pour les jeux de paramètres
(Facultatif)

Nombre de points de recherche au sein de l’espace de recherche spécifiés par le paramètre Réglage des paramètres de modèle qui seront testés. Ce paramètre est disponible lorsque le paramètre Méthode d’optimisation a pour valeur Recherche aléatoire (Rapide) ou Recherche aléatoire (Robuste).

Long
Réglage des paramètres de modèle
(Facultatif)

Liste des hyperparamètres et de leurs espaces de recherche. Personnalisez l’espace de recherche de chaque hyperparamètre en fournissant une limite inférieure, une limite supérieure et un intervalle. La limite inférieure et la limite supérieure spécifient la plage des valeurs possibles de l’hyperparamètre.

Voici la plage des valeurs valides pour chaque hyperparamètre :

  • Nombre d’arbres (number_of_trees) : valeur entière supérieure à 1.
  • Profondeur d’arbre maximale ((maximum_depth) : valeur entière supérieure ou égale à 0.
  • Taille minimale des feuilles (minimum_leaf_size) : valeur entière supérieure à 1.
  • Données disponibles par arbre (%) (sample_size) : valeur entière supérieure à 0 et inférieure ou égale à 100.
  • Nombre de variables échantillonnées de manière aléatoire (random_variables) : valeur entière inférieure ou égale au nombre de variables explicatives. Il s’agit des variables explicatives issues des champs, des entités de distance et des rasters.
  • Vitesse d’apprentissage (Eta) (eta) : valeur double supérieure à 0 et inférieure ou égale à 1.
  • Régularisation L2 (Lambda) (reg_lambda) : valeur double supérieure ou égale à 0.
  • Réduction de perte minimale pour les divisions (Gamma) (gamma) : valeur double supérieure ou égale à 0.
  • Nombre maximal de groupes pour la recherche de divisions (max_bins) : valeur entière supérieure à 1 ou valeur 0. Une valeur de 0 signifie que le modèle crée une division candidate à chaque point de données.

Value Table
Table d’optimisation des paramètres en sortie
(Facultatif)

Table qui contient les réglages des paramètres et les valeurs d’objectif de chaque essai d’optimisation. La sortie inclut un diagramme de tous les essais et de leurs valeurs d’objectif. Cette option est disponible lorsque le paramètre Optimiser les paramètres est coché.

Table

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}, {output_trained_model}, {model_type}, {reg_lambda}, {gamma}, {eta}, {max_bins}, {optimize}, {optimize_algorithm}, {optimize_target}, {num_search}, {model_param_setting}, {output_param_tuning_table})
NomExplicationType de données
prediction_type

Spécifie le mode d’opération utilisé. 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 de l’option 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 de variable_predict est une variable catégorielle et la classification est effectuée.
  • NUMERICLa valeur de variable_predict est continue et une régression est effectuée. 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 spécifiez 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 entités de la valeur in_features et les valeurs distance_features les plus proches 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 spécifiez la valeur NUMERIC s’il est continu.

Value Table
features_to_predict
(Facultatif)

Classe d’entités qui représente les localisations 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_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 pour la création du modèle.

Table
use_raster_values
(Facultatif)

Détermine le mode de 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éés dans les modèles basés sur une forêt et à gradient boosté. La valeur par défaut est 100.

Si le paramètre model_type a pour valeur FOREST-BASED, un nombre plus élevé d’arbres produisent généralement des prévisions de modèle plus précises, mais le temps de calcul est plus long. Si le paramètre Tmodel_type a pour valeur GRADIENT_BOOSTED, un nombre plus élevé d’arbres peuvent produire des prévisions de modèle plus précises, mais risquent également de conduire à un surajustement des données d’entraînement. Pour éviter le surajustement des données, indiquez des valeurs pour les paramètres maximum_depth, reg_lambda, gamma et eta.

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. Si le paramètre model_type a pour valeur FOREST-BASED, la valeur par défaut est dynamique et dépend du nombre d’arbres créés ainsi que du nombre de variables incluses. Si le paramètre model_type a pour valeur GRADIENT_BOOSTED, la valeur par défaut est 6.

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 catégorielle, 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 numérique, 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 qui résume les performances du modèle créé sur les données de validation. La matrice compare les catégories prévues par le modèle pour les données de validation aux catégories réelles. Cette table peut être utilisée pour calculer des diagnostics supplémentaires qui ne figurent pas dans les messages en sortie. Ce paramètre est disponible lorsque la valeur variable_predict est catégorielle et que le paramètre treat_variable_as_categorical a pour valeur CATEGORICAL.

Table
output_validation_table
(Facultatif)

Table qui contient le R2 pour chaque modèle si la valeur de variable_predict n’est pas catégorielle, ou la précision de chaque modèle si la valeur est catégorielle. Cette table inclut un diagramme à barres de la distribution des précisions ou des valeurs R2. Cette distribution permet d’évaluer la stabilité du modèle. Ce paramètre est disponible lorsque la valeur de number_validation_runs est supérieure à 2.

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. Ce paramètre est disponible lorsque le paramètre model_type a pour valeur FOREST-BASED.

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

Vous pouvez afficher la distribution des valeurs R2 ou des précisions de tous les modèles à l’aide du paramètre output_validation_table. Si le paramètre prediction_type a pour valeur PREDICT_RASTER ou PREDICT_FEATURES, le modèle qui a produit la valeur R2 ou la précision la plus élevée est utilisé pour effectuer des 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.

Ce paramètre est disponible lorsque le paramètre model_type a pour valeur FOREST-BASED.

  • 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
output_trained_model
(Facultatif)

Un fichier de modèle en sortie dans lequel sera enregistré le modèle entraîné qui pourra être utilisé ultérieurement pour effectuer des prévisions.

File
model_type
(Facultatif)

Spécifie la méthode utilisée pour créer le modèle.

  • FOREST-BASEDUn modèle est créé avec une adaptation de l’algorithme des forêts aléatoires. Le modèle utilise les votes de centaines d’arbres décisionnels. Chaque arbre décisionnel est créé à partir d’un sous-ensemble généré aléatoirement des données d’origine et des variables d’origine.
  • GRADIENT_BOOSTEDUn modèle est créé avec l’algorithme XGBoost (Extreme Gradient Boosting). Le modèle crée une séquence de centaines d’arbres dans laquelle chaque arbre corrige les erreurs des arbres précédents.
String
reg_lambda
(Facultatif)

Terme de régularisation qui réduit la sensibilité du modèle aux entités individuelles. Si cette valeur augmente, le modèle devient plus conservateur et empêche le surajustement des données d’entraînement. Si la valeur est égale à 0, le modèle devient le modèle Boosting de gradient traditionnel. La valeur par défaut est 1.

Ce paramètre est disponible lorsque le paramètre model_type a pour valeur GRADIENT_BOOSTED.

Double
gamma
(Facultatif)

Seuil auquel la réduction de perte minimale doit diviser les arbres.

Les divisions potentielles sont évaluées quant à leur réduction de perte. Si la réduction de perte de la division candidate est plus élevée que cette valeur de seuil, la partition a lieu. Des valeurs de seuil plus élevées empêchent le surajustement et génèrent des modèles plus conservateurs avec moins de partitions. La valeur par défaut est 0.

Ce paramètre est disponible lorsque le paramètre model_type a pour valeur GRADIENT_BOOSTED.

Double
eta
(Facultatif)

Valeur qui réduit la contribution de chaque arbre à la prévision finale. La valeur doit être supérieure à 0 et inférieure ou égale à 1. Une vitesse d’apprentissage plus faible empêche le surajustement du modèle, mais peut nécessiter des temps de calcul plus longs. La valeur par défaut est de 0,3.

Ce paramètre est disponible lorsque le paramètre model_type a pour valeur GRADIENT_BOOSTED.

Double
max_bins
(Facultatif)

Nombre de groupes selon lequel les données d’entraînement sont divisées pour la recherche du meilleur point de division. La valeur doit être différente de 1. La valeur par défaut est 0, ce qui correspond à l’utilisation d’un algorithme glouton. Un algorithme glouton crée une division candidate à chaque point de données. Il est déconseillé d’indiquer un nombre trop faible de groupes, car cela génère des performances de prévision de modèle médiocres.

Ce paramètre est disponible lorsque le paramètre model_type a pour valeur GRADIENT_BOOSTED.

Long
optimize
(Facultatif)

Indique si une méthode d’optimisation est utilisée pour rechercher le jeu d’hyperparamètres qui permet d’atteindre des performances de modèle optimales.

  • TRUEUne méthode d’optimisation est utilisée pour rechercher le jeu d’hyperparamètres.
  • FALSEAucune méthode d’optimisation n’est utilisée. Il s’agit de l’option par défaut.
Boolean
optimize_algorithm
(Facultatif)

Spécifie la méthode d’optimisation utilisée pour sélectionner et tester des points de recherche afin de trouver le jeu optimal d’hyperparamètres. Les points de recherche sont des combinaisons d’hyperparamètres au sein de l’espace de recherche ; ils sont spécifiés par le paramètre model_param_setting. Cette option est disponible lorsque le paramètre optimize a pour valeur TRUE.

  • RANDOMUn algorithme d’échantillonnage aléatoire stratifié est utilisée pour la sélection des points de recherche dans l’espace de recherche. Il s’agit de l’option par défaut.
  • RANDOM_ROBUSTUn algorithme d’échantillonnage aléatoire stratifié est utilisée pour la sélection des points de recherche. Chaque recherche est exécutée 10 fois avec une valeur de départ aléatoire différente. Le résultat de chaque recherche est la meilleure exécution médiane déterminée par la valeur du paramètre optimize_target. Cette option est disponible lorsque le paramètre model_type a pour valeur FOREST-BASED.
  • GRIDTous les points de recherche au sein de l’espace de recherche sont sélectionnés.
String
optimize_target
(Facultatif)

Spécifie la fonction ou la valeur de l’objectif qui sera réduite ou augmentée pour la recherche du jeu optimal d’hyperparamètres.

  • R2La méthode d’optimisation augmente la valeur de R2 pour rechercher le jeu optimal d’hyperparamètres. Cette option est disponible uniquement lorsque la variable à prévoir n’est pas catégorielle. Il s’agit de la valeur par défaut lorsque la variable à prévoir n’est pas catégorielle.
  • RMSELa méthode d’optimisation réduit l’erreur quadratique moyenne pour rechercher le jeu optimal d’hyperparamètres. Cette option est disponible uniquement lorsque la variable à prévoir n’est pas catégorielle.
  • ACCURACYLa méthode d’optimisation augmente la précision pour rechercher le modèle optimal. Cette option est disponible uniquement lorsque la variable à prévoir est catégorielle. Il s’agit de la valeur par défaut lorsque la variable à prévoir est catégorielle.
  • MCCLa méthode d’optimisation augmente le coefficient de corrélation de Matthews pour rechercher le jeu optimal d’hyperparamètres. Cette option est disponible uniquement lorsque la variable à prévoir est catégorielle.
  • F1-SCORELa méthode d’optimisation augmente le Score F1 pour rechercher le jeu optimal d’hyperparamètres. Cette option est disponible uniquement lorsque la variable à prévoir est catégorielle.
String
num_search
(Facultatif)

Nombre de points de recherche au sein de l’espace de recherche spécifiés par le paramètre model_param_setting qui seront testés. Ce paramètre est disponible lorsque le paramètre optimize_algorithm a pour valeur RANDOM ou RANDOM_ROBUST.

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

Liste des hyperparamètres et de leurs espaces de recherche. Personnalisez l’espace de recherche de chaque hyperparamètre en fournissant une limite inférieure, une limite supérieure et un intervalle. La limite inférieure et la limite supérieure spécifient la plage des valeurs possibles de l’hyperparamètre.

Voici la plage des valeurs valides pour chaque hyperparamètre :

  • Nombre d’arbres (number_of_trees) : valeur entière supérieure à 1.
  • Profondeur d’arbre maximale ((maximum_depth) : valeur entière supérieure ou égale à 0.
  • Taille minimale des feuilles (minimum_leaf_size) : valeur entière supérieure à 1.
  • Données disponibles par arbre (%) (sample_size) : valeur entière supérieure à 0 et inférieure ou égale à 100.
  • Nombre de variables échantillonnées de manière aléatoire (random_variables) : valeur entière inférieure ou égale au nombre de variables explicatives. Il s’agit des variables explicatives issues des champs, des entités de distance et des rasters.
  • Vitesse d’apprentissage (Eta) (eta) : valeur double supérieure à 0 et inférieure ou égale à 1.
  • Régularisation L2 (Lambda) (reg_lambda) : valeur double supérieure ou égale à 0.
  • Réduction de perte minimale pour les divisions (Gamma) (gamma) : valeur double supérieure ou égale à 0.
  • Nombre maximal de groupes pour la recherche de divisions (max_bins) : valeur entière supérieure à 1 ou valeur 0. Une valeur de 0 signifie que le modèle crée une division candidate à chaque point de données.

Value Table
output_param_tuning_table
(Facultatif)

Table qui contient les réglages des paramètres et les valeurs d’objectif de chaque essai d’optimisation. La sortie inclut un diagramme de tous les essais et de leurs valeurs d’objectif. Cette option est disponible si optimize a pour valeur TRUE.

Table

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

Raster Layer

Exemple de code

Exemple 1 d’utilisation de la fonction Forest (fenêtre Python)

Le script Python ci-dessous illustre l’utilisation de 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.