Поиск сходства (Пространственная статистика)
Краткая информация
Определяет, какой из объектов-кандидатов имеет наибольшее сходство или наибольшее различие с одним или несколькими входными объектами на основе их атрибутов.
Более подробно о том, как работает инструмент Поиск сходства
Рисунок
![Поиск сходства Поиск сходства](005p/GUID-18325B28-DFDA-4F87-B6A9-AD56A9C6A227-web.png)
Использование
-
Следует указать слой, содержащий Входные объекты для сопоставления (Input Features To Match) и второй слой, содержащий Объекты-кандидаты (Candidate Features), по которым будет проводится сопоставление. Часто Входные объекты для сопоставления (Input Features To Match) и Объекты-кандидаты (Candidate Features) находятся на одном слое. Хотя имеется опция для создания двух отдельных наборов данных, так делать не следует. Вместо этого значительно легче создать слои с двумя разными выбранными наборами. Предположим у вас есть файл со всеми преступлениями за прошедший месяц. Если вы хотите найти все преступления, похожие на последние угоны машин, то
- Используя стандартные инструменты выборки ArcMap или инструменты геообработки, выберите запись последнего угона на слое всех преступлений.
- Щелкните слой с выборкой правой кнопкой мыши, затем щелкните Выборка (Selection) > Создать слой из выбранных объектов (Create Layer From Selected Features). Используйте этот новый слой для параметра Входные объекты для сопоставления (Input Features To Match).
- Переключите выборку в слое со всеми преступлениями. Используйте этот слой для параметра Объекты-кандидаты (Candidate Features).
Внимание:
Обычная ошибка – когда все входные данные поступают из одного набора данных, часто забывают переключить выборку, и Входные объекты для сопоставления (Input Features To Match) оказываются теми же объектами, что и Объекты-кандидаты (Candidate Features). Вряд ли это то, что вам необходимо. Чаще всего используется один Входной объект для сопоставления (Input Features To Match) и несколько Объектов-кандидатов (Candidate Features).
Если Входных объектов для сопоставления (Input Features To Match) несколько, сопоставление проводится по средним значениям Атрибутов интереса (Attributes of Interest). Поэтому, например, если у вас есть два Входных объекта для сопоставления (Input Features To Match) и один из Атрибутов интереса (Attributes of Interest) является численностью населения, инструмент будет искать Объекты-кандидаты (Candidate Features) с населением, наиболее соответствующим среднему значению. Если значения населения равны 100 и 102, например, инструмент будет искать кандидатов со значением около 101.
Примечание:
Если у вас есть более одного Входного объекта для сопоставления (Input Features To Match), вы захотите выбрать Атрибуты интереса (Attributes of Interest), у которых есть схожие значения. Если, например, первый объект имеет значение населения 100, а другой – 100 000 жителей, инструмент возьмет среднее от этих значений и будет искать кандидатов с населением около 50050. Обратите внимание, что это среднее значение не такое же, как численность населения любого из Входных объектов для сопоставления ((Input Features To Match).
Выходные объекты (Output Features) всегда будут содержать точки, если только Входные объекты для сопоставления (Input Features To Match) и Объекты-кандидаты (Candidate Features) оба не будут полигональными или полилинейными. Создание полигональных или полилинейных Выходных объектов (Output Features) может снизить производительность при работе с большими наборами данных, поэтому вы можете включить опцию Сократить выходные данные до точек (Collapse Output To Points), чтобы повысить производительность путем создания точек.
С помощью параметра Наибольшее или наименьшее сходство (Most Or Least Similar) можно искать объекты с MOST_SIMILAR или LEAST_SIMILAR по сравнению с Входными объектами сопоставления (Input Features To Match). В некоторых случаях вам может понадобиться увидеть оба крайних значения диапазона. Если вы введете 3 для параметра Число результатов (Number Of Results) и BOTH для параметра Наибольшее или наименьшее сходство (Most Or Least Similar), например, инструмент вернет три наиболее сходных и три наименее сходных объекта-кандидата.
Любое данное решение соответствия в Выходных объектах (Output Features) будет либо решением наибольшего сходства, либо, по крайней мере, похожим на целевые Входные объекты для сопоставления (Input Features To Match); одно решение не может быть тем и другим (и результаты решения не будут дублироваться в Выходных объектах (Output Features)). Соответственно, когда вы выбираете BOTH для параметра Наибольшее или наименьшее сходство (Most Or Least Similar), максимально возможное число сопоставленных результатов (Число результатов (Number of Results)) будет равно половине Объектов-кандидатов (Candidate Features). Если вы вводите слишком большое значение Числа результатов (Number of Results), инструмент изменит его на максимально возможное.
Иногда, для изучения пространственных закономерностей сходности, вам может потребоваться определить сходство для всех Объектов-кандидатов (Candidate Features). Простой способ указать, что вы хотите вычислить все Объекты-кандидаты (Candidate Features) – ввести очень большое число (равное или большее, чем число Объектов-кандидатов (Candidate Features)) для параметра Число результатов (Number of Results). Инструмент определит число подходящих объектов в наборе данных кандидатов и запишет их всех в Выходные объекты (Output Features) в порядке убывания сходности.
Для параметра Метод сопоставления (Match Method) можно выбрать ATTRIBUTE_VALUES, RANKED_ATTRIBUTE_VALUES или ATTRIBUTE_PROFILES.
- При выборе ATTRIBUTE_VALUES наиболее сходные кандидаты имеют наименьшую сумму квадратов разницы для всех Атрибутов интереса (Attributes of Interest); все значения стандартизуются перед вычислением различий.
- При выборе RANKED_ATTRIBUTE_VALUES наиболее сходные кандидаты имеют наименьшую сумму квадратов рангов для всех Атрибутов интереса (Attributes of Interest). Выходные объекты (Output Features) представляют эти суммы в поле SIMINDEX.
- При выборе ATTRIBUTE_PROFILES вычисляется косинусный коэффициент подобия. Косинусный коэффициент подобия определяет те же связи среди стандартизованных значений атрибутов, а не пытается сопоставить значения. Предположим, имеется четыре Атрибута интереса (Attributes of Interest), A1, A2, A3 и A4, и что A2 вдвое больше A1, A3 почти равен A2, а A4 в три раза больше A3. При выборе ATTRIBUTE_PROFILES для Метода сопоставления (Match Method) инструмент будет искать кандидатов с теми же атрибутивными соотношениями: вдвое больше, почти равно, затем в три раза больше. Поскольку этот метод определяет отношения между атрибутами, для него необходимо указать минимум два Атрибута интереса (Attributes of Interest). Вы можете использовать метод сходства по косинусу (ATTRIBUTE_PROFILES) для поиска мест, таких как Лос-Анджелес, но в меньшем масштабе. Косинусный коэффициент подобия может иметь значения от 1.0 (полное сходство) до -1.0 (полное различие). Значение косинусного коэффициента подобия записывается в Выходные объекты (Output Features) в поле SIMINDEX.
Атрибуты интереса (Attributes of Interest) должны быть числовыми и присутствовать (то же имя и тот же тип поля) в обоих наборах данных Входные объекты для сопоставления (Input Features To Match) и Объекты-кандидаты (Candidate Features). При выборе параметра Атрибуты интереса (Attributes of Interest) инструмент перечислит все числовые поля, найденные в наборе данных Входные объекты для сопоставления (Input Features To Match). Если инструмент не находит соответствующие поля в Объектах-кандидатах (Candidate Features), вы увидите предупреждение, что отсутствующие атрибуты не будут участвовать в анализе. Если все Атрибуты интереса (Attributes of Interest) исключены, инструмент ничего не может использовать для сопоставления, и вы увидите сообщение об ошибке, предупреждающее, что инструмент не может выполнить анализ.
Все атрибуты, использованные для сопоставления, записываются в Выходные объекты (Output Features). Параметр Поля для присоединения к выходным данным (Fields To Append To Output) позволяет включить в выходную таблицу другие поля, если необходимо. Поскольку числовые поля Атрибутов интереса (Attributes of Interest) являются не слишком удобными идентификаторами, может потребоваться присоединить имя или другое идентифицирующее поле для каждого найденного соответствия. Если необходимо выбрать одно из нескольких решений, вы также можете присоединить другие, не числовые атрибуты. Если решением должен быть один из нескольких типов землепользования, например, присоединение категорийного атрибута землепользования поможет выработать решение, соответствующее этому требованию. Иногда бывает необходимо включить дополнительные числовые атрибуты в выходную таблицу, для справки. Предположим, например, вы ищите подходящее местообитание для определенного животного. Вы можете использовать известные местообитания этих видов в качестве Входных объектов для сопоставления (Input Features To Match). Вы можете выбрать Атрибуты интереса (Attributes of Interest), относящиеся к удобному местообитанию вида. Кроме того, вы можете присоединить числовой атрибут площади к Выходным объектам (Output Features), не потому, что вы хотите сопоставить площадь целевой области, а потому, что ищите решения с максимально возможной площадью.
Все Входные объекты для сопоставления (Input Features To Match) и итоги сопоставления записываются в Выходные объекты (Output Features) вместе с Атрибутами интереса (Attributes Of Interest) и Полями для присоединения к выходным данным (Fields To Append To Output). Кроме того, в Выходные объекты (Output Features) будут добавлены следующие поля:
Имя поля
Псевдоним поля
Описание
Примечания
MATCH_ID
MATCH_ID
Все целевые объекты слоя Входные объекты для сопоставления (Input Features To Match) сначала перечисляются с идентификаторами OID или FID, записываемыми в поле MATCH_ID. Для найденных сопоставлений в этом поле указывается значение NULL.
Если Выходные объекты (Output Features) являются шейп-файлом, значения NULL представлены большим отрицательным числом (например, -21474836).
CAND_ID
CAND_ID
Все решения для сопоставления записываются рядом, а это значение становится их OID или FID идентификатором. Целевой объект в слое Входные объекты для сопоставления (Input Features To Match) в этом поле имеет значение NULL.
Если Выходные объекты (Output Features) являются шейп-файлом, значения NULL представлены большим отрицательным числом (например, -21474836).
SIMRANK
Ранг сходства
Когда вы выбираете значение MOST_SIMILAR или BOTH для параметра Метод сопоставления (Match Method), все найденные решения ранжируются от наиболее сходных до наименее сходных. Наиболее сходное решение получает значение ранга 1.
Это поле включается в Выходные объекты (Output Features), когда вы выбираете MOST_SIMILAR или BOTH для параметра Метод сопоставления (Match Method).
DSIMRANK
Ранг различия
Когда вы выбираете значение LEAST_SIMILAR или BOTH для параметра Метод сопоставления (Match Method), все найденные решения получают ранг от наименее сходных до наиболее сходных. Наименее сходное решение получает значение ранга 1.
Это поле включается в Выходные объекты (Output Features), когда вы выбираете LEAST_SIMILAR или BOTH для параметра Метод сопоставления (Match Method).
SIMINDEX
Сумма квадратов значений различия, Сумма квадратов различий ранга или Сходство по косинусу
В этом поле определяется количественное значение сходства с целевым объектом.
- Когда вы выбираете ATTRIBUTE_VALUES для Метода сопоставления (Match Method), псевдоним поля имеет вид Sum of Squared Value Differences.
- Когда вы выбираете RANKED_ATTRIBUTE_VALUES для Метода сопоставления (Match Method), псевдоним поля имеет вид Sum of Squared Rank Differences.
- Когда вы выбираете ATTRIBUTE_PROFILES для Метода сопоставления (Match Method), псевдоним поля имеет вид Cosine Similarity.
Если имеется только один Входной объект для сопоставления (Input Features To Match), он и является целевым объектом. Если имеется более одного Входного объекта для сопоставления (Input Features To Match), целевым объектом является временный объект, созданный с усредненными значениями всех Атрибутов интереса (Attributes Of Interest).
LABELRANK
Ранг отображения
Это поле используется только для целей отображения. Инструмент использует это поле для задания метода отображения результатов анализа по умолчанию.
-
При запуске инструмента в ArcMap, Выходные объекты (Output Features) автоматически добавляются к таблице содержания с методом отображения по умолчанию, примененным к полю LABELRANK. Применяемое отображение определяется файлом слоя в <ArcGIS>/Desktop10.x/ArcToolbox/Templates/Layers. Метод отображения по умолчанию, если это необходимо, можно применить заново путем импорта символов слоя шаблона.
Примечание:
По умолчанию размер выборки равен 10 000 записям. Если Число результатов (Number Of Results) больше этого значения, следует увеличить размер выборки, чтобы отобразить все результаты.
Синтаксис
Параметр | Объяснение | Тип данных |
Input_Features_To_Match |
Слой (или выборка слоя), содержащий объекты, которые вы хотите сопоставить; вы ищите другие объекты, которые выглядят так же, как эти. Если указано более одного объекта, сопоставление основывается на средних значениях атрибутов. Подсказка: если Входные объекты для сопоставления (Input Features To Match) и Объекты-кандидаты (Candidate Features) берутся из одного набора данных,
| Feature Layer |
Candidate_Features |
Слой (или выборка на слое), содержащий объекты-кандидаты. Инструмент будет искать среди этих кандидатов объекты с наибольшим сходством (или наибольшим различием) с Входными объектами для сопоставления (Input Features To Match). Подсказка: если Входные объекты для сопоставления (Input Features To Match) и Объекты-кандидаты (Candidate Features) берутся из одного набора данных,
| Feature Layer |
Output_Features |
Выходной класс объектов содержит запись для каждого из Входных объектов для сопоставления (Input Features To Match) и для всех найденных объектов. | Feature Class |
Collapse_Output_To_Points | Укажите тип геометрии для Output_Features как точки или в соответствии с геометрией входных объектов (линии или полигоны). Эта опция доступна только если Input_Features_To_Match и Candidate_Features оба являются линейными или полигональными. Включение опции COLLAPSE на больших линейных или полигональных наборах данных повышает производительность.
| Boolean |
Most_Or_Least_Similar |
Выберите, нужны ли вам объекты с наибольшим или наименьшим сходством с Входными объектами для сопоставления (Input Features To Match).
| String |
Match_Method |
Выберите, будет ли сопоставление основываться на значениях, рангах или отношениях между косинусами.
| String |
Number_Of_Results |
Число сопоставлений для поиска. Подсказка: чтобы ранжировать сходство для всех Объектов-кандидатов (Candidate Features), можно ввести очень большое число (равное или большее, чем реальное число кандидатов). | Long |
Attributes_Of_Interest [field,...] |
Список числовых атрибутов, отображающий критерии соответствия. | Field |
Fields_To_Append_To_Output [field,...] (дополнительно) |
Дополнительный список атрибутов для включения вместе с Выходными объектами (Output Features). Вам может потребоваться включить идентификатор имени, категорийное поле или поле даты, например. Эти поля не используются для определения сходства, они только включается в Выходные объекты (Output Features) для справки. | Field |
Пример кода
В следующем скрипте Python показано применение инструмента 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")
Следующий автономный скрипт Python демонстрирует, как использовать инструмент 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()