Aqui está um resumo de vários algoritmos de armazenamento em cluster que podem ajudar a responder à pergunta
"qual técnica de agrupamento devo usar?"
Não há objetivamente "correta" algoritmo de agrupamento Ref
Os algoritmos de cluster podem ser classificados com base em seu "modelo de cluster". Um algoritmo projetado para um tipo específico de modelo geralmente falha em um tipo diferente de modelo. Por exemplo, os meios-k não conseguem encontrar aglomerados não convexos, podem encontrar apenas aglomerados de formato circular.
Portanto, entender esses "modelos de cluster" se torna a chave para entender como escolher entre os vários algoritmos / métodos de cluster. Os modelos de cluster típicos incluem:
[1] Modelos de conectividade: constrói modelos com base na conectividade à distância. Por exemplo, cluster hierárquico. Usado quando precisamos de particionamento diferente com base na altura de corte da árvore. Função R: hclust no pacote de estatísticas.
[2] Modelos centróides: constrói modelos representando cada cluster por um único vetor médio. Usado quando precisamos de particionamento nítido (em oposição ao cluster nebuloso descrito posteriormente). Função R: kmeans no pacote de estatísticas.
[3] Modelos de distribuição: constrói modelos baseados em distribuições estatísticas, como distribuições normais multivariadas usadas pelo algoritmo de maximização de expectativa. Usado quando as formas de cluster podem ser arbitrárias, ao contrário de k-means, que assume clusters circulares. Função R: emcluster na embalagem do emcluster.
[4] Modelos de densidade: constrói modelos baseados em clusters como regiões densas conectadas no espaço de dados. Por exemplo, DBSCAN e OPTICS. Usado quando as formas de cluster podem ser arbitrárias, diferentemente do k-means, que assume clusters circulares. Função R dbscan no pacote dbscan.
[5] Modelos de subespaço: constrói modelos baseados em membros de cluster e atributos relevantes. Por exemplo, biclustering (também conhecido como co-clustering ou cluster de dois modos). Usado quando o cluster simultâneo de linhas e colunas é necessário. Função R biclust no pacote biclust.
[6] Modelos de grupo: constrói modelos com base nas informações de agrupamento. Por exemplo, filtragem colaborativa (algoritmo de recomendação). Função R Recomendador no pacote recomenderlab.
[7] Modelos baseados em gráficos: constrói modelos baseados em clique. Os algoritmos de detecção da estrutura da comunidade tentam encontrar subgráficos densos em gráficos direcionados ou não direcionados. Por exemplo, função R cluster_walktrap no pacote igraph.
[8] Mapa de recursos auto-organizáveis de Kohonen: constrói modelos baseados em redes neurais. Função R som no pacote kohonen.
[9] Clustering espectral: constrói modelos com base na estrutura de conglomerados não convexos ou quando uma medida do centro não é uma descrição adequada do cluster completo. Função R specc no pacote kernlab.
[10] agrupamento de subespaços: para dados de alta dimensão, as funções de distância podem ser problemáticas. modelos de cluster incluem os atributos relevantes para o cluster. Por exemplo, função hddc no pacote R HDclassif.
[11] Agrupamento de sequências: agrupe sequências relacionadas. Pacote rBlast.
[12] Propagação por afinidade: constrói modelos com base na passagem de mensagens entre pontos de dados. Não requer que o número de clusters seja determinado antes da execução do algoritmo. É melhor para determinadas tarefas de visão computacional e biologia computacional, por exemplo, agrupar imagens de rostos humanos e identificar transcrições regulamentadas do que k-means, Ref Rpackage APCluster.
[13] Cluster de fluxo: cria modelos baseados em dados que chegam continuamente, como registros telefônicos, transações financeiras etc. Por exemplo, pacote R BIRCH [ https://cran.r-project.org/src/contrib/Archive/birch/]
[14] Cluster de documentos (ou cluster de texto): constrói modelos baseados em SVD. Ele foi usado na extração de tópicos. Por exemplo, o Carrot [ http://search.carrot2.org] é um mecanismo de cluster de resultados de pesquisa de código aberto que pode agrupar documentos em categorias temáticas.
[15] Modelo de classe latente: relaciona um conjunto de variáveis multivariadas observadas a um conjunto de variáveis latentes. A ACV pode ser usada na filtragem colaborativa. Função R O recomendador no pacote recomenderlab possui a funcionalidade de filtragem colaborativa.
[16] Biclustering: usado para agrupar simultaneamente linhas e colunas de dados em dois modos. Por exemplo, função R biclust na embalagem biclust.
[17] Agrupamento suave (agrupamento difuso): cada objeto pertence a cada cluster até um certo grau. Por exemplo, função R Fclust na embalagem fclust.