Введение
Группировка набора объектов по схожести
Кластерный анализ, или кластеризация, – это задача группировки набора объектов таким образом, чтобы объекты в одной группе (называемой кластером) были более похожи (в некотором конкретном смысле, определяемом аналитиком) друг на друга, чем на объекты в других группах (кластерах). Это одна из основных задач разведочного анализа данных и распространенный метод статистического анализа данных, используемый во многих областях, включая распознавание образов, анализ изображений, информационный поиск, биоинформатику, сжатие данных, компьютерную графику и машинное обучение. Кластерный анализ представляет собой семейство алгоритмов и задач, а не один конкретный алгоритм. Его можно реализовать с помощью различных алгоритмов, которые существенно различаются в понимании того, что составляет кластер и как эффективно его находить. Популярные представления о кластерах включают группы с небольшими расстояниями между членами кластера, плотные области пространства данных, интервалы или определенные статистические распределения. Таким образом, кластеризация может быть сформулирована как многокритериальная задача оптимизации. Подходящий алгоритм кластеризации и настройки параметров (включая такие параметры, как функция расстояния, порог плотности или количество ожидаемых кластеров) зависят от конкретного набора данных и предполагаемого использования результатов. Кластерный анализ как таковой не является автоматической задачей, а представляет собой итеративный процесс открытия знаний или интерактивную многокритериальную оптимизацию, включающую в себя пробные действия и анализ неудач. Часто необходимо изменять предварительную обработку данных и параметры модели до тех пор, пока результат не достигнет желаемых свойств. Помимо термина «кластеризация», существует ряд терминов с аналогичным значением, включая автоматическую классификацию, численную таксономию, ботриологию (от βότρυς), типологический анализ и обнаружение сообществ. Тонкие различия часто заключаются в использовании результатов: в то время как в интеллектуальном анализе данных интересуют получаемые группы, в автоматической классификации интересует получаемая дискриминационная способность. Кластерный анализ был разработан в антропологии Драйвером и Кроебером в 1932 году и введен в психологию Джозефом Зубином в 1938 году и Робертом Трайоном в 1939 году, а затем широко использовался Кэттеллом, начиная с 1943 года, для классификации теории черт в психологии личности.
Алгоритмы
Как указано выше, алгоритмы кластеризации можно классифицировать в зависимости от используемой ими модели кластеров. В данном обзоре будут рассмотрены лишь наиболее известные примеры алгоритмов кластеризации, поскольку существует более ста опубликованных алгоритмов. Не все из них предоставляют модели для своих кластеров, и поэтому их сложно классифицировать. Обзор алгоритмов, описанных в Википедии, можно найти в списке статистических алгоритмов. Не существует объективно "правильного" алгоритма кластеризации, но, как отмечалось, "восприятие кластеризации субъективно".
Кластеризация на основе подключения (иерархическая кластеризация)
Кластеризация на основе связей, также известная как иерархическая кластеризация, основана на ключевой идее, что объекты более тесно связаны с ближайшими объектами, чем с удалёнными. Эти алгоритмы соединяют "объекты" для формирования "кластеров" на основе расстояния между ними. Кластер можно в значительной степени охарактеризовать максимальным расстоянием, необходимым для соединения его частей. При разных расстояниях будут формироваться различные кластеры, которые можно представить с помощью дендрограммы, откуда и происходит общее название "иерархическая кластеризация": эти алгоритмы не предоставляют единственного разбиения набора данных, а вместо этого формируют разветвлённую иерархию кластеров, которые объединяются на определённых расстояниях. В дендрограмме ось Y показывает расстояние, на котором происходит объединение кластеров, а объекты располагаются вдоль оси X таким образом, чтобы кластеры не пересекались. Кластеризация на основе связей представляет собой целое семейство методов, различающихся способом вычисления расстояний. Помимо стандартного выбора функций расстояния, пользователю также необходимо определить критерий связи (поскольку кластер состоит из нескольких объектов, существует несколько кандидатов для вычисления расстояния). Популярные варианты включают односвязную кластеризацию (минимальное расстояние между объектами), полносвязную кластеризацию (максимальное расстояние между объектами) и UPGMA или WPGMA ("Невешенный или взвешенный метод группировки пар с использованием арифметического среднего", также известный как кластеризация средними связями). Кроме того, иерархическая кластеризация может быть агломеративной (начиная с отдельных элементов и объединяя их в кластеры) или дивизивной (начиная с полного набора данных и разделяя его на подмножества). Эти методы не дают уникального разбиения набора данных, а создают иерархию, из которой пользователю необходимо выбрать подходящие кластеры. Они не очень устойчивы к выбросам, которые могут проявляться как отдельные кластеры или даже приводить к объединению других кластеров (известный как "эффект цепочки", особенно при односвязной кластеризации). В общем случае сложность агломеративной кластеризации составляет , а дивизивной – , что делает их слишком медленными для больших наборов данных. Для некоторых частных случаев известны оптимальные эффективные методы (сложности ): SLINK для односвязной и CLINK для полносвязной кластеризации.
Кластеризация на основе центроида
В кластеризации на основе центроидов каждый кластер представлен центральным вектором, который не обязательно является элементом набора данных. Когда число кластеров фиксировано на k, алгоритм k-средних дает формальное определение как задачу оптимизации: найти k центров кластеров и отнести объекты к ближайшему центру кластера таким образом, чтобы минимизировать сумму квадратов расстояний до центров кластеров. Сама задача оптимизации известна как NP-трудная, поэтому обычно ищутся лишь приближенные решения. Особенно хорошо известен приближенный метод – алгоритм Ллойда, часто называемый просто «k-средних» (хотя другой алгоритм впервые предложил это название). Однако он находит только локальный оптимум и обычно запускается многократно с различными случайными инициализациями. Вариации k-средних часто включают в себя такие оптимизации, как выбор наилучшего результата из нескольких запусков, а также ограничение центроидов элементами набора данных (k-медоидов), выбор медиан (k-медианы), менее случайный выбор начальных центров (k-means++) или разрешение нечеткого отнесения к кластерам (нечеткие c-средние). Большинству алгоритмов типа k-средних требуется заранее задавать количество кластеров – k – что считается одним из главных недостатков этих алгоритмов. Кроме того, алгоритмы предпочитают кластеры примерно одинакового размера, поскольку всегда относят объект к ближайшему центроиду. Это часто приводит к некорректному определению границ кластеров (что неудивительно, поскольку алгоритм оптимизирует центры кластеров, а не границы). K-средние обладает рядом интересных теоретических свойств. Во-первых, он разбивает пространство данных на структуру, известную как диаграмма Вороного. Во-вторых, он концептуально близок к классификации по ближайшим соседям и поэтому популярен в машинном обучении. В-третьих, его можно рассматривать как вариант моделирующей кластеризации, а алгоритм Ллойда – как вариант алгоритма максимизации ожиданий для этой модели, который будет рассмотрен ниже. Задачи кластеризации на основе центроидов, такие как k-средних и k-медоидов, являются частными случаями задачи размещения объектов без ограничений по мощности, являющейся канонической задачей в области исследования операций и вычислительной геометрии. В базовой задаче размещения объектов (которая имеет множество вариантов, моделирующих более сложные сценарии) необходимо найти оптимальное расположение складов для обслуживания заданного набора потребителей. Можно рассматривать «склады» как центроиды кластеров, а «места расположения потребителей» – как данные, подлежащие кластеризации. Это позволяет применять хорошо разработанные алгоритмические решения из литературы по задаче размещения объектов к рассматриваемой задаче кластеризации на основе центроидов.
Кластеризация на основе модели
Наиболее тесно связанным со статистикой каркасом кластеризации является кластеризация на основе моделей, которая базируется на моделях распределения. Этот подход моделирует данные как происходящие из смеси вероятностных распределений. Он обладает преимуществами, предоставляя обоснованные статистические ответы на вопросы о количестве кластеров, методе или модели кластеризации, а также о способах обнаружения и обработки выбросов. Несмотря на отличную теоретическую базу, эти методы подвержены переобучению, если не накладываются ограничения на сложность модели. Более сложная модель, как правило, способна лучше объяснить данные, что затрудняет выбор подходящей сложности модели. Стандартные методы кластеризации на основе моделей включают более экономные модели, основанные на разложении матриц ковариации на собственные значения, которые обеспечивают баланс между переобучением и соответствием данным. Одним из известных методов является модель гауссовских смесей (с использованием алгоритма максимизации ожиданий). Здесь набор данных обычно моделируется фиксированным (для предотвращения переобучения) количеством гауссовских распределений, которые инициализируются случайным образом, а их параметры итеративно оптимизируются для лучшего соответствия набору данных. Это сходится к локальному оптимуму, поэтому несколько запусков могут давать разные результаты. Для получения жесткой кластеризации объекты часто затем назначаются гауссовскому распределению, которому они наиболее вероятно принадлежат; для мягкой кластеризации это не требуется. Кластеризация на основе распределений создает сложные модели для кластеров, способные улавливать корреляцию и зависимость между признаками. Однако эти алгоритмы возлагают дополнительное бремя на пользователя: для многих реальных наборов данных может не существовать четко определенной математической модели (например, предположение о гауссовском распределении является достаточно сильным допущением относительно данных).
Последние события
В последние годы были предприняты значительные усилия по улучшению производительности существующих алгоритмов. Среди них – CLARANS и BIRCH. В связи с растущей потребностью в обработке всё более крупных наборов данных (также известных как большие данные), увеличивается готовность жертвовать семантическим значением формируемых кластеров ради повышения производительности. Это привело к разработке методов предварительной кластеризации, таких как кластеризация Canopy, которые могут эффективно обрабатывать огромные объемы данных, однако полученные "кластеры" представляют собой лишь грубое предварительное разбиение набора данных для последующего анализа этих разбиений с использованием существующих, более медленных методов, таких как k-средних. Для данных высокой размерности многие существующие методы оказываются неэффективными из-за "проклятия размерности", которое делает определенные функции расстояния проблематичными в пространствах высокой размерности. Это привело к разработке новых алгоритмов кластеризации для данных высокой размерности, ориентированных на кластеризацию подпространств (где используются лишь некоторые атрибуты, а модели кластеров включают релевантные атрибуты для каждого кластера) и корреляционную кластеризацию, которая также ищет произвольно повернутые ("коррелированные") подпространственные кластеры, моделируемые посредством корреляции их атрибутов. Примерами таких алгоритмов являются CLIQUE и SUBCLU. Идеи, заимствованные из методов кластеризации на основе плотности (в частности, семейства алгоритмов DBSCAN/OPTICS), были адаптированы для кластеризации подпространств (HiSC, иерархическая кластеризация подпространств и DiSH) и корреляционной кластеризации (HiCO, иерархическая корреляционная кластеризация, 4C с использованием "корреляционной связности" и ERiC, исследующая иерархические корреляционные кластеры на основе плотности). Было предложено несколько различных систем кластеризации, основанных на взаимной информации. Одна из них – вариация метрики информации Марины Майлы, другая – обеспечивает иерархическую кластеризацию. С использованием генетических алгоритмов можно оптимизировать широкий спектр различных целевых функций, включая взаимную информацию. Кроме того, распространение убеждений, недавнее достижение в области компьютерных наук и статистической физики, привело к созданию новых типов алгоритмов кластеризации.