Спектральная кластеризация
возвращает вектор кластерных индексов для 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 также поддерживает ненормированную Матрицу Лапласа и нормированную симметричную Матрицу Лапласа, которая использует метод Ына-Джордана-Вайса [3]. spectralcluster реализации, кластеризирующиеся можно следующим образом:
Для каждой точки данных в X, задайте локальное окружение с помощью или метода поиска радиуса или самого близкого соседнего метода, как задано 'SimilarityGraph' аргумент пары "имя-значение" (см. График Подобия). Затем найдите попарные расстояния для всех точек i и j в окружении.
Преобразуйте расстояния до мер по подобию с помощью преобразования ядра . Матричный S является матрицей подобия, и σ является масштабным коэффициентом для ядра, как задано использование 'KernelScale' аргумент пары "имя-значение".
Вычислите ненормированную Матрицу Лапласа
L, нормированная Матрица Лапласа случайного обхода Lrw или нормированная симметричная Матрица Лапласа Ls, в зависимости от значения 'LaplacianNormalization' аргумент пары "имя-значение".
Создайте матрицу содержа столбцы , где столбцы являются собственными векторами k, которые соответствуют k самые маленькие собственные значения Матрицы Лапласа. При использовании Ls нормируйте каждую строку V, чтобы иметь единичную длину.
При обработке каждой строки V как точка кластеризируйтесь, точки n с помощью k - означает кластеризировать (значение по умолчанию) или k-medoids кластеризацию, как задано 'ClusterMethod' аргумент пары "имя-значение".
Присвойте исходные точки в X к тем же кластерам как их соответствующие строки в V.
[2] Ши, J. и Дж. Малик. “Нормированные сокращения и сегментация изображений”. Транзакции IEEE согласно Анализу Шаблона и Искусственному интеллекту. Издание 22, 2000, стр 888–905.
[3] Ын, A.Y., М. Джордан и И. Вайс. “На спектральной кластеризации: Анализ и алгоритм”. В Продолжениях Усовершенствований в Нейронных Системах обработки информации 14. Нажатие MIT, 2001, стр 849–856.