Какие стоп-критерии для агломерационной иерархической кластеризации используются на практике?

32

Я нашел обширную литературу, предлагающую всевозможные критерии (например, Glenn et al. 1985 (pdf) и Jung et al. 2002 (pdf)). Однако большинство из них не так легко реализовать (по крайней мере, с моей точки зрения). Я использую scipy.cluster.hierarchy для получения кластерной иерархии, и сейчас я пытаюсь решить, как формировать плоские кластеры из этого. Моя цель состоит в том, чтобы обнаружить общие закономерности в моих наблюдениях, поэтому у меня нет ссылок для сравнения полученной кластеризации. Кто-нибудь может предложить прагматичное решение?

Бьерн Поллекс
источник
На моей веб-странице есть коллекция zip «Критерии кластеризации» с описанием (и функциями SPSS) ряда популярных внутренних критериев кластеризации (правила остановки). Для вашей информации.
ttnphns

Ответы:

18

Следующая запись в Википедии на самом деле довольно хорошо объясняет наиболее популярные и относительно простые методы:

Колено Методы эвристические описано там, вероятно, наиболее популярные из - за его простое объяснение (количество дисперсии объясняется количествами кластеров) в сочетании с визуальной проверкой. Теоретико метод информации не трудно реализовать либо и страница имеет некоторый псевдокод вы могли бы использовать , чтобы начать. Последний аналогичен штрафной вероятности, основанной на сложности модели, как в хорошо известных информационных критериях, таких как AIC, BIC и т. Д.

АРС
источник
Благодарность! Статья в Википедии об иерархической кластеризации не ссылается на нее.
Бьорн Поллекс,
2
О верно. Исправлено теперь под ссылками "см. Также", спасибо за указание на это!
АРС
В методе Elbow, что, если объекты, которые будут кластеризованы, являются довольно «сложными»? Я имею в виду, что это не простые точки, а сложные коллекции данных. Я выяснил, что они попарно расстояние (самоопределение расстояния). Как бы я рассчитал так называемую «дисперсию», чтобы применить метод локтя?
Sibbs Gambling
17

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

Теперь, что касается обычных статистических критериев, используемых для принятия решения о том, когда следует прекратить агрегирование данных, как указывает @ars, большинство из них являются визуально ориентированными критериями , включая анализ дендрограммы или проверку профилей кластеров, также называемых силуэтами (Rousseeuw, 1987). , Несколько числовых критериев , также известных как индексы достоверности, были также предложены, например, индекс достоверности Данна, индекс достоверности Дэвиса-Болдина, индекс С, гамма Хьюберта и многие другие. Иерархическая кластеризация часто запускается вместе с k-средних (на самом деле, несколько экземпляров k-средних, поскольку это стохастический алгоритм), так что это добавляет поддержку найденным решениям кластеризации. Я не знаю, доступен ли весь этот материал в Python, но в R доступно огромное количество методов (см.Представление задачи кластера , уже цитируемое @mbq для соответствующего вопроса: Какие инструменты можно использовать для применения алгоритмов кластеризации в MovieLens? ). Другие подходы включают нечеткую кластеризацию и кластеризацию на основе моделей (также называемую анализом скрытых признаков в психометрическом сообществе), если вы ищете более надежный способ выбора количества кластеров в ваших данных.

Кстати, я только что натолкнулся на эту веб-страницу, scipy-cluster , которая является расширением Scipy для генерации, визуализации и анализа иерархических кластеров . Может быть, это включает в себя другие функции? Я также слышал о PyChem, который предлагает довольно хорошие вещи для многомерного анализа.

Следующая ссылка также может быть полезна:

Steinley, D. & Brusco, MJ (2008). Выбор переменных в кластерном анализе: эмпирическое сравнение восьми процедур. Психометрика , 73 , 125-144.

хл
источник
Спасибо за этот отличный ответ! На самом деле модуль иерархической кластеризации, который вы показали, уже является частью scipy. Кроме того, Scipy обеспечивает реализацию k-средних, так что я мог легко использовать это.
Бьорн Поллекс
Хорошо, я не стал вдаваться в подробности. Для k-средних вы должны обратить внимание на тот факт, что нам обычно нужны два внешних цикла для проверки кластерного решения (один, где вы меняете количество кластеров, а другой - для изменения начального числа - цель состоит в том, чтобы минимизировать RSS); затем вы можете использовать статистику Gap для выбора оптимального количества кластеров.
ЧЛ
5

Недавно я стал фондом метода визуализации кластерограммы (реализованного в R).

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

альтернативный текст

Таль Галили
источник