Спектральная кластеризация
возвращает вектор индексов кластера для 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' аргумент пары имя-значение (см. График подобия). Затем найдите попарные расстояния j для всех точек i и j по соседству.
Преобразуйте расстояния в измерения подобия с помощью преобразования ядра jλ) 2). Матрица S является матрицей подобия, а λ является масштабным коэффициентом для ядра, как указано с помощью'KernelScale' аргумент пары имя-значение.
Вычислите ненормализованную лапласианскую матрицу
L, нормализованную лапласианскую матрицу случайного обхода Lrw или нормализованную симметричную лапласианскую матрицу Ls, в зависимости от значения 'LaplacianNormalization' аргумент пары имя-значение.
Создайте матрицы, содержащий столбцы vk, где столбцы являются k собственными векторами, которые соответствуют k наименьшим собственным значениям матрицы Лапласа. При использовании LS нормализуйте каждую строку V, чтобы она имела единичную длину.
Рассматривая каждую строку V как точку, скопируйте n точек, используя кластеризацию k-means (по умолчанию) или кластеризацию k-medoids, как определено 'ClusterMethod' аргумент пары имя-значение.
Назначение исходных точек в X к тем же кластерам, что и их соответствующие строки в V.
[2] Ши, Дж., и Дж. Малик. «Нормализованные вырезы и сегментация изображения». Транзакции IEEE по анализу шаблонов и машинному интеллекту. Том 22, 2000, стр. 888-905.
[3] Нг, А. Я., М. Джордан и Я. Вайс. «О спектральной кластеризации: анализ и алгоритм». В трудах о достижениях в системах обработки нейронной информации 14. MIT Press, 2001, стр. 849-856.