Иерархическая кластеризация - 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] Изначально все данные находятся в одном кластере, а самый большой кластер разделяется до тех пор, пока каждый объект не станет отдельным. способы разбиения каждого кластера необходимы эвристики. ДИАНА выбирает объект с максимальной средней несхожестью, а затем перемещает в этот кластер все объекты, которые больше похожи на новый кластер, чем на остальные.
Программного обеспечения
Реализации с открытым исходным кодом
- АЛГЛИБ реализует несколько алгоритмов иерархической кластеризации (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 включает алгоритм иерархического кластера ближайшего соседа с графическим выводом для Географической информационной системы.
Смотрите также
- Разделение двоичного пространства
- Иерархия ограничивающего объема
- Коричневая кластеризация
- Кладистика
- Кластерный анализ
- Вычислительная филогенетика
- Алгоритм кластеризации данных CURE
- Цель Дасгупты
- Дендрограмма
- Определение количества кластеров в наборе данных
- Иерархическая кластеризация сетей
- Хеширование с учетом местоположения
- Поиск ближайшего соседа
- Алгоритм цепочки ближайшего соседа
- Числовая таксономия
- Алгоритм ОПТИКИ
- Статистическое расстояние
- Стойкая гомология
использованная литература
- ^ Рокач, Лиор и Одед Маймон. «Методы кластеризации». Справочник по интеллектуальному анализу данных и открытию знаний. Springer US, 2005. 321-352.
- ^ Фрэнк Нильсен (2016). «Глава 8: Иерархическая кластеризация». Введение в HPC с MPI для науки о данных. Springer.
- ^ а б Р. Сибсон (1973). «SLINK: оптимально эффективный алгоритм для метода одноканального кластера» (PDF). Компьютерный журнал. Британское компьютерное общество. 16 (1): 30–34. Дои:10.1093 / comjnl / 16.1.30.
- ^ а б Д. Дефайс (1977). «Эффективный алгоритм для метода полной ссылки». Компьютерный журнал. Британское компьютерное общество. 20 (4): 364–366. Дои:10.1093 / comjnl / 20.4.364.
- ^ «Процедура DISTANCE: меры приближения». SAS / STAT 9.2 Руководство пользователя. Институт САС. Получено 2009-04-26.
- ^ «Процедура КЛАСТЕРА: методы кластеризации». SAS / STAT 9.2 Руководство пользователя. Институт САС. Получено 2009-04-26.
- ^ Székely, G.J .; Риццо, М. Л. (2005). «Иерархическая кластеризация через совместное расстояние между внутренними расстояниями: расширение метода минимальной дисперсии Уорда». Журнал классификации. 22 (2): 151–183. Дои:10.1007 / s00357-005-0012-9.
- ^ а б Уорд, Джо Х. (1963). «Иерархическая группировка для оптимизации целевой функции». Журнал Американской статистической ассоциации. 58 (301): 236–244. Дои:10.2307/2282967. JSTOR 2282967. Г-Н 0148188.
- ^ Чжан, Вэй; Ван, Сяоган; Чжао, Дели; Тан, Сяоу (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
- ^ Чжан и др. «Агломеративная кластеризация с помощью максимального интеграла пути». Распознавание образов (2013).
- ^ Чжао и Тан. «Циклизация кластеров с помощью дзета-функции графика». Достижения в системах обработки нейронной информации. 2008 г.
- ^ Ма и др. «Сегментация многомерных смешанных данных с помощью кодирования и сжатия данных с потерями». IEEE Transactions on Pattern Analysis and Machine Intelligence, 29 (9) (2007): 1546-1562.
- ^ Фернандес, Альберто; Гомес, Серхио (2008). «Решение проблемы неединственности в агломеративной иерархической кластеризации с использованием мультидендрограмм». Журнал классификации. 25 (1): 43–65. arXiv:cs / 0608049. Дои:10.1007 / s00357-008-9004-х.
- ^ Legendre, P .; Лежандр, Л. (2003). Числовая экология. Elsevier Science BV.
- ^ Кауфман, Л., и Руссью, П. Дж. (1990). Поиск групп в данных - Введение в кластерный анализ. Публикация Wiley-Science John Wiley & Sons.
дальнейшее чтение
- Кауфман, Л .; Rousseeuw, P.J. (1990). Поиск групп в данных: введение в кластерный анализ (1-е изд.). Нью-Йорк: Джон Вили. ISBN 0-471-87876-6.
- Хасти, Тревор; Тибширани, Роберт; Фридман, Джером (2009). «14.3.12 Иерархическая кластеризация». Элементы статистического обучения (2-е изд.). Нью-Йорк: Спрингер. С. 520–528. ISBN 978-0-387-84857-0. Архивировано из оригинал (PDF) на 2009-11-10. Получено 2009-10-20.