Анализ главных компонент

Анализ главных компонент в «Альбедо» 3.0 разбивается на две процедуры.

Вычисление главных компонент

Вход: растр, блок параметров.

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

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

  • Все точки. Используются все точки документа.

  • Каждая N-я. Точки расставляются с шагом N по горизонтали и вертикали. При выборе этого пункта появляется текстовое поле Шаг (N), которое является обязательным к заполнению, значение должно быть положительным и целочисленным. Вместо использования этой опции рекомендуется сначала применить к растру процедуру Уменьшение разрешения растра с коэффициентом уменьшения, равным требуемому шагу, и режимом “ближайший сосед”, а затем использовать анализ главных компонент с режимом выбора точек “Все точки”. Результат будет тот же, а суммарное время выполнения уменьшится.

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

  • По кластерам. Программа разобьет точки на кластеры с помощью алгоритма k-means, после чего вычислит главные компоненты на основе значений в центрах кластеров.

    При выборе этого пункта появляются два текстовых поля, оба обязательны к заполнению:

    • Число кластеров: так как главные компоненты будут вычисляться по центрам кластеров, то это число равно числу точек, по которым вычисляются главные компоненты.
    • Перезапуски — число попыток найти более хорошие кластеры. Целое число, обычно от 1 до 3. Кроме того, появляется радиопереключатель, позволяющий выбрать один из трёх вариантов отбора точек, которые будут разбиваться на кластеры: Все точки, Каждая N-я, Равномерно (их смысл аналогичен описанным выше методам отбора).

    При кластеризации используются значения только трёх каналов для каждой точки (RGB). Номера этих каналов выбираются на основе спектральной калибровки, а если ее нет, то на основе каналов, указанных пользователем для построения изображения. Если эти данные тоже недоступны, программа выдаст ошибку.

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

Пользователь может задать ограничение неточности - число от 0 до 1 (по умолчанию 0.05). Алгоритм NIPALS продолжает итерации поиска одной компоненты, пока не будет достигнута требуемая точность. Чем меньше число, тем точнее результат и тем медленнее работает процедура. При работе процедуры в лог программы записываются фактические значения неточности на каждой итерации, что позволяет при необходимости подобрать подходящее значение параметра.

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

Число каналов в сгенерированном растре будет равно числу главных компонент. Пользователь может использовать процедуру Статистика по растру для просмотра статистики по значениям главных компонент. Пользователь может просмотреть матрицу с помощью опции «Таблица значений» в контекстном меню блока.

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

Алгоритм

Для вычисления главных компонент используется алгоритм NIPALS (например, http://folk.uio.no/henninri/pca_module/pca_nipals.pdf или http://rcs.chemometrics.ru/Tutorials/pca.htm).

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

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

Отбор каналов по главным компонентам

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

Выход: подмножество каналов.

После завершения вычисления главных компонент автоматически открывается вьюер для просмотра изображения в главных компонентах и редактор блока параметров, дающий возможность отметить содержательные главные компоненты, а также выбрать способ отбора информативных каналов:

  • Все каналы, удовлетворяющие условиям отбора. Из всего множества каналов выбираются те, которые вносят больший суммарный вклад в выбранные главные компоненты, чем оба соседа этого канала. Каналы при этом упорядочены по возрастанию номера канала.
  • Каналы из диапазона. После отбора оставляются только те каналы, которые попадают в заданный пользователем диапазон. При выборе этого пункта появляются два текстовых поля: нижняя и верхняя границы диапазона.
  • Заданное число каналов. Каналы упорядочиваются по их вкладу в выбранные главные компоненты, после чего отбирается заданное пользователем число каналов, вносящих максимальный вклад. При выборе этого пункта появляется текстовое поле, в котором нужно указать это число каналов.
  • Минимальное число каналов. К множеству отобранных каналов, упорядоченных по возрастанию номеров каналов, ещё раз применяется тот же самый алгоритм отбора каналов для получения нового множества.

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

Оглавление

Предыдущий раздел

Анализ данных

Следующий раздел

Вычисление индексов