Уменьшение измерений (Пространственная статистика)

Краткая информация

Уменьшает количество измерений набора непрерывных переменных за счет агрегирования максимально возможной дисперсии в меньшее количество компонентов с помощью Анализа по методу главных компонент (PCA) или Линейного дискриминантного анализа с пониженным рангом (LDA).

Переменные указываются как поля во входной таблице или векторном слое, а новые поля, представляющие новые переменные, сохраняются в выходной таблице или классе пространственных объектов. Количество новых полей будет меньше, чем количество исходных переменных, при этом сохранится максимально возможная вариабельность всех исходных переменных. Уменьшение измерений обычно используется для изучения многомерных отношений между переменными и для уменьшения вычислительных затрат алгоритмов машинного обучения, в которых требуемая память и время обработки зависят от количества измерений данных. Использование компонентов вместо исходных данных в алгоритмах анализа или машинного обучения часто может обеспечить сопоставимые (или лучшие) результаты при меньшем потреблении вычислительных ресурсов.

Более подробно о том, как работает инструмент Уменьшение измерений

Иллюстрация

Иллюстрация инструмента Уменьшение измерений
Восемь переменных сводятся к трем компонентам.

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

  • В параметре Поля анализа должно быть указано как минимум два числовых поля, поскольку данные должны иметь как минимум два измерения, чтобы их можно было уменьшить.

  • Есть два варианта параметра Метод Уменьшения измерений:

    • Анализ по методу главных компонент (PCA) – этот метод последовательно строит компоненты, каждый из которых фиксирует максимально возможную общую дисперсию и корреляции между исходными переменными. Параметр Масштабировать данные можно использовать для масштабирования каждой исходной переменной, чтобы каждой переменной была задана одинаковая важность в главных компонентах. Если данные не масштабируются, переменные с большими значениями будут составлять большую часть общей дисперсии и будут чрезмерно представлены в первых нескольких компонентах. Этот метод рекомендуется, если вы собираетесь выполнить анализ или метод машинного обучения, в котором компоненты используются для прогнозирования значения непрерывной переменной.
    • Линейный дискриминантный анализ с пониженным рангом (LDA) – этот метод создает компоненты, которые максимизируют разделимость переменных анализа и различных уровней категориальной переменной, предоставленной в параметре Категориальное поле. Компоненты будут поддерживать максимально возможное различие между категориями, чтобы итоговые компоненты были наиболее эффективными при классификации каждой записи в одну из категорий. Этот метод автоматически масштабирует данные и рекомендуется в том случае, если вы собираетесь выполнить анализ или метод машинного обучения, в котором компоненты используются для классификации категории категориальной переменной.

  • Сообщения геообработки отображают процент и совокупный процент отклонения, поддерживаемый каждым компонентом.

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

    • Если один параметр указан, а другой нет, значение указанного параметра определяет количество компонентов. Количество компонентов будет равно наименьшему количеству, необходимому для удовлетворения указанного минимума.
    • Если указаны оба параметра, используется большее из двух результирующих чисел компонентов.
    • Если ни один параметр не указан, количество компонентов определяется с использованием нескольких статистических методов, и инструмент будет использовать наибольшее количество компонентов, оцененное каждым из методов. Для обоих методов уменьшения измерений используются Метод сломанной трости и Критерий сферичности Бартлетта. Для PCA проверка перестановки также выполняется, если значение параметра Число перестановок больше нуля.

    Информация о результатах каждого теста отображается в виде сообщений геообработки.

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

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

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

  • Число компонент не может быть больше числа записей входного набора.. Также записи с пустыми значениями в каком-либо поле анализа будут исключены из вычислений. Если много записей содержат пустые значения, число компонентов, указанное в параметре Минимальное число компонентов не может быть обработано, и инструмент не выполнится. В этом случае рекомендуется удалить из анализа поля с большим количеством пустых значений или предварительно заполнить пропущенные значения с помощью инструмента Заполнить пропущенные значения.

  • Для получения дополнительной информации о PCA и LDA см. следующую ссылку:

    • James, G., Witten, D., Hastie, T., Tibshirani, R. (2014). "An Introduction to Statistical Learning: with Applications in R." Springer Publishing Company, Incorporated. https://doi.org/10.1007/978-1-4614-7138-7

    Дополнительную информацию о методах определения количества компонентов см. следующую ссылку:

    • Peres-Neto, P., Jackson, D., Somers, K. (2005). "How many principal components? Stopping rules for determining the number of non-trivial axes revisited." Computational Statistics & Data Analysis. 49.4: 974-997. https://doi.org/10.1016/j.csda.2004.06.015.

Параметры

ПодписьОписаниеТип данных
Входная таблица или Объекты

Таблица или объекты, содержащие поля с измерением, которое будет уменьшено.

Table View
Выходная таблица или класс объектов
(Дополнительный)

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

Table
Поля анализа

Поля, представляющие данные, измерения которых будут уменьшены.

Field
Метод Уменьшение измерений
(Дополнительный)

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

  • Анализ по методу главных компонент (PCA)Поля анализа будут разделены на компоненты, каждый из которых поддерживает максимальную долю общей дисперсии. Это значение по умолчанию
  • Линейный дискриминантный анализ с пониженным рангом (LDA)Поля анализа будут разделены на компоненты, каждый из которых поддерживает максимальную разделимость категориальной переменной между категориями.
String
Масштабирование данных
(Дополнительный)

Определяет, будут ли значения каждого анализа масштабироваться, чтобы иметь дисперсию, равную единице. Такое масштабирование гарантирует, что каждому полю анализа будет дан равный приоритет в компонентах. Масштабирование также устраняет влияние линейных единиц измерения, например, одни и те же данные, измеренные в метрах и футах, приведут к эквивалентным компонентам. Значения полей анализа будут сдвинуты, чтобы иметь нулевое среднее значение для обоих вариантов.

  • Отмечено – значения каждого поля анализа будут масштабированы, чтобы иметь дисперсию, равную единице, путем деления каждого значения на среднеквадратическое отклонение для поля анализа. Это значение по умолчанию
  • Не отмечено – дисперсия каждого поля анализа не будет масштабироваться.

Boolean
Категориальное поле
(Дополнительный)

Поле, представляющее категориальную переменную для LDA. Компоненты будут поддерживать максимальный объем информации, необходимой для классификации каждой входной записи по этим категориям.

Field
Минимальный процент отклонения для поддержания
(Дополнительный)

Минимальный процент общей дисперсии полей анализа, который необходимо поддерживать в компонентах. Общая дисперсия зависит от того, были ли поля анализа масштабированы с помощью параметра Масштабировать данные (scale в Python).

Long
Минимальное количество компонентов
(Дополнительный)

Минимальное количество компонентов.

Long
Скопировать все поля в выходной набор данных
(Дополнительный)

Определяет, будут ли все поля из входной таблицы или компонентов копироваться и добавляться к выходной таблице или объектам. Поля, указанные в параметре Поля анализа, будут скопированы в выходные данные независимо от значения этого параметра.

  • Отмечено - все поля из входной таблицы или компонентов копироваться и добавляться к выходной таблице или объектам.
  • Не отмечено – в выход будут включены только поля анализа в выходной таблице или классе объектов. Это значение по умолчанию

Boolean
Выходная таблица собственных значений
(Дополнительный)

Выходная таблица, содержащая собственные значения каждого компонента.

Table
Выходная таблица собственных векторов
(Дополнительный)

Выходная таблица, содержащая собственные векторы каждого компонента.

Table
Число перестановок
(Дополнительный)

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

Long
Присоединить поля во входные данные
(Дополнительный)

Определяет, будут ли поля компонентов присоединяться к входному набору данных, или сохраняться в выходной таблице или классе объектов. Если вы присоединяете поля к входному набору данных, то параметр среды выходной системы координат будет проигнорирован.

  • Отмечено - поля, содержащие компоненты, будут присоединены к входным объектам. Эта опция изменяет входные данные.
  • Нет отмечено - выходная таблица или класс объектов будут созданы с полями компонентов. Это значение по умолчанию

Boolean

Производные выходные данные

ПодписьОписаниеТип данных
Обновленная таблица или класс пространственных объектов.

Обновленная входная таблица или класс объектов с присоединенными полями компонентов.

Table View

arcpy.stats.DimensionReduction(in_table, {output_data}, fields, {method}, {scale}, {categorical_field}, {min_variance}, {min_components}, {append_fields}, {output_eigenvalues_table}, {output_eigenvectors_table}, {number_of_permutations}, {append_to_input})
ИмяОписаниеТип данных
in_table

Таблица или объекты, содержащие поля с измерением, которое будет уменьшено.

Table View
output_data
(Дополнительный)

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

Table
fields
[fields,...]

Поля, представляющие данные, измерения которых будут уменьшены.

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

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

  • PCAПоля анализа будут разделены на компоненты, каждый из которых поддерживает максимальную долю общей дисперсии. Это значение по умолчанию
  • LDAПоля анализа будут разделены на компоненты, каждый из которых поддерживает максимальную разделимость категориальной переменной между категориями.
String
scale
(Дополнительный)

Определяет, будут ли значения каждого анализа масштабироваться, чтобы иметь дисперсию, равную единице. Такое масштабирование гарантирует, что каждому полю анализа будет дан равный приоритет в компонентах. Масштабирование также устраняет влияние линейных единиц измерения, например, одни и те же данные, измеренные в метрах и футах, приведут к эквивалентным компонентам. Значения полей анализа будут сдвинуты, чтобы иметь нулевое среднее значение для обоих вариантов.

  • SCALE_DATAЗначения каждого поля анализа будут масштабированы, чтобы иметь дисперсию, равную единице, путем деления каждого значения на среднеквадратическое отклонение для поля анализа. Это значение по умолчанию
  • NO_SCALE_DATAДисперсия каждого поля анализа не будет масштабироваться.
Boolean
categorical_field
(Дополнительный)

Поле, представляющее категориальную переменную для LDA. Компоненты будут поддерживать максимальный объем информации, необходимой для классификации каждой входной записи по этим категориям.

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

Минимальный процент общей дисперсии полей анализа, который необходимо поддерживать в компонентах. Общая дисперсия зависит от того, были ли поля анализа масштабированы с помощью параметра Масштабировать данные (scale в Python).

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

Минимальное количество компонентов.

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

Определяет, будут ли все поля из входной таблицы или компонентов копироваться и добавляться к выходной таблице или объектам. Поля, указанные в параметре fields, будут скопированы в выход независимо от значения этого параметра.

  • APPENDВсе поля из входной таблицы или компонентов копироваться и добавляться к выходной таблице или объектам.
  • NO_APPENDВ выход будут включены только поля анализа в выходной таблице или классе объектов. Это значение по умолчанию
Boolean
output_eigenvalues_table
(Дополнительный)

Выходная таблица, содержащая собственные значения каждого компонента.

Table
output_eigenvectors_table
(Дополнительный)

Выходная таблица, содержащая собственные векторы каждого компонента.

Table
number_of_permutations
(Дополнительный)

Количество перестановок, используемых при определении оптимального количества компонентов. Значение по умолчанию – 0, что означает, что проверка перестановки выполняться не будет. Предоставленное значение должно быть равно 0, 99, 199, 499 или 999. Если предоставлено любое другое значение, будет использоваться 0, и проверка перестановки не будет выполняться.

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

Определяет, будут ли поля компонентов присоединяться к входному набору данных, или сохраняться в выходной таблице или классе объектов. Если вы присоединяете поля к входному набору данных, то параметр среды выходной системы координат будет проигнорирован.

  • APPEND_TO_INPUTПоля, содержащие компоненты, будут присоединены к входным объектам. Эта опция изменяет входные данные.
  • NEW_OUTPUTВыходная таблица или класс объектов будут созданы с полями компонентов. Это значение по умолчанию
Boolean

Производные выходные данные

ИмяОписаниеТип данных
updated_table

Обновленная входная таблица или класс объектов с присоединенными полями компонентов.

Table View

Пример кода

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

Скрипт Python, демонстрирующий использование функции DimensionReduction.


import arcpy
arcpy.stats.DimensionReduction("DemographicData", 
           "DemographicData_DimensionReduction", 
           "age_group_1;age_group2;age_group_3;age_group_4;age_group_5", 
           "PCA", "NO_SCALE_DATA", None, None, 3, 
           "NO_APPEND", "EigenValueTable", None, 99, NEW_OUTPUT)
DimensionReduction, пример 2 (автономный скрипт)

Следующий автономный скрипт Python демонстрирует, как использовать функцию DimensionReduction для прогнозирования численности населения:


# Import system modules 
import arcpy

# Overwrite existing output, by default
arcpy.env.overwriteOutput = True

# Local variables...
arcpy.env.workspace = r"c:\projects\dimensionreduction.gdb"

# Reduce the fields of population by age group using Reduced-Rank LDA method; 
# use "State" as the categorical field; choose the eigenvector output. 
arcpy.stats.DimensionReduction("DemographicData", 
           "DemographicData_DimensionReduction", 
           "age_group_1;age_group2;age_group_3;age_group_4;age_group_5", 
           "LDA", "SCALE_DATA", "State", None, None, 
           "APPEND", None, "EigenVectorTable", 0, NEW_OUTPUT)