Recherche de similarité (Statistiques spatiales)
Récapitulatif
Identifie les entités candidates les plus semblables (ou dissemblables) à une ou plusieurs entités en entrée en fonction d'attributs d'entités.
Pour plus d'informations sur le fonctionnement de l'outil Recherche de similarité
Illustration
Utilisation
-
Vous allez fournir une couche contenant les entités en entrée à apparier et une seconde couche contenant les entités candidates à partir desquelles les appariements seront obtenus. Vos entités en entrée à apparier et vos entités candidates se trouveront souvent dans la même couche d'entités. Même s'il est possible de créer deux jeux de données distincts, vous n'êtes pas obligé de procéder ainsi. Il est beaucoup plus facile de créer des couches avec deux jeux de sélection différents. Supposons que vous ayez un fichier contenant tous les délits qui se sont produits au cours du mois écoulé. Si vous souhaitez rechercher tous les délits qui s'apparentent le plus au dernier car-jacking, vous pouvez procéder comme suit :
- A l'aide des outils de sélection ArcMap ou des outils de géotraitement standard, sélectionnez l'enregistrement du dernier car-jacking dans la couche contenant tous les délits.
- Cliquez avec le bouton droit sur la couche comportant la sélection, puis choisissez Sélection > Créer une couche à partir des entités sélectionnées. Utilisez cette nouvelle couche pour le paramètre Entités en entrée à apparier.
- Inversez la sélection sur la couche comportant tous les délits. Utilisez cette couche pour le paramètre Entités candidates. Attention :
Lorsque toutes les entrées proviennent d'un seul jeu de données, il est fréquent d'oublier d'inverser la sélection afin que les entités en entrée à apparier aient exactement les mêmes entités que les entités candidates. Il est très peu probable que cette situation corresponde à votre souhait. En général, il est préférable d'avoir un seul ensemble d'entités en entrée à apparier et plusieurs entités candidates.
S'il existe plusieurs entités en entrée à apparier, l'appariement repose sur les valeurs moyennes des attributs d'intérêt. Ainsi, par exemple, s'il existe deux entités en entrée à apparier et que l'un des attributs d'intérêt est une variable de population, l'outil recherche des entités candidates dont la population s'approche le plus des valeurs de population moyennes. Si les valeurs de population sont de 100 et 102, par exemple, l'outil recherche des candidats dont la population avoisine 101.
Remarque :Lorsque plusieurs entités en entrée à apparier sont spécifiées, vous pouvez sélectionner des attributs d'intérêt avec des valeurs similaires. Si, par exemple, la valeur de population d'une des entrées est de 100 et que l'autre entrée est de 100 000, l'outil recherche des correspondances dont la population avoisine la moyenne de ces deux valeurs : 50 050. Notez que cette moyenne ne ressemble en rien à la population des entités en entrée à apparier.
Les entités en sortie contiendront toujours des points, sauf si les entités en entrée à apparier et les entités candidates sont des polygones ou des polylignes. La création d'entités en sortie de type polygone ou polyligne risquant de ralentir les performances pour les jeux de données volumineux, vous pouvez sélectionner Réduire la sortie en points pour forcer les géométries ponctuelles et optimiser les performances.
Avec le paramètre Les plus ou les moins similaires, vous pouvez rechercher les entités qui sont les plus similaires (MOST_SIMILAR) ou les moins similaires (LEAST_SIMILAR) aux entités en entrée à apparier. Dans certains cas, vous pouvez avoir besoin de consulter tous les cas de figure. Si vous entrez 3 pour le paramètre Nombre de résultats et BOTH pour le paramètre Les plus ou les moins similaires, par exemple, l'outil renvoie les trois entités candidates les plus similaires et les trois entités candidates les moins similaires.
Les solutions données dans les entités en sortie sont soit la solution la plus similaire soit la moins similaire aux entités en entrée à apparier cibles. Une seule solution ne peut pas être les deux à la fois (et les solutions ne sont pas dupliquées dans les entités en sortie). En conséquence, lorsque vous sélectionnez BOTH pour le paramètre Les plus ou les moins similaires, le nombre maximal de résultats possibles (Nombre de résultats) correspond à la moitié du nombre d'entités candidates. Lorsque vous entrez une valeur Nombre de résultats qui est trop élevée, l'outil l'ajuste sur la valeur maximale possible.
Dans le but d'explorer le modèle spatial de similarité, vous pouvez être amené à classer la similarité de toutes les entités candidates. Pour indiquer que vous souhaitez classer toutes les entités candidates, saisissez un très grand nombre (égal ou supérieur au nombre d'entités candidates) pour le paramètre Nombre de résultats. L'outil détermine ensuite le nombre d'entités valides dans le jeu de données des entités candidates et les inscrit toutes dans les entités en sortie en les classant des plus similaires aux moins similaires.
Pour le paramètre Méthode d'appariement, vous pouvez sélectionner ATTRIBUTE_VALUES, RANKED_ATTRIBUTE_VALUES ou ATTRIBUTE_PROFILES.
- Pour ATTRIBUTE_VALUES, les candidats les plus similaires auront la plus petite somme des différences au carré pour tous les attributs d'intérêt. Toutes les valeurs sont standardisées avant le calcul des différences.
- Pour RANKED_ATTRIBUTE_VALUES, les candidats les plus similaires auront la plus petite somme des classements au carré pour tous les attributs d'intérêt. Les entités en sortie rendent compte de ces sommes dans le champ SIMINDEX (Somme des différences de classement au carré).
- Pour ATTRIBUTE_PROFILES, la similarité cosinusoïdale est mesurée. La similarité cosinusoïdale recherche les relations identiques parmi les valeurs attributaires standardisées au lieu de se préoccuper de l'appariement des amplitudes des attributs. Supposons que nous ayons quatre attributs d'intérêt nommés A1, A2, A3 et A4. A2 est deux fois plus grand que A1, A3 est presque égal à A2 et A4 est trois fois plus grand que A3. Pour la méthode d'appariement ATTRIBUTE_PROFILES, l'outil va rechercher les candidats présentant les mêmes relations attributaires : deux fois plus grand, puis presque égal, enfin trois fois plus grand. Comme cette méthode recherche des relations attributaires, vous devez spécifier un minimum de deux attributs d'intérêt. Vous pouvez utiliser la méthode de similarité cosinusoïdale (ATTRIBUTE_PROFILES) pour rechercher des lieux, tels que Los Angeles, mais à une échelle globale moindre. L'index de similarité cosinusoïdale s'étend de 1,0 (similarité parfaite) à -1,0 (dissemblance parfaite). L'index de similarité cosinusoïdale est indiqué dans le champ SIMINDEX (Similarité cosinusoïdale) des entités en sortie.
Les attributs d'intérêt doivent être numériques et être présents (même nom de champ et même type de champ) à la fois dans les jeux de données Entités en entrée à apparier et Entités candidates. Pour le paramètre Attributs d'intérêt, l'outil répertorie tous les champs numériques trouvés dans le jeu de données Entités en entrée à apparier. Si l'outil ne trouve aucun champ correspond pour les entités candidates, un avertissement indiquant que les attributs manquants ont été ignorés dans l'analyse apparaît. Si tous les attributs d'intérêt sont ignorés, l'outil ne dispose d'aucun élément pour l'appariement et un message d'erreur indiquant que l'outil ne peut pas réaliser l'analyse apparaît.
Tous les attributs utilisés pour l'appariement sont inscrits dans les entités en sortie. Le paramètre Champs à ajouter à la sortie vous permet d'inclure d'autres champs dans la table en sortie, si vous le souhaitez. Comme les champs numériques Attributs d'intérêt ne sont probablement pas des identifiants efficaces, vous pouvez ajouter un nom ou un autre champ d'identification pour chaque solution. Si vous devez choisir entre plusieurs solutions, vous pouvez également ajouter d'autres attributs non numériques. Si la solution que vous recherchez doit être un type d'utilisation du sol parmi plusieurs, l'ajout d'un attribut d'utilisation du sol catégoriel vous aidera par exemple à affiner les solutions qui répondent à ce critère. Vous pouvez parfois inclure des attributs numériques supplémentaires dans la table en sortie afin de les utiliser en référence uniquement. Supposons, par exemple, que vous recherchiez un habitat propice à une espèce animale en particulier. Vous pouvez utiliser les endroits connus comme étant appréciés de l'espèce pour le jeu de données Entités en entrée à apparier. Vous pouvez sélectionner les attributs d'intérêt qui ont trait au bien-être de l'espèce. Vous pouvez en outre ajouter un attribut de superficie numérique dans les entités en sortie, non pas parce que vous souhaitez réaliser l'appariement en fonction de la superficie de la cible, mais parce que votre finalité est de rechercher des solutions avec la plus grande superficie possible.
Toutes les entités en entrée à apparier et les solutions sont inscrites dans les entités en sortie avec les attributs d'intérêt et les champs à ajouter à la sortie. De plus, les champs suivants sont inclus dans les entités en sortie :
Nom de champ
Alias du champ
Description
Remarques
MATCH_ID
MATCH_ID
Toutes les entités cibles de la couche Entités en entrée à apparier sont répertoriées en premier avec leur identifiant OID ou FID inscrit dans le champ MATCH_ID. Les solutions ont des valeurs NULL pour ce champ.
Lorsque les entités en sortie sont un fichier de formes, les valeurs NULL sont représentées par un nombre négatif très important (par exemple, -21474836).
CAND_ID
CAND_ID
Toutes les solutions sont ensuite répertoriées et cette valeur est leur identifiant OID ou FID. Les entités cibles dans la couche Entités en entrée à apparier ont des valeurs NULL pour ce champ.
Lorsque les entités en sortie sont un fichier de formes, les valeurs NULL sont représentées par un nombre négatif très important (par exemple, -21474836).
SIMRANK
Classement de similarité
Lorsque vous sélectionnez MOST_SIMILAR ou BOTH pour le paramètre Méthode d'appariement, toutes les solutions sont classées des plus similaires aux moins similaires. La valeur de classement de la solution la plus similaire est de 1.
Ce champ est inclus uniquement dans les entités en sortie lorsque vous sélectionnez MOST_SIMILAR ou BOTH pour le paramètre Méthode d'appariement.
DSIMRANK
Classement de dissemblance
Lorsque vous sélectionnez LEAST_SIMILAR ou BOTH pour le paramètre Méthode d'appariement, toutes les solutions sont classées des moins similaires aux plus similaires. La valeur de classement de la solution la moins similaire est de 1.
Ce champ est inclus uniquement dans les entités en sortie lorsque vous sélectionnez LEAST_SIMILAR ou BOTH pour le paramètre Méthode d'appariement.
SIMINDEX
Somme des différences de valeurs au carré, Somme des différences de classement au carré ou Similarité cosinusoïdale
Ce champ quantifie la similarité de chaque solution par rapport à l'entité cible.
- Lorsque vous spécifiez ATTRIBUTE_VALUES comme méthode d'appariement, l'alias de champ est Sum of Squared Value Differences.
- Lorsque vous spécifiez RANKED_ATTRIBUTE_VALUES comme méthode d'appariement, l'alias de champ est Sum of Squared Rank Differences.
- Lorsque vous spécifiez ATTRIBUTE_PROFILES comme méthode d'appariement, l'alias de champ est Cosine Similarity.
Si une seule entité en entrée à apparier est présente, l'entité cible est cette entité. Si plusieurs entités en entrée à apparier sont spécifiées, l'entité cible est l'entité temporaire créée avec les valeurs moyennes de tous les attributs d'intérêt.
LABELRANK
Classement de rendu
Ce champ est fourni uniquement à des fins d'affichage. L'outil utilise ce champ pour fournir le rendu par défaut des résultats d'analyse.
-
Lorsque l'outil s'exécute dans ArcMap, les entités en sortie sont ajoutées automatiquement à la table des matières et le rendu par défaut est appliqué au champ LABELRANK. Le rendu appliqué est défini par un fichier de couche dans <ArcGIS>/Desktop10.x/ArcToolbox/Templates/Layers. Vous pouvez appliquer à nouveau le rendu par défaut, si nécessaire, en important la symbologie des couches modèle.
Remarque :La taille d'échantillonnage par défaut est de 10 000 enregistrements. Lorsque le nombre de résultats est supérieur à cette valeur par défaut, vous pouvez augmenter la taille d'échantillonnage pour rendre tous les résultats.
Syntaxe
Paramètre | Explication | Type de données |
Input_Features_To_Match |
La couche (ou une sélection sur une couche) contenant les entités que vous voulez apparier. Vous recherchez d'autres entités ressemblant à ces entités. Lorsque plusieurs entités sont fournies, l'appariement repose sur la moyenne des attributs. Astuce : lorsque vos entités en entrée à apparier et vos entités candidates proviennent un seul jeu de données, procédez comme suit.
| Feature Layer |
Candidate_Features |
La couche (ou une sélection sur une couche) contenant les entités correspondant aux entités candidates. L'outil recherche les entités les plus semblables (ou les plus dissemblables) aux entités en entrée à apparier parmi ces candidates. Astuce : lorsque vos entités en entrée à apparier et vos entités candidates proviennent un seul jeu de données, procédez comme suit.
| Feature Layer |
Output_Features |
La classe d'entités en sortie contient un enregistrement pour chacune des entités en entrée à apparier et pour toutes les solutions trouvées. | Feature Class |
Collapse_Output_To_Points | Indiquez si vous voulez que la géométrie des entités en sortie (Output_Features) soit des points ou qu'elle corresponde à la géométrie (lignes ou polygones) des entités en entrée. Cette option est disponible uniquement lorsque Input_Features_To_Match et Candidate_Features sont des lignes ou des polygones. Vous pouvez optimiser les performances de l'outil en choisissant COLLAPSE pour les jeux de données lignes ou polygones volumineux.
| Boolean |
Most_Or_Least_Similar |
Choisissez si vous préférez vous concentrer sur les entités les plus proches ou les plus différentes des entités en entrée à apparier.
| String |
Match_Method |
Choisissez si l'appariement doit reposer sur des valeurs, des classements ou des relations cosinusoïdales.
| String |
Number_Of_Results |
Le nombre de solutions à rechercher. Astuce : pour classer la similarité pour toutes les entités candidates, vous pouvez entrer un très grand nombre (égal ou supérieur au nombre réel d'entités candidates). | Long |
Attributes_Of_Interest [field,...] |
Une liste d'attributs numériques représentant les critères d'appariement. | Field |
Fields_To_Append_To_Output [field,...] (Facultatif) |
Une liste facultative d'attributs à inclure avec les entités en sortie. Vous pouvez inclure un identifiant de nom, un champ de catégorie ou un champ de date, par exemple. Ces champs ne sont pas utilisés pour déterminer la similarité. Ils sont inclus uniquement dans les entités en sortie pour référence. | Field |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil SimilaritySearch.
import arcpy
import arcpy.stats as SS
arcpy.env.workspace = r"C:\Analysis"
SS.SimilaritySearch ("Crime_selection", "AllCrime", "c:\\Analysis\\CrimeMatches",
"NO_COLLAPSE", "MOST_SIMILAR", "ATTRIBUTE_VALUES", 4,
"HEIGHT;WEIGHT;SEVERITY;DST2CHPSHP", "Name;WEAPON")
Le script Python autonome ci-dessous illustre l'utilisation de l'outil SimilaritySearch.
# Similarity Search of crime data in a metropolitan area
# Import system modules
import arcpy, os
import arcpy.stats as SS
# Set geoprocessor object property to overwrite existing output
arcpy.gp.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:\Analysis"
# Make a layer from the crime feature class
arcpy.MakeFeatureLayer_management("AllCrime", "Crime_selection")
# Select the target crime to match
# Process: Select By Attribute
arcpy.SelectLayerByAttribute_management("Crime_selection","NEW_SELECTION",
'"OBJECTID" = 1230043')
# Use Similarity Search to find to create groups based on different variables
# or analysis fields
# Process: Group Similar Features
SS.SimilaritySearch("Crime_selection","AllCrime","CJMatches","NO_COLLAPSE",
"MOST_SIMILAR","ATTRIBUTE_VALUES",4,
"HEIGHT;WEIGHT;SEVERITY;DST2CHPSHP","Name;WEAPON")
except:
# If an error occurred when running the tool, print out the error message.
print arcpy.GetMessages()