Résumé
Recherche des agrégats naturels d’entités en fonction uniquement des valeurs attributaires des entités.
Pour en savoir plus sur le fonctionnement de l'outil Agrégation multivariée
Illustration
Utilisation
-
Cet outil génère une classe d'entités en sortie avec les champs utilisés dans l'analyse, ainsi qu'un nouveau champ d'entier appelé CLUSTER_ID. Le rendu par défaut repose sur le champ CLUSTER_ID et indique à quel agrégat appartient chaque entité. Si vous souhaitez utiliser trois agrégats, par exemple, chaque enregistrement affichera 1, 2 ou 3 dans le champ CLUSTER_ID. La classe d’entités en sortie contiendra également un champ binaire nommé IS_SEED. Le champ IS_SEED indique quelles entités ont été initialement utilisées pour créer des agrégats. Le nombre de valeurs non nulles indiqué dans le champ IS_SEED correspond à la valeur que vous avez spécifiée pour le paramètre Number of Clusters (Nombre d’agrégats).
Les entités en sortie peuvent être des points, des lignes ou des polygones.
-
Cet outil crée des messages et des diagrammes pour mieux comprendre les caractéristiques des agrégats identifiés. Vous pouvez accéder aux messages en pointant sur la barre de progression, en cliquant sur le bouton contextuel ou en développant la section View details (Afficher les détails) dans la fenêtre Geoprocessing (Géotraitement). Vous pouvez également accéder aux messages d’une exécution précédente de l’outil Multivariate Clustering (Agrégation multivariée) via l’historique de géotraitement. Les diagrammes créés sont accessibles dans depuis la fenêtre Contents (Contenu).
-
Pour plus d’informations sur les diagrammes et les messages en sortie, reportez-vous à la rubrique Fonctionnement de l’outil Agrégation multivariée.
-
Les champs d’analyse doivent être numériques et contenir diverses valeurs. Les champs sans variation (ceux dont la valeur est identique ou très similaire dans chaque enregistrement) seront exclus de l’analyse, mais inclus dans Output Features (Entités en sortie). Vous pouvez utiliser des champs de catégorie avec l’outil Agrégation multivariée s’ils sont représentés par des variables numériques fictives (1 pour toutes les entités d’une catégorie et 0 pour toutes les autres entités).
-
L’outil Agrégation multivariée crée des agrégats non spatiaux. Dans certains cas, vous souhaiterez peut-être imposer certaines contraintes de contiguïté ou d’autres critères de proximité aux agrégats créés. Vous utiliserez dans ce cas l’outil Agrégation multivariée spatialement contrainte pour créer des agrégats qui sont spatialement contigus.
-
Alors que l’on a tendance a vouloir inclure autant de champs d’analyse que possible, dans le cas de cet outil, il vaut mieux commencer avec une seule variable puis en ajouter d’autres. Les résultats sont plus faciles à interpréter avec moins de champs d'analyse. Il est également plus simple de déterminer quelles variables sont les meilleurs discriminants lorsque les champs sont peu nombreux.
-
Il existe trois options pour le paramètre Initialization Method (Méthode d’initialisation) : Optimized seed locations (Emplacements initiaux optimisés), User defined seed locations (Emplacements initiaux définis par l’utilisateur) et Random seed locations (Emplacements initiaux aléatoires). Les valeurs initiales sont les entités utilisées pour créer chaque agrégat. Si, par exemple, vous entrez 3 pour le paramètre Number of Clusters (Nombre d’agrégats), l’analyse commence avec trois entités initiales. L'option par défaut, Optimized seed locations (Emplacements initiaux optimisés), sélectionne la première valeur initiale de manière aléatoire et s'assure que les valeurs initiales suivantes sélectionnées représentent des entités qui sont éloignées les unes de autres dans l’espace de données (valeurs attributaires). Pour améliorer les performances, sélectionnez des valeurs initiales qui capturent différentes zones de l'espace de données. Lorsque des entités spécifiques reflètent des caractéristiques distinctes, vous pouvez les représenter dans différents agrégats. Dans ce cas, vous pouvez fournir ces emplacements en créant un champ de valeurs initiales pour identifier ces entités particulières. Le champ de valeurs initiales que vous créez doit contenir des zéros pour toutes les entités, à l'exception des entités initiales qui doivent être égales à 1. Définissez ensuite le paramètre Initialization Method (Méthode d’initialisation) sur User defined seed locations (Emplacements initiaux définis par l’utilisateur). Si vous souhaitez effectuer une analyse de la sensibilité pour déterminer quelles entités figurent systématiquement dans le même agrégat, vous pouvez sélectionner l’option Random seed locations (Emplacements initiaux aléatoires) pour le paramètre Initialization Method (Méthode d'initialisation). Pour cette option, les entités initiales sont sélectionnées au hasard.
Remarque :
Lorsque vous utilisez des valeurs initiales aléatoires, vous pouvez choisir une valeur initiale pour lancer le générateur de nombres aléatoires via le paramètre d'environnement Générateur de nombres aléatoires. Toutefois, le générateur de nombres aléatoires utilisé par cet outil est toujours Mersenne Twister.
-
Toute valeur 1 entrée dans le Champ d'initialisation est interprétée comme une valeur initiale. Si vous spécifiez des emplacements initiaux, le paramètre Number of Clusters (Nombre d’agrégats) est désactivé et l’outil recherche autant d’agrégats qu’il existe d’entrées non nulles dans le paramètre Initialization Field (Champ d’initialisation).
-
Vous savez parfois quelle valeur Number of Clusters (Nombre d’agrégats) convient le mieux à vos données. Mais si ce n’est pas le cas, vous devrez essayer différents nombres d’agrégats et noter les valeurs qui permettent le mieux de les différencier. Lorsque vous ne renseignez pas la valeur Number of Clusters (Nombre d’agrégats), l’outil vérifie le nombre optimal d’agrégats en calculant une statistique pseudo-F pour les solutions d’agrégation avec 2 à 30 agrégats et signale le nombre optimal d’agrégats dans la fenêtre de messages. Lorsque vous spécifiez un paramètre Output Table for Evaluating Number of Clusters (Table en sortie pour évaluer le nombre d’agrégats) facultatif, un diagramme présentant les valeurs statistiques pseudo-F est créé pour les solutions avec 2 à 30 agrégats. Les valeurs statistiques pseudo-F les plus élevées désignent les solutions qui optimisent le mieux les similarités à l'intérieur des agrégats et les différences entre les agrégats. Si aucun autre critère ne vous permet de déterminer la valeur Number of Clusters (Nombre d’agrégats), utilisez un nombre associé à l’une des valeurs statistiques pseudo-F les plus élevées.
-
Cet outil fait appel à l’algorithme des K-moyennes ou à celui des K-médoïdes pour diviser les entités en agrégats. Lorsque l’option Random seed locations (Emplacements initiaux aléatoires) est sélectionnée pour le paramètre Initialization Method (Méthode d’initialisation), l’algorithme intègre des heuristiques et peut renvoyer un résultat différent chaque fois que vous exécutez l’outil (même si vous utilisez les mêmes données et paramètres d’outils). Cela est dû au caractère aléatoire de la recherche des entités initiales utilisées pour créer les agrégats. En raison de cette solution heuristique, l’identification du nombre optimal d’agrégats est plus complexe et la statistique pseudo-F peut être différente à chaque exécution de l’outil avec les différentes entités initiales. Pourtant, dans le cas d'une distribution distincte de vos données, les solutions trouvées à chaque exécution seront plus cohérentes. Par conséquent, pour mieux déterminer le nombre optimal d’agrégats, pour chaque nombre d’agrégats de 2 à 30, l’outil procède 10 fois à l’analyse et utilise la plus élevée des dix valeurs statistiques pseudo-F.
Les algorithmes d'agrégation K means (K-moyennes) et K medoids (K-médoïdes) sont tous deux couramment utilisés et produisent généralement des résultats similaires. L'algorithme K medoids (K-médoïdes) est toutefois moins sensible au bruit et aux points aberrants des couches en entrée (Input Features). L'algorithme K means (K-moyennes), généralement plus rapide que K medoids (K-médoïdes), est privilégié pour traiter de grands jeux de données.
-
Le nombre d’agrégats attribué à un jeu d’entités peut changer à chaque exécution. Supposons, par exemple, que vous divisiez les entités en deux agrégats basés sur une variable de revenu. La première fois que vous lancez l’analyse, les entités de revenu élevé peuvent s’intituler « agrégat 2 » et les entités de revenu faible « agrégat 1 ». Lors de la deuxième exécution, il se peut que les entités de revenu élevé s’intitulent « agrégat 1 ». Il peut également arriver que certaines entités de revenu moyen changent d’agrégat à chaque exécution.
Syntaxe
arcpy.stats.MultivariateClustering(in_features, output_features, analysis_fields, {clustering_method}, {initialization_method}, {initialization_field}, {number_of_clusters}, {output_table})
Paramètre | Explication | Type de données |
in_features | Classe ou couche d’entités pour laquelle vous souhaitez créer des agrégats. | Feature Layer |
output_features | Nouvelle classe d’entités en sortie créée qui contient toutes les entités, les champs d’analyse utilisés, ainsi qu’un champ permettant d’identifier l’agrégat auquel chaque entité appartient. | Feature Class |
analysis_fields [analysis_field,...] | Liste de champs à utiliser pour distinguer les agrégats entre eux. | Field |
clustering_method (Facultatif) | Algorithme d’agrégation utilisé. K_MEANS est la valeur par défaut. Les algorithmes d'agrégation K_MEANS et K_MEDOIDS sont tous deux couramment utilisés et produisent généralement des résultats similaires. L'algorithme K_MEDOIDS est toutefois moins sensible au bruit et aux points aberrants des couches en entrée (in_features). L'algorithme K_MEANS, généralement plus rapide que K_MEDOIDS, est privilégié pour traiter de grands jeux de données.
| String |
initialization_method (Facultatif) | Indique comment les valeurs initiales sont obtenues pour créer des agrégats. Si vous spécifiez trois agrégats, par exemple, l’analyse commence avec trois valeurs initiales.
| String |
initialization_field (Facultatif) | Champ numérique identifiant les entités initiales. Les entités ayant la valeur 1 dans ce champ sont utilisées pour créer des agrégats. Toutes les autres entités doivent contenir la valeur zéro. | Field |
number_of_clusters (Facultatif) | Nombre d’agrégats à créer. Lorsque vous ne renseignez pas ce paramètre, l’outil vérifie le nombre optimal d’agrégats en calculant une statistique pseudo-F pour les solutions d’agrégation avec 2 à 30 agrégats. Ce paramètre est désactivé si les emplacements initiaux ont été fournis dans le champ d’initialisation. | Long |
output_table (Facultatif) | Si cette option est spécifiée, la table créée contient la statistique pseudo-F pour les solutions d’agrégation de 2 à 30, calculée pour vérifier le nombre optimal d’agrégats. Le diagramme créé à partir de cette table est accessible dans la section des tables autonomes de la fenêtre Contents (Contenu). | Table |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil MultivariateClustering.
import arcpy
arcpy.env.workspace = r"C:\Analysis"
arcpy.MultivariateClustering_stats("District_Vandalism", "outVandalism",
["TOTPOP", "VACANT_CY", "UNEMP"], "K_MEANS",
"OPTIMIZED_SEED_LOCATIONS", None, "5")
Le script Python autonome ci-dessous illustre l’utilisation de l'outil MultivariateClustering.
# Clustering Vandalism data in a metropolitan area
# using the Multivariate Clustering Tool
# Import system modules
import arcpy
# Set environment property to overwrite existing output, by default
arcpy.env.overwriteOutput = True
try:
# Set the current workspace (to avoid having to specify the full path to
# the feature classes each time)
arcpy.env.workspace = r"C:\GA"
# Join the 911 Call Point feature class to the Block Group Polygon feature
# class
# Process: Spatial Join
fieldMappings = arcpy.FieldMappings()
fieldMappings.addTable("ReportingDistricts.shp")
fieldMappings.addTable("Vandalism2006.shp")
sj = arcpy.SpatialJoin_analysis("ReportingDistricts.shp",
"Vandalism2006.shp", "Dist_Vand.shp",
"JOIN_ONE_TO_ONE","KEEP_ALL", fieldMappings,
"COMPLETELY_CONTAINS")
# Use the Multivariate Clustering tool to create groups based on different
# variables or analysis fields
# Process: Cluster Similar Features
ga = arcpy.MultivariateClustering_stats("District_Vandalism", "outVandalism",
["Join_Count", "TOTPOP", "VACANT_CY", "UNEMP"],
"K_MEANS", "OPTIMIZED_SEED_LOCATIONS",
None, 5)
# Use Summary Statistic tool to get the Mean of variables used to group
# Process: Summary Statistics
SumStat = arcpy.Statistics_analysis("outVandalism", "outSS",
[["Join_Count", "MEAN"],
["VACANT_CY", "MEAN"],
["TOTPOP_CY", "MEAN"],
["UNEMP_CY", "MEAN"]],
"GSF_CLUSTER")
except arcpy.ExecuteError:
# If an error occurred when running the tool, print out the error message.
print(arcpy.GetMessages())
Environnements
- Système de coordonnées en sortie
La géométrie de l'entité est projetée au système de coordonnées en sortie avant l'analyse. Tous les calculs mathématiques sont basés sur la référence spatiale du système de coordonnées en sortie. Lorsque le système de coordonnées en sortie est exprimé en degrés, minutes et secondes, les distances géodésiques sont estimées à l'aide de distances à la corde.
- Générateur de nombres aléatoires
Le type de générateur de nombres aléatoires utilisé est toujours Mersenne Twister.
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?