Спектральная кластеризация
возвращает вектор индексов кластеров для 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.