Иерархическая кластеризация - Hierarchical clustering

В сбор данных и статистика, иерархическая кластеризация (также называется иерархический кластерный анализ или HCA) - метод кластерный анализ который стремится построить иерархия кластеров. Стратегии иерархической кластеризации обычно делятся на два типа:[1]

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

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

Стандартный алгоритм для иерархическая агломеративная кластеризация (HAC) имеет временная сложность из и требует память, что делает его слишком медленным даже для средних наборов данных. Однако для некоторых частных случаев оптимальные эффективные агломерационные методы (сложности ) известны: SLINK[3] для одинарная связь и CLINK[4] для кластеризация с полной связью. С куча время выполнения общего случая можно сократить до , улучшение вышеупомянутой границы , за счет дальнейшего увеличения требований к памяти. Во многих случаях накладные расходы на память при таком подходе слишком велики, чтобы сделать его практически применимым.

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

Разделительная кластеризация с исчерпывающим перебором , но обычно используют более быстрые эвристики для выбора разбиений, например k-средних.

Кластерное несходство

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

Метрическая

Выбор подходящей метрики будет влиять на форму кластеров, поскольку некоторые элементы могут быть относительно ближе друг к другу по одной метрике, чем по другой. Например, в двух измерениях под метрикой манхэттенского расстояния расстояние между исходной точкой (0,0) и (.5, .5) совпадает с расстоянием между исходной точкой и (0, 1), а под Метрика евклидова расстояния у последнего строго больше.

Некоторые часто используемые метрики для иерархической кластеризации:[5]

ИменаФормула
Евклидово расстояние
Квадратное евклидово расстояние
Манхэттенское расстояние
Максимальное расстояние
Расстояние Махаланобиса где S это Ковариационная матрица

Для текстовых или других нечисловых данных такие показатели, как Расстояние Хэмминга или Расстояние Левенштейна часто используются.

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

Критерии связи

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

Некоторые часто используемые критерии связи между двумя наборами наблюдений А и B находятся:[6][7]

ИменаФормула
Максимум или кластеризация с полной связью
Минимум или одинарная кластеризация
Кластеризация невзвешенных средних связей (или UPGMA )
Кластеризация средневзвешенных связей (или WPGMA )
Кластеризация центроидов, или UPGMC где и центроиды кластеров s и тсоответственно.
Кластеризация с минимальной энергией

где d - выбранная метрика. Другие критерии привязки включают:

  • Сумма всей внутрикластерной дисперсии.
  • Увеличение дисперсии объединяемого кластера (Критерий Уорда ).[8]
  • Вероятность появления кластеров-кандидатов из одной и той же функции распределения (V-связь).
  • Произведение внутренней и исходящей степени на графе k ближайших соседей (связь степени графа).[9]
  • Приращение некоторого дескриптора кластера (т. Е. Количества, определенного для измерения качества кластера) после слияния двух кластеров.[10][11][12]

Обсуждение

Иерархическая кластеризация имеет явное преимущество в том, что можно использовать любую допустимую меру расстояния. Фактически, сами наблюдения не требуются: все, что используется, - это матрица расстояний.

Пример агломеративной кластеризации

Необработанные данные

Например, предположим, что эти данные должны быть кластеризованы, а Евклидово расстояние это метрика расстояния.

Иерархическая кластеризация дендрограмма будет как таковой:

Традиционное представление

Обрезка дерева на заданной высоте даст разбиение на кластеры с выбранной точностью. В этом примере обрезка после второго ряда (сверху) дендрограмма даст кластеры {a} {b c} {d e} {f}. Обрезка после третьей строки даст кластеры {a} {b c} {d e f}, что является более грубой кластеризацией, с меньшим числом, но большими кластерами.

Этот метод строит иерархию из отдельных элементов путем постепенного объединения кластеров. В нашем примере у нас есть шесть элементов {a} {b} {c} {d} {e} и {f}. Первый шаг - определить, какие элементы объединить в кластер. Обычно мы хотим взять два самых близких элемента в соответствии с выбранным расстоянием.

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

Предположим, мы объединили два ближайших элемента б и c, теперь у нас есть следующие кластеры {а}, {б, c}, {d}, {е} и {ж} и хотите объединить их дальше. Для этого нам нужно взять расстояние между {a} и {b c} и, следовательно, определить расстояние между двумя кластерами. Обычно расстояние между двумя кластерами и является одним из следующих:

  • Среднее расстояние между элементами каждого кластера (также называемое средней кластеризацией связей, используемое, например, в UPGMA ):
  • Сумма всей внутрикластерной дисперсии.
  • Увеличение дисперсии объединяемого кластера (Метод Уорда[8])
  • Вероятность появления кластеров-кандидатов из одной и той же функции распределения (V-связь).

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

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

Разделительная кластеризация

Основной принцип разделяющей кластеризации был опубликован как алгоритм DIANA (DIvisive ANAlysis Clustering).[15] Изначально все данные находятся в одном кластере, а самый большой кластер разделяется до тех пор, пока каждый объект не станет отдельным. способы разбиения каждого кластера необходимы эвристики. ДИАНА выбирает объект с максимальной средней несхожестью, а затем перемещает в этот кластер все объекты, которые больше похожи на новый кластер, чем на остальные.

Программного обеспечения

Реализации с открытым исходным кодом

Иерархическая кластеризация дендрограмма из Набор данных Iris (с помощью р ). Источник
Иерархическая кластеризация и интерактивная визуализация дендрограмм в Пакет Orange Data Mining.
  • АЛГЛИБ реализует несколько алгоритмов иерархической кластеризации (single-link, full-link, Ward) в C ++ и C # с памятью O (n²) и временем выполнения O (n³).
  • ELKI включает несколько алгоритмов иерархической кластеризации, различные стратегии связи, а также эффективный SLINK,[3] КЛИНК[4] и алгоритмы Андерберга, гибкое извлечение кластеров из дендрограмм и другие кластерный анализ алгоритмы.
  • Октава, то GNU аналог MATLAB реализует иерархическую кластеризацию в функции «связывание».
  • оранжевый, программный пакет для интеллектуального анализа данных, включает иерархическую кластеризацию с интерактивной визуализацией дендрограмм.
  • р имеет множество пакетов, которые предоставляют функции для иерархической кластеризации.
  • SciPy реализует иерархическую кластеризацию в Python, включая эффективный алгоритм SLINK.
  • scikit-learn также реализует иерархическую кластеризацию в Python.
  • Weka включает иерархический кластерный анализ.

Коммерческие реализации

  • MATLAB включает иерархический кластерный анализ.
  • SAS включает иерархический кластерный анализ в PROC CLUSTER.
  • Mathematica включает пакет иерархической кластеризации.
  • NCSS включает иерархический кластерный анализ.
  • SPSS включает иерархический кластерный анализ.
  • Qlucore Omics Explorer включает иерархический кластерный анализ.
  • Stata включает иерархический кластерный анализ.
  • CrimeStat включает алгоритм иерархического кластера ближайшего соседа с графическим выводом для Географической информационной системы.

Смотрите также

использованная литература

  1. ^ Рокач, Лиор и Одед Маймон. «Методы кластеризации». Справочник по интеллектуальному анализу данных и открытию знаний. Springer US, 2005. 321-352.
  2. ^ Фрэнк Нильсен (2016). «Глава 8: Иерархическая кластеризация». Введение в HPC с MPI для науки о данных. Springer.
  3. ^ «Процедура DISTANCE: меры приближения». SAS / STAT 9.2 Руководство пользователя. Институт САС. Получено 2009-04-26.
  4. ^ «Процедура КЛАСТЕРА: методы кластеризации». SAS / STAT 9.2 Руководство пользователя. Институт САС. Получено 2009-04-26.
  5. ^ Székely, G.J .; Риццо, М. Л. (2005). «Иерархическая кластеризация через совместное расстояние между внутренними расстояниями: расширение метода минимальной дисперсии Уорда». Журнал классификации. 22 (2): 151–183. Дои:10.1007 / s00357-005-0012-9.
  6. ^ а б Уорд, Джо Х. (1963). «Иерархическая группировка для оптимизации целевой функции». Журнал Американской статистической ассоциации. 58 (301): 236–244. Дои:10.2307/2282967. JSTOR  2282967. Г-Н  0148188.
  7. ^ Чжан, Вэй; Ван, Сяоган; Чжао, Дели; Тан, Сяоу (2012). Фитцгиббон, Эндрю; Лазебник, Светлана; Перона, Пьетро; Сато, Йоичи; Шмид, Корделия (ред.). «График Степени Связи: Агломеративная кластеризация на ориентированном графе». Компьютерное зрение - ECCV 2012. Конспект лекций по информатике. Springer Berlin Heidelberg. 7572: 428–441. arXiv:1208.5092. Bibcode:2012arXiv1208.5092Z. Дои:10.1007/978-3-642-33718-5_31. ISBN  9783642337185. Смотрите также: https://github.com/waynezhanghk/gacluster
  8. ^ Чжан и др. «Агломеративная кластеризация с помощью максимального интеграла пути». Распознавание образов (2013).
  9. ^ Чжао и Тан. «Циклизация кластеров с помощью дзета-функции графика». Достижения в системах обработки нейронной информации. 2008 г.
  10. ^ Ма и др. «Сегментация многомерных смешанных данных с помощью кодирования и сжатия данных с потерями». IEEE Transactions on Pattern Analysis and Machine Intelligence, 29 (9) (2007): 1546-1562.
  11. ^ Фернандес, Альберто; Гомес, Серхио (2008). «Решение проблемы неединственности в агломеративной иерархической кластеризации с использованием мультидендрограмм». Журнал классификации. 25 (1): 43–65. arXiv:cs / 0608049. Дои:10.1007 / s00357-008-9004-х.
  12. ^ Legendre, P .; Лежандр, Л. (2003). Числовая экология. Elsevier Science BV.
  13. ^ Кауфман, Л., и Руссью, П. Дж. (1990). Поиск групп в данных - Введение в кластерный анализ. Публикация Wiley-Science John Wiley & Sons.

дальнейшее чтение