Вот краткое изложение нескольких алгоритмов кластеризации, которые могут помочь ответить на вопрос
"Какой метод кластеризации я должен использовать?"
Там нет объективно «правильно» алгоритм кластеризации реф
Алгоритмы кластеризации можно классифицировать на основе их «кластерной модели». Алгоритм, разработанный для модели определенного типа, обычно не работает на модели другого типа. Например, k-means не может найти невыпуклые кластеры, он может найти только кластеры круглой формы.
Следовательно, понимание этих «кластерных моделей» становится ключом к пониманию того, как выбирать среди различных алгоритмов / методов кластеризации. Типичные кластерные модели включают в себя:
[1] Модели подключения: Создание моделей на основе дистанционной связи. Например, иерархическая кластеризация. Используется, когда нам нужно различное разбиение в зависимости от высоты среза дерева. Функция R: hclust в пакете статистики.
[2] Модели Centroid: строит модели, представляя каждый кластер одним средним вектором. Используется, когда нам нужно четкое разбиение (в отличие от нечеткой кластеризации, описанной ниже). Функция R: kmeans в пакете статистики.
[3] Модели распределения: строит модели на основе статистических распределений, таких как многовариантные нормальные распределения, используемые алгоритмом максимизации ожидания. Используется, когда формы кластеров могут быть произвольными в отличие от k-средних, которые предполагают круговые кластеры. Функция R: emcluster в пакете emcluster.
[4] Модели плотности: строит модели на основе кластеров как связанных плотных областей в пространстве данных. Например, DBSCAN и OPTICS. Используется, когда формы кластеров могут быть произвольными в отличие от k-средних, которые предполагают круговые кластеры. Функция R dbscan в пакете dbscan.
[5] Подпространственные модели: создает модели на основе элементов кластера и соответствующих атрибутов. Например, бикластеризация (также известная как совместная кластеризация или двухрежимная кластеризация). Используется, когда требуется одновременная кластеризация строк и столбцов. R-функция biclust в упаковке biclust.
[6] Групповые модели: создает модели на основе информации о группировке. Например, совместная фильтрация (алгоритм рекомендации). Функция R Рекомендатор в пакете Recommenderlab.
[7] Основанные на графике модели: Строит модели, основанные на клике. Алгоритмы обнаружения структуры сообщества пытаются найти плотные подграфы в ориентированных или неориентированных графах. Например, функция R cluster_walktrap в пакете igraph.
[8] Карта самоорганизующихся функций Кохонена: строит модели на основе нейронной сети. R функция сом в пакете Кохонена.
[9] Спектральная кластеризация: строит модели на основе невыпуклой кластерной структуры или когда мера центра не является подходящим описанием полного кластера. R-функция specc в пакете kernlab.
[10] подпространственная кластеризация: для многомерных данных функции расстояния могут быть проблематичными. Кластерные модели включают соответствующие атрибуты для кластера. Например, функция hddc в пакете R HDclassif.
[11] Кластеризация последовательностей: групповые последовательности, которые связаны между собой. rBlast пакет.
[12] Распространение сродства: Создание моделей на основе передачи сообщений между точками данных. Это не требует определения количества кластеров перед запуском алгоритма. Это лучше для определенных задач компьютерного зрения и вычислительной биологии, например, кластеризации изображений человеческих лиц и идентификации регулируемых транскриптов, чем k-средних, Ref Rpackage APCluster.
[13] Потоковая кластеризация: создает модели на основе постоянно поступающих данных, таких как телефонные записи, финансовые транзакции и т. Д. Например, пакет BIRCH R [ https://cran.r-project.org/src/contrib/Archive/birch/]
[14] Кластеризация документов (или текстовая кластеризация): строит модели на основе SVD. Используется в теме извлечения. Например, Carrot [ http://search.carrot2.org] - это механизм кластеризации результатов поиска с открытым исходным кодом, который может группировать документы по тематическим категориям.
[15] Модель скрытого класса: она связывает набор наблюдаемых многомерных переменных с набором скрытых переменных. LCA может использоваться в совместной фильтрации. Функция R Recommender в пакете Recommenderlab имеет функцию совместной фильтрации.
[16] Бикластеризация: используется для одновременной кластеризации строк и столбцов двухрежимных данных. Например, функция R biclust в упаковке biclust.
[17] Мягкая кластеризация (нечеткая кластеризация): каждый объект в определенной степени принадлежит каждому кластеру. Например, функция Fclust в пакете fclust.