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

Résumé

Crée des modèles et génère des prévisions à l’aide d’une adaptation de l’algorithme de forêt aléatoire développé par Leo Breiman ; celle-ci est une méthode d’apprentissage automatique supervisée. Les prévisions sont réalisables pour les variables catégorielles (classification) et les 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

Diagramme de modèle de forêt

Utilisation

  • Cet outil permet de créer des centaines d’arbres, regroupé sous le nom d'ensemble d’arbres décisionnels, en vue de créer un modèle à utiliser par la suite pour la prévision. Chaque arbre décisionnel est créé à partir de portions des données d'origine (entraînement) générées de manière aléatoire. Chaque arbre génère sa propre prévision et ses votes relatifs à un résultat. Le modèle de forêt tient compte des votes de tous les arbres décisionnels dans la prévision ou le classement du résultat d’un échantillon inconnu. Ceci est important en raison des problèmes de sur-ajustement à un modèle que peut rencontrer individuellement chaque arbre. Pour autant, la combinaison de plusieurs arbres dans une forêt pour formuler des prévisions 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 approprié pour les jeux de données de taille très réduite.

  • Les valeurs Input Training Features (Entités d’entraînement en entrée) peuvent être des points ou des polygones. L’outil ne fonctionne pas avec des données multiparties.

  • Une licence Spatial Analyst est requise pour utiliser des rasters en tant que variables explicatives ou pour générer une surface de prédiction en sortie (Output Prediction Surface).

  • Cet outil génère des résultats en sortie divers. Output Trained Features (Entités entraînées en sortie) contient l’ensemble des Input Training Features (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 toutes 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éé. Lorsqu’il est utilisé pour réaliser des prévisions, cet outil génère soit une nouvelle classe d'entités contenant les Output Predicted Features (Entités prévues en sortie), soit une nouvelle Output Prediction Surface (Surface de prévision en sortie) si les rasters explicatifs sont fournis.

  • Lorsque vous utilisez l’option Predict to features (Prévoir des entités), une nouvelle classe d'entités contenant les entités prévues en sortie (Output Predicted Features) est créée. Lorsque vous utilisez l’option Predict to Raster (Prévoir un raster), une nouvelle surface de prédiction en sortie (Output Prediction Surface) 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évision 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 d'importance des variables en sortie) pour créer une table pour afficher un diagramme d'importance de variable pour évaluation. Les 20 meilleures valeurs d'importance variable sont également indiquées dans la fenêtre des messages. Le diagramme peut être accessible directement en dessous de la couche dans le volet 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, la case à cocher Categorical (Catégoriel) doit être sélectionnée (les variables de type chaîne sont automatiquement sélectionnées). Les variables explicatives catégorielles sont limitées à 60 valeurs uniques, sachant que les performances du modèle sont améliorées si le nombre de catégories est restreint. Pour une taille de données indiquée, plus une variable contient de catégories, plus elle sera susceptible de monopoliser le modèle et d’entraîner des résultats prévisionnels moins 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 entités d'entraînement en entrée (Input Training Features). Les distances entre chacune des entités de distance d'entraînement explicatives (Explanatory Training Distance Features) en entrée et l’entité d'entraînement en entrée (Input Training Feature) la plus proche sont calculées. Si les Explanatory Training Distance Features (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 Input Training Features (Entités d'entraînement en entrée) sont des points et que vous utilisez des Explanatory Training Rasters (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 Contents (Contenu), l’outil ne peut pas accepter les couches explicatives de même nom ni supprimer 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 vos Input Training Features (Entités d’entraînement en entrée) sont des polygones, que la (Variable to Predict (Variable à prévoir) est catégorielle et que vous utilisez exclusivement des Explanatory Training Rasters (Rasters d'entraînement explicatifs)), une option vous permet de Convert Polygons to Raster Resolution for Training (Convertir les polygones en résolution raster pour l'entraînement). Lorsque cette option est activée, 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 Cell Size (Taille de cellule). Si cette option n’est pas activée, 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 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 Compensate for Sparse Categories (Compenser les catégories creuses) peut être utilisé si la variation dans vos catégories n’est pas équilibrée. Par exemple, si certaines catégories se produisent des centaines de fois dans votre 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 Calculate Uncertainty (Calculer l’incertitude) est sélectionné, l’outil calcule un intervalle de prévision de 90 pour cent autour de chaque valeur prévue de la Variable to Predict (Variable à prévoir). Lorsque le Prediction Type (Type de prévision) est Train only (Entraîner uniquement) ou Predict to features (Prévision sur des entités) , deux champs sont ajoutés soit aux Output Trained Features (Entités entraînées en sortie), soit aux Output Predicted Features (Entités prévues en sortie). Ces champs, terminés 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 Predict to raster (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ées à la fenêtre Contents (Contenu).

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

Syntaxe

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})
ParamètreExplicationType de données
prediction_type

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

  • TRAINUn modèle est formé, sans génération de prédictions. Cette option permet d’évaluer la précision de votre modèle avant de générer des prévisions. Elle génère des diagnostics relatifs au modèle dans la fenêtre de messages, ainsi qu’un diagramme sur l’importance des variables. Il s'agit du paramètre par défaut.
  • 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 le 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 variable à prévoir variable_predict est catégorielle et l’outil exécute une classification.
  • NUMERICLa variable à prévoir 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 variable à prévoir (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 au paramètre la valeur true si la variable représente des classes ou des catégories telles que l’occupation du sol, la présence ou l’absence, et la valeur false si la variable est continue.

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

Ce paramètre crée automatiquement des variables explicatives en calculant la distance entre les entités fournies et les entités d'entraînement en entrée (in_features). Les distances entre chacune des entités de distance (distance_features) en entrée et les entités en entrée (in_features) les plus proches sont calculées. Si les entités de distance (distance_features) 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
explanatory_rasters
[[Variable, Categorical],...]
(Facultatif)

Ce paramètre crée automatiquement des variables d’entraînement explicatives dans votre modèle, dont les valeurs sont extraites de rasters. Pour chacune des entités en entrée (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 au paramètre la valeur true si le raster représente des classes ou des catégories telles que l’occupation du sol, la présence ou l’absence, et la valeur false si le raster 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, le cas échéant.

Feature Layer
output_features
(Facultatif)

Classe d’entités en sortie qui reçoit les résultats de la prédiction.

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 Cell Size (Taille de cellule).

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

Liste des variables explicatives (explanatory_variables) spécifiées dans les entités en entrée (in_features) à droite et de leurs champs correspondants dans les entités à prévoir(features_to_predict) à gauche ; par exemple, [["LandCover2000", "LandCover2010"], ["Income", "PerCapitaIncome"]].

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

Liste des entités de distance (distance_features) spécifiées pour les entités en entrée (in_features) à droite. Les jeux d'entités correspondants doivent être spécifiés pour les entités à prévoir (features_to_predict) à gauche.

Si les entités de distance explicatives (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 aux entités à prévoir (features_to_predict).

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

Liste des entités de distance (explanatory_rasters) spécifiées pour les entités en entrée (in_features) à droite. Les rasters correspondants doivent être spécifiés pour les entités à prévoir (features_to_predict) ou les rasters en sortie (output_raster) à créer à gauche.

Si les entités de distance explicatives (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 aux entités à prévoir (features_to_predict).

Value Table
output_trained_features
(Facultatif)

Les entités formées en sortie (output_trained_features) contiennent toutes 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édictions supplémentaires susceptibles d’être utilisées pour approfondir l'évaluation des performances du modèle formé.

Feature Class
output_importance_table
(Facultatif)

Si ce paramètre est défini, cette table 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 la formation du modèle si les entités en entrée (in_features) sont des polygones avec une variable catégorielle à prévoir (variable_predict) et que seuls les rasters explicatifs (explanatory_rasters) ont été spécifiés.

  • 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 alors extraites, puis utilisées pour entraîner le modèle. Ainsi, le modèle n'est plus formé sur le polygone lui-même, 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. Un grand nombre d’arbres produit habituellement des résultats plus précis, mais le calcul du modèle prend davantage de temps. Le nombre d’arbres par défaut est défini sur 100.

Long
minimum_leaf_size
(Facultatif)

Nombre minimal d’observations requises pour conserver une feuille (en d’autres termes, le nœud ultime 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. Si les données sont très volumineuses, plus ces valeurs augmentent, plus le temps d’exécution de l’outil diminue.

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 et dépend du nombre d’arbres créés et du nombre de variables incluse.

Long
sample_size
(Facultatif)

Détermine le pourcentage d'entités en entrée (in_features) utilisées pour chaque arbre décisionnel. La valeur par défaut est 100 pour cent des données. Les échantillons de chaque arbre sont sélectionnés de manière aléatoire dans les 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)

Indique le nombre de variables explicatives utilisées pour créer chaque arbre décisionnel.

Chaque arbre décisionnel dans la forêt est créé à l’aide d’un sous-ensemble aléatoire des variables explicatives spécifiées. Une augmentation du nombre de variables utilisées dans chaque arbre décisionnel accroît les risques de sur-ajustement de votre modèle, notamment s’il comporte au moins une variable dominante. Si la variable à prévoir (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 variable à prévoir (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)

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

Double
output_classification_table
(Facultatif)

Si cela est spécifié, crée une matrice de confusion pour la classification qui récapitule les performances du modèle créé. Cette table permet de calculer d’autres diagnostics au-delà des mesures d’exactitude et de sensibilité que l’outil calcule dans les messages en sortie.

Table
output_validation_table
(Facultatif)

Si la valeur Number of Runs for Validation (Nombre d’exécutions pour la validation) spécifiée 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é de votre modèle.

Table
compensate_sparse_categories
(Facultatif)

Si certaines catégories de votre jeu de données ne se produisent pas aussi souvent que d’autres, ce paramètre permet de s’assurer que chaque catégorie 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 du jeu de données d’entraînement. Il s’agit de l’option par défaut.
Boolean
number_validation_runs
(Facultatif)

L’outil s’exécute pour le nombre d’itérations spécifié. La distribution de R2 pour chaque exécution s’affiche à l’aide du paramètre Output Validation Table (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.

  • TRUE Un intervalle d’incertitude de prévision sera calculé.
  • FALSE L’incertitude ne sera pas calculée. Il s’agit de l’option par défaut.
Boolean

Sortie dérivée

NomExplicationType de données
output_uncertainty_raster_layers

Lorsque le paramètre calculate_uncertainty est sélectionné, l’outil calcule un intervalle de prévision de 90 pour cent autour de chaque valeur prévue de la variable_to_predict.

Couche raster

Exemple de code

Exemple 1 d’utilisation de la forêt (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

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