Спектральная кластеризация
возвращает вектор индексов кластеров для idx
= spectralcluster(S
,k
,'Distance'
,'precomputed')S
, матрица подобия (или матрица смежности) график подобия. S
может быть выходом adjacency
.
Чтобы использовать матрицу подобия в качестве первого входа, вы должны задать 'Distance','precomputed'
.
задает дополнительные опции, используя один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущих синтаксисах. Для примера можно задать idx
= spectralcluster(___,Name,Value
)'SimilarityGraph','epsilon'
чтобы создать график подобия с помощью метода радиусного поиска.
[
также возвращает собственные векторы idx
,V
] = spectralcluster(___)V
соответствующий k
наименьшие собственные значения Матрицы Лапласа.
Рассмотрите использование спектральной кластеризации, когда кластеры в ваших данных естественно не соответствуют выпуклым областям.
Из алгоритма спектральной кластеризации можно оценить количество кластеров k
как:
Для получения примера см. «Оценка количества кластеров и выполнение спектральной кластеризации».
Спектральная кластеризация является основанным на графе алгоритмом для кластеризации точек данных (или наблюдений в X
). Алгоритм включает построение графика, нахождение его Матрицы Лапласа и использование этой матрицы для поиска k собственных векторов, чтобы разделить графиков k способами. По умолчанию алгоритм для spectralcluster
вычисляет нормированную матрицу Лапласа случайной ходьбы с помощью метода, описанного Ши-Маликом [2]. spectralcluster
также поддерживает неормализованную матрицу Лапласа и нормализованную симметричную матрицу Лапласа, которая использует метод Ng-Jordan-Weiss [3]. spectralcluster
реализует кластеризацию следующим образом:
Для каждой точки данных в X
, задайте локальное соседство с помощью метода поиска радиуса или метода ближайшего соседа, как задано 'SimilarityGraph'
Аргумент пары "имя-значение" (см. График подобия). Затем найдите парные расстояния для всех точек i и j в районе.
Преобразуйте расстояния в измерения подобия с помощью преобразования ядра . Матричная S является матрицей подобия, и σ является масштабным коэффициентом для ядра, как задано с помощью 'KernelScale'
аргумент пары "имя-значение".
Вычислите неормализованную матричную
L Лаплака, нормализованную Матрицу Лапласа Lrw с случайной ходьбой или нормализованную симметричную матричную Ls с Лаплаковой в зависимости от значения 'LaplacianNormalization' аргумент пары "имя-значение".
Создайте матрицу содержащие столбцы , где столбцы являются k собственными векторами, которые соответствуют k наименьшим собственным значениям Матрицы Лапласа. При использовании Ls нормализуйте каждую строку V, чтобы она имела единичную длину.
Рассматривая каждую строку V как точку, группируйте точки n с помощью кластеризации k -means (по умолчанию) или k-medoids, как задано 'ClusterMethod'
аргумент пары "имя-значение".
Присвойте исходные точки в X
в те же кластеры, что и соответствующие им строки в V.
[2] Ши, Дж., и Дж. Малик. «Нормированные вырезы и сегментация изображений». Транзакции IEEE по шаблонному анализу и машинному анализу. Том 22, 2000, стр. 888-905.
[3] Ng, A.Y., M. Jordan, and Y. Weiss. «О спектральной кластеризации: Анализ и алгоритм». В трудах по усовершенствованиям в системах обработки нейронной информации 14. MIT Press, 2001, стр. 849-856.