Кластеризация K представителями
Кластеризация K представителями (representative-based clustering) обладает следующими свойствами:
- Кластеризация плоская (не иерархическая).
- Число кластеров задается пользователем.
- Каждый объект соотносится с одним и только одним кластером .
Каждый кластер определяется своим центром (называемым также центроидом или представителем) , где .
В общем виде решается задача оптимизации суммарного отклонения объектов от центров их кластеров:
Настраиваемыми параметрами выступают
-
назначения объектам номеров их кластеров ;
-
центры каждого кластера , называемые центроидами.
Метод оптимизации
Для решения этой задачи находится локальный минимум методом покоординатного спуска - в цикле поочерёдно обновляются то метки кластеров объектов при фиксированных центроидах, то с ами центроиды при фиксированных метках до сходимости. Визуально метод покоординатного спуска для минимизируемого критерия с заданными линиями уровня приведён ниже [1]:

Алгоритм кластеризации представителями
Обозначим за индексы объектов, принадлежащих кластеру :
Тогда алгоритм кластеризации представителями в общем виде выглядит так:
-
Инициализировать (обычно, случайными объектами выборки).
-
Повторять до сходимости:
-
Для обновить метки кластеров:
-
Для пересчитать центроиды кластеров:
-
-
ВЕРНУТЬ .
Этот алгоритм представляет собой не один, а целое семейство методов кластеризации, параметризованное выбором конкретной функции расстояния между объектами:
Целевой функционал невыпуклый и содержит много локальных минимумов. Поэтому рекомендуется запускать оптимизацию несколько раз из разных случайных инициализаций и выбирать решение с наименьшим значением целевого критерия (1).
Критерий сходимости
В качестве критерия сходимости можно задать условие, что метки кластеров объектов не поменялись по сравнению с предыдущей итерацией. Это будет соответствовать точной сходимости алгоритма к локальному оптимуму и применимо для малых выборок.
Для больших выборок эффективнее не дожидаться полной сходимости, а ограничиваться приближённой сходимостью, прерывая настройку досрочно, когда когда изменение положения центроидов или уменьшение значения целевой функции (1) становится меньше заданного порога.
Также на практике часто используют жесткое ограничение на максимальное количество итераций (например, 100 или 300), так как основные изменения структуры кластеров обычно происходят на начальных этапах работы алгоритма.
Инициализация центров
Результат работы алгоритма существенно зависит от выбора начальных позиций центров . Неудачная инициализация может привести к тому, что алгоритм «застрянет» в плохом решении или будет сходиться медленнее.
Рассмотрим подходы к выбору начальных представителей.
Случайная ин ициализация
представителей обычно инициализируются случайными объектами обучающей выборки. Это гарантирует, что представители будут принадлежать тому же распределению, что и исходные данные.
Это самый распространённый и простой подход, но он существенно зависит от случайности. В результате могут происходить неблагоприятные инициализации:
-
Несколько центров могут быть выбраны внутри одного плотного кластера, в то время как другие кластеры останутся без начальных центров. Это может привести к тому, что один кластер будет раздроблен, а несколько других ошибочно объединены.
-
Центр может совпасть с объектом-выбросом, лежащим далеко от остальных объектов. В результате выделится к ластер, состоящий только из этого объекта.
При использовании метода важно предварительно очистить данные от выбросов. Также, чтобы снизить чувствительность метода к случайной инициализации, рекомендуется перезапускать сходимость из разных случайных инициализаций, полученных предложенным способом, а потом выбирать наилучшее решение, дающее минимальное значение целевого критерия (1) и более-менее равномерно распределяющее объекты по кластерам.
Усреднение случайных подвыборок
Этот метод является модификацией случайной инициализации, направленной на повышение устойчивости. Для инициализации каждого из центров мы выбираем не один случайный объект, а небольшую группу из случайных объектов, и вычисляем их среднее (или медиану) в качестве .
Этот подход снижает риск неблагоприятной инициализации за счёт присутствия объектов-выбросов (особенно при использовании медианы, которая устойчива к ним). Даже если выброс попадет в подвыборку, усреднение с другими объектами притянет центр ближе к основной массе данных.
При увеличении параметра по закону больших чисел средние значения разных случайных подвыборок будут стремиться к общему среднему для всей выборки. Близко расположенные начальные инициализации замедлят сходимость метода, поскольку потребуется больше итераций для разведения центроидов по разным кластерам. Поэтому не следует выбирать слишком большим.
K-means++
Этот метод инициализации центроидов является очень популярным и часто выбирается по умолчанию в реализации метода K-средних. Идея состоит в том, чтобы распределить начальные центры как можно дальше друг от друга, но с учетом плотности данных.
Алгоритм инициализации:
-
Первый центр выбирается случайно из всех объектов выборки.
-
Для каждого следующего центра :
-
Для каждого объекта вычисляется квадрат расстояния до ближайшего уже выбранного центра:
-
Новый центр выбирается из объектов случайным образом, но с вероятностью, пропорциональной вычисленному квадрату расстояния:
-
Детерминированный вариант В классическом варианте K-means++ является вероятностным алгоритмом. Однако его можно сделать детерминированным, если на шаге 2 выбирать не случайный объект с учетом вероятности, а объект, имеющий максимальное расстояние до текущих центров: . Такой подход, называемый MaxMin инициализацией, гарантирует воспроизводимость результата при перезапусках, но делает алгоритм чрезвычайно чувствительным к выбросам, поэтому выбросы необходимо очистить перед запуском K-means++.
Инициализация по главной компоненте (PCA partitioning)
Этот детерминированный метод использует глобальную структуру данных. Идея состоит в том, что наибольшая вариативность данных содержится вдоль первой главной компоненты. Если «разрезать» данные вдоль э той оси, можно получить хорошее начальное приближение.
Алгоритм:
- Вычислить первую главную компоненту (собственный вектор, соответствующий максимальному собственному значению ковариационной матрицы данных).
- Спроецировать все объекты выборки на этот вектор, получив одномерный массив проекций .
- Разбить диапазон проекций на интервалов (по квантилям распределения), содержащих равное количество объектов.
- В качестве начальных центров взять средние значения объектов, попавших в каждый интервал, или просто центров этих интервалов.
Этот подход хорошо работает, когда кластера действительно распределены вдоль одного направления, но игнорирует другие направления вариативности данных.