Научная статья на тему 'Анализ и классификация алгоритмов кластеризации'

Анализ и классификация алгоритмов кластеризации Текст научной статьи по специальности «Математика»

CC BY
6151
2723
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Ершов К. С., Романова Т. Н.

В статье рассмотрены возможные меры расстояний, используемых в алгоритмах, представлены наиболее популярные алгоритмы кластеризации и их роль в области Data mining. Приведена классификация алгоритмов. Разобраны преимущества и недостатки алгоритмов. Приведено сравнение производительности и формата данных алгоритмов.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Анализ и классификация алгоритмов кластеризации»

Анализ и классификация алгоритмов кластеризации

Ершов К.С., Романова Т.Н., МГТУ им. Н.Э. Баумана [email protected], [email protected]

Аннотация

В статье рассмотрены возможные меры расстояний, используемых в алгоритмах, представлены наиболее популярные алгоритмы кластеризации и их роль в области Data mining. Приведена классификация алгоритмов. Разобраны преимущества и недостатки алгоритмов. Приведено сравнение производительности и формата данных алгоритмов.

1 Введение

Кластеризация - объединение в группы схожих объектов - является одной из фундаментальных задач в области анализа данных и Data Mining. Список прикладных областей, где она применяется, широк: сегментация изображений, маркетинг, борьба с мошенничеством, прогнозирование, анализ текстов и многие другие.

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

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

2 Понятие кластеризации

Кластеризация (или кластерный анализ) — это задача разбиения множества объектов на группы, называемые кластерами.

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

Главное отличие кластеризации от классификации состоит в том, что перечень групп четко не задан и определяется в процессе работы алгоритма.

Применение кластерного анализа в общем виде сводится к следующим этапам:

1. Отбор выборки объектов для кластеризации.

2. Определение множества переменных, по которым будут оцениваться объекты в выборке. При необходимости - нормализация значений переменных.

3. Вычисление значений меры сходства между объектами.

4. Применение метода кластерного анализа для создания групп сходных объектов (кластеров).

5. Представление результатов анализа.

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

3 Меры расстояний

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

После того, как определен вектор характеристик, можно провести нормализацию, чтобы все компоненты давали одинаковый вклад при расчете «расстояния». В процессе нормализации все значения приводятся к некоторому диапазону, например, [-1, -1] или [0, 1].

Для каждой пары объектов измеряется «расстояние» между ними — степень похожести. Существует множество метрик:

1. Евклидово расстояние

Наиболее распространенная функция расстояния. Представляет собой геометрическим расстоянием в многомерном пространстве:

2. Квадрат евклидова расстояния

Применяется для придания большего веса более отдаленным друг от друга объектам. Это расстояние вычисляется следующим образом:

и с

3. Расстояние городских кварталов (манхэттенское расстояние)

Это расстояние является средним разностей по координатам. В большинстве случаев эта мера расстояния приводит к таким же результатам, как и для обычного расстояния Евклида. Однако для этой меры влияние отдельных больших разностей (выбросов) уменьшается (т.к. они не возводятся в квадрат). Формула для расчета манхэттенского расстояния:

1л:

4. Расстояние Чебышева

Это расстояние может оказаться полезным, когда нужно определить два объекта как «различные», если они различаются по какой-либо одной координате. Расстояние Чебышева вычисляется по формуле:

5. Степенное расстояние

Применяется в случае, когда необходимо

увеличить или уменьшить вес, относящийся к размерности, для которой соответствующие объекты сильно отличаются. Степенное расстояние вычисляется по следующей формуле:

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

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

4 Классификация алгоритмов

Можно выделить две основные классификации алгоритмов кластеризации

1. Иерархические и плоские.

Иерархические алгоритмы (также называемые алгоритмами таксономии) строят не одно

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

Плоские алгоритмы строят одно разбиение объектов на кластеры.

2. Четкие и нечеткие.

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

4.1 Алгоритмы иерархической кластеризации

Среди алгоритмов иерархической кластеризации выделяются два основных типа: восходящие и нисходящие алгоритмы. Нисходящие алгоритмы работают по принципу «сверху-вниз»: в начале все объекты помещаются в один кластер, который затем разбивается на все более мелкие кластеры.

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

Таким образом строится система вложенных разбиений. Результаты таких алгоритмов обычно представляют в виде дерева - дендро-граммы. Классический пример такого дерева - классификация животных и растений.

Для вычисления расстояний между кластерами чаще все пользуются двумя расстояниями: одиночной связью или полной связью (см. обзор мер расстояний между кластерами).

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

4.1.1 Объединение кластеров

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

1. Одиночная связь (расстояния ближайшего соседа)

В этом методе расстояние между двумя кластерами определяется расстоянием между двумя наиболее близкими объектами (ближайшими соседями) в различных кластерах. Результирующие кластеры имеют тенденцию объединяться в цепочки.

2. Полная связь (расстояние наиболее удаленных соседей)

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

3. Невзвешенное попарное среднее

В этом методе расстояние между двумя различными кластерами вычисляется как среднее расстояние между всеми парами объектов в них. Метод эффективен, когда объекты формируют различные группы, однако он работает одинаково хорошо и в случаях протяженных («цепочечного» типа) кластеров.

4. Взвешенное попарное среднее

Метод идентичен методу невзвешенного

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

5. Невзвешенный центроидный метод

В этом методе расстояние между двумя кластерами определяется как расстояние между их центрами тяжести.

6. Взвешенный центроидный метод (медиана)

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

4.2 Алгоритмы квадратичной ошибки

Задачу кластеризации можно рассматривать как построение оптимального разбиения объектов на группы. При этом оптимальность

СО

Ч - 9

может быть определена как требование минимизации среднеквадратической ошибки разбиения:

е2(Х,1) =

где с} — «центр масс» кластера j (точка со средними значениями характеристик для данного кластера), К - количество кластеров, п -количество точек.

Алгоритмы квадратичной ошибки относятся к типу плоских алгоритмов. Самым распространенным алгоритмом этой категории является метод к-средних. Этот алгоритм строит заданное число кластеров, расположенных как можно дальше друг от друга. Работа алгоритма делится на несколько этапов:

1. Случайно выбрать к точек, являющихся начальными «центрами масс» кластеров.

2. Отнести каждый объект к кластеру с ближайшим «центром масс».

3. Пересчитать «центры масс» кластеров согласно их текущему составу.

4. Если критерий остановки алгоритма не удовлетворен, вернуться к п. 2.

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

К недостаткам данного алгоритма можно отнести необходимость задавать количество кластеров для разбиения.

4.3 Нечеткие алгоритмы

Наиболее популярным алгоритмом нечеткой кластеризации является алгоритм с-средних (с-теа^). Он представляет собой модификацию метода к-средних. Шаги работы алгоритма:

1. Выбрать начальное нечеткое разбиение п объектов на к кластеров путем выбора матрицы принадлежности и размера (п, к).

2. Используя матрицу И, найти значение критерия нечеткой ошибки:

Е2{

\Х. Сд.

Нк Ц -1 ¡=1 к=1

где с к — «центр масс» нечеткого кластера к\

N

Ск

-1

К - количество кластеров, N - количество точек

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

4. Возвращаться в п. 2 до тех пор, пока изменения матрицы и не станут незначительными.

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

4.4 Алгоритмы, основанные на теории графов

Суть таких алгоритмов заключается в том, что выборка объектов представляется в виде графа 0=(У, Е), вершинам которого соответствуют объекты, а ребра имеют вес, равный «расстоянию» между объектами. Достоинством графовых алгоритмов кластеризации являются наглядность, относительная простота реализации и возможность вносения различных усовершенствований, основанные на геометрических соображениях. Основными алгоритмам являются алгоритм выделения связных компонент, алгоритм построения минимального покрывающего (остовного) дерева и алгоритм послойной кластеризации.

4.5 Алгоритм выделения связных компонент

В алгоритме выделения связных компонент задается входной параметр Я и в графе удаляются все ребра, для которых «расстояния» больше Я. Соединенными остаются только наиболее близкие пары объектов. Смысл алгоритма заключается в том, чтобы подобрать такое значение Я, лежащее в диапазон всех «расстояний», при котором граф «развалится» на несколько связных компонент. Полученные компоненты и есть кластеры.

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4.6 Алгоритм минимального покрывающего дерева

Алгоритм минимального покрывающего дерева сначала строит на графе минимальное покрывающее дерево, а затем последовательно удаляет ребра с наибольшим весом. На рис. 1 изображено минимальное покрывающее дерево, полученное для девяти объектов.

Рис. 1. Покрывающее дерево

Путём удаления связи, помеченной СБ, с длиной равной 6 единицам (ребро с максимальным расстоянием), получаем два кластера: {А, В, С} и {Б, Е, Б, О, Н, I}. Второй кластер в дальнейшем может быть разделён ещё на два кластера путём удаления ребра ЕБ, которое имеет длину, равную 4,5 единицам.

4.7 Послойная кластеризация

Алгоритм послойной кластеризации основан на выделении связных компонент графа на некотором уровне расстояний между объектами (вершинами). Уровень расстояния задается порогом расстояния с. Например, если расстояние между объектами

О < р(х,х'') < 1, то 0 < С < 1.

Алгоритм послойной кластеризации формирует последовательность подграфов графа О, которые отражают иерархические связи между кластерами:

<7° с с ... с

т - количество уровней иерархии,

= (V, о), о - пустое множество ребер

графа

Посредством изменения порогов расстояния {с°, ..., ст}, где

О = с" < с1 <

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

В табл. 1 приводится сравнение рассмот- В табл 2 представлена вычислительная ренных алгоритмов. сложность каждого рассмотренного алгорит-

ма

Табл. 1 Сводная таблица

Алгоритм кластеризации Форма кластеров Входные данные Выходные данные

Иерархический Произвольная Число кластеров или порог расстояния для усечения иерархии Бинарное дерево кластеров

к-средних Гиперсфера Число кластеров Центры кластеров

с-средних Гиперсфера Число кластеров, степень нечеткости Центры кластеров, матрица принадлежности

Выделение связных компонент Произвольная Порог расстояния Я Древовидная структура кластеров

Минимальное покрывающее дерево Произвольная Число кластеров или порог расстояния для удаления ребер Древовидная структура кластеров

Послойная кластеризация Произвольная Последовательность порогов расстояния Древовидная структура кластеров с разными уровнями иерархии

Табл. 2 Вычислительная сложность алгоритмов

Алгоритм кластеризации Вычислительная сложность

Иерархический O(n2)

к-средних O(n*k*l), где k - число кластеров, l - число итераций

с-средних

Выделение связных компонент зависит от алгоритма

Минимальное покрывающее дерево O(n2 log n)

Послойная кластеризация O(max(n, m)), где m < n(n-1)/2

Примечание. n - количество точек для кластеризации.

5 Заключение

Парное сравнение объектов между собой в алгоритме k-means есть не что иное, как локальная оптимизация, т. к. на каждой итерации необходимо рассчитывать расстояние от центра кластера до каждого объекта. Это ведет к большим вычислительным затратам. При задании глобальной функции оптимизации добавление новой точки в кластер не требует больших вычислений: оно рассчитывается на основе старого значения, нового объекта и так называемых кластерных характеристик (clusters features). Конкретные кластерные характеристики зависят от того или иного алгоритма. Так появились алгоритмы BIRCH, Largeltem, CLOPE и многие другие.

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

Список литературы

Информационно-аналитический ресурс, посвященный машинному обучению, распознаванию образов и интеллектуальному анализу данных — www.machinelearning.ru/

Котов А., Красильников Н. Кластеризация данных. 2006.

Мандель И. Д. Кластерный анализ. — М.: Финансы и Статистика, 1988.

Прикладная статистика: классификация и снижение размерности. / С.А. Айвазян, В.М. Бухштабер, И.С. Енюков, Л.Д. Мешалкин — М.: Финансы и статистика, 1989.

Jain A., Murty M., Flynn P. Data Clustering: A Review. // ACM Computing Surveys. 1999. Vol. 31, no. 3.

i Надоели баннеры? Вы всегда можете отключить рекламу.