Я нашел обширную литературу, предлагающую всевозможные критерии (например, Glenn et al. 1985 (pdf) и Jung et al. 2002 (pdf)). Однако большинство из них не так легко реализовать (по крайней мере, с моей точки зрения). Я использую scipy.cluster.hierarchy для получения кластерной иерархии, и сейчас я пытаюсь решить, как формировать плоские кластеры из этого. Моя цель состоит в том, чтобы обнаружить общие закономерности в моих наблюдениях, поэтому у меня нет ссылок для сравнения полученной кластеризации. Кто-нибудь может предложить прагматичное решение?
clustering
Бьерн Поллекс
источник
источник
Ответы:
Следующая запись в Википедии на самом деле довольно хорошо объясняет наиболее популярные и относительно простые методы:
Колено Методы эвристические описано там, вероятно, наиболее популярные из - за его простое объяснение (количество дисперсии объясняется количествами кластеров) в сочетании с визуальной проверкой. Теоретико метод информации не трудно реализовать либо и страница имеет некоторый псевдокод вы могли бы использовать , чтобы начать. Последний аналогичен штрафной вероятности, основанной на сложности модели, как в хорошо известных информационных критериях, таких как AIC, BIC и т. Д.
источник
Довольно сложно дать четкое решение о том, как выбрать «лучшее» количество кластеров в ваших данных, независимо от того, какой метод кластеризации вы используете, потому что Cluster Analysis стремится изолировать группы статистических единиц (будь то отдельные лица или переменные). ) для исследовательских или описательных целей, по существу. Следовательно, вы также должны интерпретировать вывод вашей схемы кластеризации, и несколько кластерных решений могут быть одинаково интересны.
Теперь, что касается обычных статистических критериев, используемых для принятия решения о том, когда следует прекратить агрегирование данных, как указывает @ars, большинство из них являются визуально ориентированными критериями , включая анализ дендрограммы или проверку профилей кластеров, также называемых силуэтами (Rousseeuw, 1987). , Несколько числовых критериев , также известных как индексы достоверности, были также предложены, например, индекс достоверности Данна, индекс достоверности Дэвиса-Болдина, индекс С, гамма Хьюберта и многие другие. Иерархическая кластеризация часто запускается вместе с k-средних (на самом деле, несколько экземпляров k-средних, поскольку это стохастический алгоритм), так что это добавляет поддержку найденным решениям кластеризации. Я не знаю, доступен ли весь этот материал в Python, но в R доступно огромное количество методов (см.Представление задачи кластера , уже цитируемое @mbq для соответствующего вопроса: Какие инструменты можно использовать для применения алгоритмов кластеризации в MovieLens? ). Другие подходы включают нечеткую кластеризацию и кластеризацию на основе моделей (также называемую анализом скрытых признаков в психометрическом сообществе), если вы ищете более надежный способ выбора количества кластеров в ваших данных.
Кстати, я только что натолкнулся на эту веб-страницу, scipy-cluster , которая является расширением Scipy для генерации, визуализации и анализа иерархических кластеров . Может быть, это включает в себя другие функции? Я также слышал о PyChem, который предлагает довольно хорошие вещи для многомерного анализа.
Следующая ссылка также может быть полезна:
Steinley, D. & Brusco, MJ (2008). Выбор переменных в кластерном анализе: эмпирическое сравнение восьми процедур. Психометрика , 73 , 125-144.
источник
Недавно я стал фондом метода визуализации кластерограммы (реализованного в R).
Я использую его для дополнительного метода оценки «хорошего» количества кластеров. Расширить его до других методов кластеризации не так сложно (я на самом деле сделал это, просто не смог опубликовать код)
источник