Перейти к основному содержимому

Кластеризация K представителями

Кластеризация K представителями (representative-based clustering) обладает следующими свойствами:

  1. Кластеризация плоская (не иерархическая).
  2. Число кластеров KK задается пользователем.
  3. Каждый объект xn\mathbf{x}_n соотносится с одним и только одним кластером zn{1,2,,K}z_n \in \{1, 2, \dots, K\}.

Каждый кластер kk определяется своим центром (представителем) μk\boldsymbol{\mu}_k, где k=1,2,...Kk=1,2,...K.

В общем виде решается задача оптимизации суммарного отклонения объектов от центров их кластеров:

L(z1,...zN;μ1,...μK)=n=1Nρ(xn,μzn)minz1,...zN;μ1,...μK\mathcal{L}(z_{1},...z_{N};\boldsymbol{\mu}_{1},...\boldsymbol{\mu}_{K})=\sum_{n=1}^{N}\rho(\mathbf{x}_{n},\boldsymbol{\mu}_{z_{n}})\to\min_{z_{1},...z_{N};\boldsymbol{\mu}_{1},...\boldsymbol{\mu}_{K}}

Настраиваемыми параметрами выступают

  • назначения объектам x1,x2,...xN\mathbf{x}_1,\mathbf{x}_2,...\mathbf{x}_{N} номеров их кластеров z1,...zNz_{1},...z_{N};

  • центры каждого кластера μ1,...μK\boldsymbol{\mu}_{1},...\boldsymbol{\mu}_{K}, называемые также центроидами.

Метод оптимизации

Для решения этой задачи находится локальный минимум методом покоординатного спуска: Мы итеративно обновляем то метки кластеров объектов при фиксированных центроидах, то сами центроиды при фиксированных метках до сходимости. Визуально метод покоординатного спуска для минимизируемого критерия с заданными линиями уровня приведён ниже [1]:

coordinate-descent.png

Алгоритм кластеризации KK представителями

Обозначим за CkC_k индексы объектов, принадлежащих кластеру kk:

Ck={n:zn=k}C_{k}=\left\{ n:z_{n}=k\right\}

Тогда алгоритм кластеризации KK представителями в общем виде выглядит так:

  1. Инициализировать μ1,,μK\boldsymbol{\mu}_1, \dots, \boldsymbol{\mu}_K (например, случайными объектами выборки).

  2. ПОВТОРЯТЬ до сходимости:

    • Для n=1,2,...Nn=1,2,...N обновить метки кластеров:

      zn=argminkρ(xn,μk)z_n=\arg\min_k \rho(\boldsymbol{x}_n,\boldsymbol{\mu}_k)
    • Для k=1,2,...Kk=1,2,...K обновить центроиды кластеров:

      μk=argminμnCkρ(xn,μ)\boldsymbol{\mu}_k=\arg\min_{\boldsymbol{\mu}}\sum_{n\in C_k} \rho(\boldsymbol{x}_n,\boldsymbol{\mu})
  3. ВЕРНУТЬ z1,,zNz_1, \dots, z_N.

Этот алгоритм представляет собой не один, а целое семейство методов кластеризации, параметризованное выбором конкретной функции расстояния ρ(x,x)\rho(\boldsymbol{x},\boldsymbol{x}') между объектами:

  • при ρ(x,x)=xx22\rho(\boldsymbol{x},\boldsymbol{x}')=\|\boldsymbol{x}-\boldsymbol{x}'\|^2_2 получим метод K-средних;

  • при ρ(x,x)=xx1\rho(\boldsymbol{x},\boldsymbol{x}')=\|\boldsymbol{x}-\boldsymbol{x}'\|_1 получим метод K-медиан;

Проблема локальных оптимумов:

Целевой функционал невыпуклый и содержит много локальных минимумов. Поэтому рекомендуется запускать оптимизацию несколько раз из разных случайных инициализаций и выбирать с наименьшим значением целевого критерия.

Критерий сходимости

В качестве критерия сходимости можно задать условие, что метки кластеров объектов не поменялись по сравнению с предыдущей итерацией. Это будет соответствовать точной сходимости алгоритма к локальному оптимуму и применимо для малых выборок.

Для больших выборок эффективнее не дожидаться полной сходимости, а прерывать настройку досрочно, когда изменения критерия а останавливаться, когда изменение положения центроидов или уменьшение значения целевой функции становится меньше заданного порога.

Также на практике часто используют жесткое ограничение на максимальное количество итераций (например, 100 или 300), так как основные изменения структуры кластеров обычно происходят на начальных этапах работы алгоритма.

Инициализация центров

Результат работы алгоритма существенно зависит от выбора начальных позиций центров μ1,,μK\boldsymbol{\mu}_1, \dots, \boldsymbol{\mu}_K. Неудачная инициализация может привести к тому, что алгоритм «застрянет» в плохом решении или будет сходиться медленнее.

Рассмотрим подходы к выбору начальных представителей.

Случайная инициализация

KK представителей инициализируются случайными объектами обучающей выборки. Это гарантирует, что представители будут принадлежать тому же распределению, что и исходные данные.

Это самый распространённый и простой подход, но он существенно зависит от случайности. В результате могут происходить неблагоприятные инициализации:

  • Несколько центров могут быть выбраны внутри одного плотного кластера, в то время как другие кластеры останутся без начальных центров. Это может привести к тому, что один кластер будет раздроблен, а несколько других ошибочно объединены.

  • Центр может совпасть с объектом-выбросом, лежащим далеко от остальных объектов. В результате выделится кластер, состоящий только из этого объекта.

При использовании этого метода особенно важно предварительно очистить данные от выбросов. Также, чтобы снизить чувствительность метода к случайной инициализации, рекомендуется перезапускать сходимость из разных случайных инициализаций, полученных предложенным способом, а потом выбирать наилучшее решение, обладающее минимальным значением целевого критерия и более-менее равномерно распределяющее объекты по кластерам.

Усреднение случайных подвыборок

Этот метод является модификацией случайной инициализации, направленной на повышение устойчивости. Для инициализации каждого из KK центров мы выбираем не один случайный объект, а небольшую группу из MM случайных объектов, и вычисляем их среднее (или медиану) в качестве μk\boldsymbol{\mu}_k.

Этот подход существенно снижает риск неблагоприятной инициализации за счёт присутствия объектов-выбросов (особенно при использовании медианы, которая устойчива к выбросам). Даже если выброс попадет в подвыборку, усреднение с другими объектами «притянет» центр ближе к основной массе данных.

Риск сближения центров:

При увеличении параметра MM по закону больших чисел средние значения разных случайных подвыборок будут стремиться к общему среднему для всей выборки, что замедлит последующее расхождение центров по разным кластерам.

K-means++

Этот метод стал де-факто стандартом в современных библиотеках (например, в scikit-learn). Идея состоит в том, чтобы распределить начальные центры как можно дальше друг от друга, но с учетом плотности данных.

Алгоритм инициализации:

  1. Первый центр μ1\boldsymbol{\mu}_1 выбирается случайно из объектов выборки.

  2. Для каждого следующего центра k=2,,Kk = 2, \dots, K:

    • Для каждого объекта xn\mathbf{x}_n вычисляется квадрат расстояния до ближайшего уже выбранного центра:

      D(xn)=minj<kxnμj2D(\mathbf{x}_n) = \min_{j < k} \|\boldsymbol{x}_n - \boldsymbol{\mu}_j\|^2
    • Новый центр μk\boldsymbol{\mu}_k выбирается из объектов xn\mathbf{x}_n случайным образом, но с вероятностью, пропорциональной вычисленному квадрату расстояния:

      P(μk=xn)=D(xn)i=1ND(xi)P(\boldsymbol{\mu}_k = \mathbf{x}_n) = \frac{D(\boldsymbol{x}_n)}{\sum_{i=1}^N D(\boldsymbol{x}_i)}
  3. Процесс повторяется, пока не выбрано KK центров.

Детерменированный вариант В классическом варианте K-means++ является вероятностным алгоритмом. Однако его можно сделать детерминированным, если на шаге 2 выбирать не случайный объект с учетом вероятности, а объект, имеющий максимальное расстояние до текущих центров: xnew=argmaxxD(x)\boldsymbol{x}_{new} = \arg\max_{\boldsymbol{x}} D(\boldsymbol{x}). Такой подход, называемый MaxMin инициализацией, гарантирует воспроизводимость результата при перезапусках, но делает алгоритм чрезвычайно чувствительным к выбросам, так как именно на объектах-выбросах расстояние будет максимизироваться.

Инициализация по главной компоненте (PCA partitioning)

Этот детерминированный метод использует глобальную структуру данных. Идея состоит в том, что наибольшая вариативность данных содержится вдоль первой главной компоненты. Если «разрезать» данные вдоль этой оси, можно получить хорошее начальное приближение.

Алгоритм:

  1. Вычислить первую главную компоненту (собственный вектор, соответствующий максимальному собственному значению ковариационной матрицы данных).
  2. Спроецировать все объекты выборки на этот вектор, получив одномерный массив значений p1,,pNp_1, \dots, p_N.
  3. Разбить диапазон проекций на KK интервалов (по квантилям распределения), содержащих равное количество объектов.
  4. В качестве начальных центров μk\boldsymbol{\mu}_k взять средние значения объектов, попавших в каждый интервал или просто центров этих интервалов.

Этот подход хорошо работает, когда кластера действительно распределены вдоль одного направления, но игнорирует другие направления вариативности данных.

Литература

  1. adeveloperdiary.com: Introduction to Coordinate Descent using Least Squares Regression.