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 sont des champs de la table attributaire des entités d’entraînement. Outre la validation des performances du modèle en fonction des données d’entraînement, vous pouvez aussi réaliser des prévisions sur des entités.
Utilisation
Cet outil permet de créer des centaines d’arbres, regroupés sous le nom d’ensemble d’arbres décisionnels, en vue de créer un modèle à utiliser par la suite pour la prévision. Chaque arbre décisionnel est créé à partir de portions des données d'origine (entraînement) générées de manière aléatoire. Chaque arbre génère sa propre prévision et ses votes relatifs à un résultat. Le modèle de forêt tient compte des votes de tous les arbres décisionnels dans la prévision ou le classement du résultat d’un échantillon inconnu. Cela est important, car les arbres individuels peuvent avoir des problèmes de sur-ajustement à un modèle ; cependant, l’association de plusieurs arbres dans une forêt pour prévision règle le problème de sur-ajustement associé à un seul arbre.
Cet outil peut être utilisé en deux modes opératoires. Avec le mode Train (Entraîner), vous pouvez évaluer les performances de différents modèles et examiner une diversité de variables explicatives et de paramètres de l’outil. Lorsque vous avez trouvé un modèle adéquat, vous pouvez utiliser le mode Train and Predict (Entraîner et prévoir).
Les entités Input Training Features (Entités d’entraînement en entrée) peuvent être des tables, des points, des lignes ou des entités surfaciques. L'outil ne fonctionne pas avec les données multi-parties.
Les entités qui comportent une ou plusieurs valeurs nulles ou encore des valeurs de chaîne vide dans les champs de prévision ou explicatifs seront exclues de la sortie. Vous pouvez modifier les valeurs à l’aide de l’outil Calculer un champ, si nécessaire.
Cet outil produit une variété de sorties selon les modes de fonctionnement suivants :
- Train (Entraîner) produit les deux sorties suivantes :
- Entités formées en sortie : contient toutes les entités Input Training Features (Entités d’entraînement en entrée) utilisées dans le modèle créé, ainsi que toutes les variables explicatives utilisées dans le modèle. Elle contient également les prévisions pour toutes les entités utilisées pour entraîner le modèle, ce qui peut être utile lors de l’évaluation des performances du modèle créé.
- Outil Messages de synthèse : messages pour vous aider à comprendre les performances du modèle créé. Ces messages contiennent des informations sur les caractéristiques du modèle, l’importance des variables et les diagnostics de validation.
- Train and Predict (Entraîner et prévoir) produit les trois sorties suivantes :
- Entités formées en sortie : contient toutes les entités Input Training Features (Entités d’entraînement en entrée) utilisées dans le modèle créé, ainsi que toutes les variables explicatives utilisées dans le modèle. Elle contient également les prévisions pour toutes les entités utilisées pour entraîner le modèle, ce qui peut être utile lors de l’évaluation des performances du modèle créé.
- Entités prévues en sortie : une couche des résultats prévus. Les prévisions sont appliquées à la couche à prévoir (avec l’option Input Prediction Features (Entités de prévision en entrée)) à l’aide du modèle généré via la couche d’entraînement.
- Outil Messages de synthèse : messages pour vous aider à comprendre les performances du modèle créé. Ces messages contiennent des informations sur les caractéristiques du modèle, l’importance des variables et les diagnostics de validation.
- Train (Entraîner) produit les deux sorties suivantes :
Vous pouvez utiliser le paramètre Create Variable Importance Table (Créer une table de l’importance des variables) pour créer une table affichant l’importance des variables pour l’évaluation. Les valeurs des 20 variables les plus importantes sont également indiquées dans la fenêtre de messages.
Les variables explicatives peuvent provenir des champs et doivent contenir une variété de valeurs. Si la variable explicative est catégorielle, la case à cocher Categorical (Catégoriel) doit être sélectionnée (les variables de type chaîne sont automatiquement sélectionnées). Les variables explicatives catégorielles sont limitées à 60 valeurs uniques, sachant que les performances du modèle sont améliorées si le nombre de catégories est restreint. Pour une taille de données 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.
Lors de l’appariement de variables explicatives, les options Training Field (Champ d’entraînement) et Prediction Field (Champ de prévision) doivent comporter des champs du même type (par exemple, un champ double dans Training Field (Champ d’entraînement) doit être apparié à un champ double dans Prediction Field (Champ de prévision)).
Les modèles de forêt n’extrapolent pas. Ils peuvent seulement classer ou effectuer une prédiction en fonction de la plage de valeurs avec laquelle le modèle a été préparé. Entraînez le modèle avec des entités d’entraînement et des variables explicatives qui figurent dans la plage de vos entités et variables cibles. L’exécution de l’outil échoue si les variables explicatives de la prévision possèdent des catégories qui n’existent pas dans les entités d’entraînement.
La valeur par défaut du paramètre Number of Trees (Nombre d'arbres) est 100. L’augmentation du nombre d’arbres dans le modèle de forêt permet d’obtenir une prévision plus précise, mais son calcul est plus long.
Prise en charge d’une seule couche pour l’entraînement et d’une seule couche pour la prévision. Pour combiner plusieurs jeux de données en un seul, utilisez les outils Construire un carroyage à plusieurs variables et Enrichir depuis un carroyage à plusieurs variables afin de générer les données en entrée.
Cet outil de géotraitement est mis en œuvre par Spark. L’analyse est effectuée sur votre ordinateur de bureau en utilisant plusieurs cœurs en parallèle. Pour en savoir plus sur l’exécution de l’analyse, reportez-vous à la rubrique Remarques relatives aux outils GeoAnalytics Desktop.
Lorsque vous exécutez des outils GeoAnalytics Desktop, l’analyse est effectuée sur votre ordinateur de bureau. Pour des performances optimales, les données doivent être accessibles sur votre bureau. Si vous utilisez une couche d’entités hébergée, nous vous recommandons de faire appel à ArcGIS GeoAnalytics Server. Si vos données ne sont pas enregistrées en local, l’exécution des outils prendra plus de temps. Pour utiliser votre instance ArcGIS GeoAnalytics Server en vue d’une analyse, reportez-vous à la rubrique Outils GeoAnalytics.
Syntaxe
arcpy.gapro.Forest(prediction_type, in_features, {output_trained_features}, {variable_predict}, {treat_variable_as_categorical}, {explanatory_variables}, {features_to_predict}, {variable_of_importance}, {output_predicted}, {explanatory_variable_matching}, {number_of_trees}, {minimum_leaf_size}, {maximum_tree_depth}, {sample_size}, {random_variables}, {percentage_for_validation})
Paramètre | Explication | Type 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,
| String |
in_features | Classe d’entités contenant le paramètre variable_predict et les variables de variables d’entraînement explicatives. | Table View |
output_trained_features (Facultatif) | Nom de la couche d’entités en sortie. | Table;Feature Class |
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) |
| 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 |
features_to_predict (Facultatif) | Couche d’entités représentant les emplacements où se produisent les prévisions. Cette couche d’entités doit également comporter toutes les variables explicatives fournies en tant que champs et correspondant aux champs utilisés issus des données d’entraînement. | Table View |
variable_of_importance (Facultatif) | Table contenant des informations décrivant l’importance de chaque variable explicative à utiliser dans le modèle créé. | Table |
output_predicted (Facultatif) | Classe d’entités en sortie allant recevoir les résultats de la prévision. | Table;Feature Class |
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 |
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 (c’est-à-dire le nœud terminal d’un arbre sans fractionnements supplémentaires). La valeur minimale par défaut pour une régression est 5 ; la valeur par défaut est 1 pour une classification. Pour les jeux de données très volumineux, l’augmentation de ces nombres aura pour effet de réduire le temps d’exécution de l’outil. | Long |
maximum_tree_depth (Facultatif) | Nombre maximum de fractionnements pouvant être effectués pour un arbre. Si la profondeur maximum est élevée, le nombre de fractionnements créés augmente, ce qui accroît les risques de sur-ajustement du modèle. La valeur par défaut est dynamique et dépend du nombre d’arbres créés et du nombre de variables incluse. | Long |
sample_size (Facultatif) | Pourcentage d’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) | Nombre de variables explicatives utilisées pour créer chaque arbre décisionnel. Chaque arbre décisionnel de 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 ou, si la variable à prévoir (variable_predict) est catégorielle, de diviser le nombre total de variables explicatives par 3. | Long |
percentage_for_validation (Facultatif) | 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. | Long |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil Forest.
Dans ce script, exécutez les données de forêt en vente à partir de 1980 et prévoyez les ventes en 1981.
#-------------------------------------------------------------------------------
# Name: Forest.py
# Description: Run Forest on sales data from 1980 and predict for sales in 1981
#
# Requirements: Advanced License
# Import system modules
import arcpy
arcpy.env.workspace = "c:/data/commercial.gdb"
# Set local variables
trainingDataset = "sales"
predictionDataset = "next_year"
outputName = "training"
outputPredictedName = "predicted"
# Execute Forest
arcpy.geoanalytics.Forest(
"TRAIN_AND_PREDICT", inputDataset, outputName, "PERIMETER", None,
"STORE_CATEGORY true;AVG_INCOME false;POPULATION false", None,
predictionDataset,
"STORE_CATEGORY STORE_CATEGORY;AVG_INCOME MEAN_INCOME;POPULATION POPULATION",
100, None, None, 120, None, 10)
Environnements
Informations de licence
- Basic: Non
- Standard: Non
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?