Многофакторная кластеризация (Пространственная статистика)

Сводка

Находит естественные кластеры объектов исключительно на основе их атрибутивных значениях.

Подробнее о том, как работает инструмент Многофакторная кластеризация

Иллюстрация

Диаграмма инструмента Многофакторная кластеризация

Использование

  • Этот инструмент создает класс выходных объектов с полями, используемыми в анализе, а также целочисленным полем CLUSTER_ID. Отображение по умолчанию основано на поле CLUSTER_ID, оно показывает, к какому кластеру относится каждый объект. Если вы указали, что требуется три кластера, каждая запись будет содержать значение 1, 2 или 3 в поле CLUSTER_ID. В выходном классе объектов также будет содержаться бинарное поле IS_SEED. Поле IS_SEED указывает, какие объекты использовались как начальные точки для подбора групп. Число ненулевых значений в поле IS_SEED будет совпадать со значением, введенным для параметра Число кластеров.

  • Входными объектами могут быть, точки, линии или полигоны.

  • Этот инструмент создает сообщения и диаграммы, которые помогают понять характеристики найденных кластеров. Вы можете получить доступ к сообщениям, переместив курсор мыши на индикатор выполнения, щелкнув на всплывающую кнопку или развернув раздел Просмотреть детали в панели Геообработка. Вы также можете получить доступ к сообщениям для предыдущего запуска инструмента Многомерная кластеризация через историю геообработки. Созданные диаграммы можно открыть с помощью панели Содержание.

  • Дополнительные сведения о выходных сообщениях и диаграммах см. в разделе Как работает инструмент Многофакторная кластеризация.

  • Поля анализа должны быть числовыми и содержать различные значения. Поля без вариации (т. е. с такими же или близкими значениями для каждой записи) будут исключены из анализа, но будут включены в Выходные объекты. Поля категорий можно использовать с инструментом Многофакторная кластеризация, если они представлены как числовые бинарные переменные (значение один для всех объектов категории и ноль для всех других объектов).

  • Инструмент Многофакторная кластеризация создает не пространственные кластеры. Для некоторых приложений следует применять к создаваемым кластерам требования непрерывности или другие требования близости. В этих случаях, можно использовать инструмент Пространственно-ограниченная многофакторная кластеризация для создания кластеров, непрерывных в пространстве.

  • Хотя существует тенденция для включения максимально возможного числа полей анализа, при использовании этого инструмента лучше начать с одной переменной, а затем добавлять дополнительные. Результаты намного легче интерпретировать при меньшем числе полей анализа. Также легче определить, какие переменные лучше разделяют группы при меньшем количестве полей.

  • У Метода инициализации есть три опции: Оптимизированные местоположения начальных объектов, Пользовательские местоположения начальных объектов и Случайные местоположения начальных объектов. Начальные объекты - это объекты, вокруг которых растут отдельные кластеры. Если, например, ввести значение 3 для параметра Чисо кластеров, анализ начнется с трех начальных объектов. Опция по умолчанию Оптимизированные местоположения начальных значений случайным образом выбирает первый начальный объект, а последующие начальные объекты находятся далеко друг от друга в пространстве данных (по атрибутивным значениям). Выбор начальных значений, которые формируют разные области пространства данных, улучшает производительность. Иногда вы знаете, что определенные объекты отражают характеристики, которые должны быть представлены разными кластерами. В этом случае вы можете указать эти местоположения, создав поле начальных значений, чтобы идентифицировать эти объекты. Создаваемое поле начального значения должно содержать нули для всех объектов, кроме изначальных, для которых должно быть указано значение 1. Затем выберите Пользовательские местоположения начальных объектов для параметра Метод инициализации. Если вы хотите выполнить анализ чувствительности, чтобы узнать, какие объекты всегда будут в одном кластере, выберите опцию Случайные местоположения начальных объектов для параметра Метод инициализации. С этой опцией все начальные объекты выбираются случайным образом.

    Примечание:

    При использовании произвольных начальных чисел вы можете выбрать начальное число для запуска генератора случайных чисел в разделе Генератор случайных чисел диалогового окна Параметры среды. Тем не менее в этом инструменте поддерживается только один тип генератора случайных чисел – Mersenne Twister.

  • Любые значения 1 в поле инициализации будут интерпретироваться как начальные. Если вы решили указать местоположения начальных объектов, параметр Число кластеров будет отключен, а инструмент найдет столько же кластеров, сколько ненулевых значений в Поле инициализации.

  • Иногда вы знаете, какое Число кластеров лучше всего подходит для ваших данных. Если это не так, можно попробовать различные количества кластеров, отмечая, какие значения обеспечивают наилучшую дифференциацию кластеров. Если оставить параметр Число кластеров пустым, инструмент оценит оптимальное число кластеров, вычислив псевдо F-статистику для решения кластеризации с числом кластеров от 2 до 30, и выведет оптимальное число кластеров в окне сообщения. Когда вы задаете дополнительную Выходную таблицу для оценки числа кластеров, создается диаграмма, показывающая значения псевдо F-статистики для решений с числом кластеров от 2 до 30. Самые большие значения псевдо-F-статистики указывают решения, которые улучшают поиск сходств внутри кластеров и отличий между кластерами. Если других критериев для параметра Число кластеров нет, используйте число, связанное с одним из самых больших значений псевдо-F-статистики. Диаграмма псевдо F-статистики для поиска оптимального числа кластеров

  • Инструмент использует алгоритм K-Means или K-Medoids для распределения объектов по кластерам. Если выбрано Случайные местоположения начальных объектов в качестве Метода инициализации, в алгоритме используется эвристический анализ и при каждом запуске инструмента результаты могут быть разными (даже при использовании одинаковых данных и параметров). Это происходит, потому что случайный компонент применяется для поиска начальных объектов, используемых для создания кластеров. Из-за этого эвристического решения, определение оптимального числа кластеров становится более сложным, а псевдо F-статистика может различаться при каждом запуске инструмента из-за выбора разных начальных объектов. Если в данных есть четкая закономерность, решения при последовательном запуске инструмента будут более согласованными. Следовательно, чтобы точнее определить оптимальное число кластеров, в диапазоне от 2 до 30, инструмент делает 10 повторов и использует наибольшие значения псевдо F-статистики.

  • Алгоритмы K means и K medoids являются популярными методами кластеризации и, в целом, создают похожие результаты. Однако, K medoids более устойчив к шуму и выбросам во Входных объектах. K means обычно быстрее, чем K medoids, его лучше применять в большим наборам данных.

  • Число кластеров, назначенных набору объектов, может измениться после запуска инструмента. Например, предположим, что вы разбиваете объекты на два кластера на основе переменной дохода. При первом запуске анализа вы можете видеть, что объекты с высоким доходом обозначены как кластер 2, а объекты с низким - как кластер 1; при повторном запуске этого же анализа, объекты с высоким доходом могут быть обозначены как кластер 1. Вы также можете увидеть, что некоторые объекты со средним доходом переходят из одного кластера в другой.

Синтаксис

arcpy.stats.MultivariateClustering(in_features, output_features, analysis_fields, {clustering_method}, {initialization_method}, {initialization_field}, {number_of_clusters}, {output_table})
ParameterОбъяснениеТип данных
in_features

Класс или слой объектов, для которого требуется создать кластеры.

Feature Layer
output_features

Новый выходной класс объектов, содержащий все объекты, указанные поля анализа и поле, указывающее, какому кластеру принадлежит объект.

Feature Class
analysis_fields
[analysis_field,...]

Список полей, которые будут использоваться для различения кластеров между собой.

Field
clustering_method
(Дополнительный)

Используемый алгоритм кластеризации. K_MEANS используется по умолчанию.

Алгоритмы K_MEANS и K_MEDOIDS являются популярными методами кластеризации и, в целом, создают похожие результаты. Однако, K_MEDOIDS более устойчив к шуму и выбросам во in_features. K_MEANS обычно быстрее, чем K_MEDOIDS, его лучше применять в большим наборам данных.

  • K_MEANSin_features будут кластеризованы с помощью алгоритма K-Means. Используется по умолчанию.
  • K_MEDOIDSВходные объекты будут кластеризованы с помощью алгоритма K-Medoids.
String
initialization_method
(Дополнительный)

Задает способ получения начальных объектов, вокруг которых нарастают кластеры. Если требуется три кластера, анализ начнется с трех начальных объектов.

  • OPTIMIZED_SEED_LOCATIONSНачальные объекты выбираются для оптимизации результатов анализа и повышения производительности. Используется по умолчанию.
  • USER_DEFINED_SEED_LOCATIONSНенулевые записи в initialization_field будут использоваться как начальные точки для наращивания кластеров.
  • RANDOM_SEED_LOCATIONSНачальные объекты выбираются случайным образом.
String
initialization_field
(Дополнительный)

Числовое поле, определяющее начальные объекты. Объекты, со значением 1 в этом поле, используются для создания групп. Все остальные объекты должны содержать 0.

Field
number_of_clusters
(Дополнительный)

Число создаваемых кластеров. Если оставить этот параметр пустым, инструмент оценит оптимальное число кластеров, вычислив псевдо F-статистику для решения кластеризации с числом кластеров от 2 до 30.

Этот параметр отключается, если в поле инициализации указаны местоположения начальных объектов.

Long
output_table
(Дополнительный)

Если задано, создается таблица, содержащая псевдо F-статистику для решений кластеризации с числом кластеров от 2 до 30, вычисленную для определения оптимального числа кластеров. Диаграмма, созданная на основе этой таблицы, доступна в разделе автономных таблиц панели Содержание.

Table

Пример кода

MultivariateClustering, пример 1 (окно Python)

В следующем скрипте окна Python показано, как используется инструмент 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")
MultivariateClustering, пример 2 (автономный скрипт)

Следующий автономный Python скрипт демонстрирует, как использовать инструмент 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())

Environments

Выходная система координат

До начала анализа геометрия пространственных объектов проецируется в Выходную систему координат. Во всех математических вычислениях учитывается пространственная привязка Выходной системы координат. Если выходная система координат выражена в градусах, минутах и секундах, то геодезические расстояния рассчитываются с помощью хордовых расстояний.

Генератор случайных чисел

В качестве генератора случайных чисел всегда используется Mersenne Twister.

Информация о лицензиях

  • Basic: Да
  • Standard: Да
  • Advanced: Да

Связанные разделы