O que é agrupamento hierárquico?

Autores

Joshua Noble

Data Scientist

O que é agrupamento hierárquico?

O agrupamento hierárquico é um algoritmo de aprendizado de máquina não supervisionado que agrupa dados em uma árvore de clusters aninhados. Os principais tipos são o aglomerativo e odivisivo. A análise de clusters hierárquicos ajuda a encontrar padrões e conexões em conjuntos de dados. Os resultados são apresentados em um diagrama de dendrograma, que mostra as relações de distância entre os clusters.

Agrupamento é uma técnica de aprendizado de máquina não supervisionado usada na análise de dados para detectar e agrupar objetos similares. A análise de clusters hierárquicos (HCA), ou agrupamento hierárquico, agrupa objetos em uma hierarquia de clusters sem impor uma ordem linear dentro deles. Muitas disciplinas, como biologia, análise de imagens e ciências sociais, utilizam métodos de agrupamento hierárquico para explorar e reconhecer padrões em conjuntos de dados. Os casos de uso incluem categorização de populações em pesquisa clínica, segmentação de clientes e detecção de comunidades de nós em modelos de rede.

Há dois tipos de agrupamento hierárquico:

- Abordagem aglomerativa ou de baixo para cima1, que mescla repetidamente os clusters em grupos maiores até surgir um único cluster.

- Abordagem divisiva ou de cima para baixo quecomeça com todos os dados em um único cluster e continua dividindo clusters sucessivos até que todos os clusters sejam únicos.

A análise do agrupamento hierárquico tem altos custos computacionais. Embora o uso de heap possa reduzir o tempo de computação, os requisitos de memória aumentam. Ambos os tipos de agrupamento divisivo e aglomerativo são "gananciosos", o que significa que o algoritmo decide quais clusters mesclam ou dividem, fazendo a escolha localmente ideal em cada estágio do processo. Também é possível aplicar um critério de parada, em que o algoritmo interrompe a aglomeração ou a divisão de clusters quando atinge um número predeterminado de clusters.

Um diagrama semelhante a uma árvore chamado dendrograma3 é frequentemente utilizado para visualizar a hierarquia de clusters. Ele exibe a ordem na qual os clusters foram mesclados ou divididos e mostra a semelhança ou distância entre os pontos de dados. Dendogramas também podem ser entendidos como uma lista aninhada de listas4 com atributos.

Gráfico de dispersão dos pontos A a F à esquerda e a estrutura de árvore do dendrograma resultante à direita

Como funciona o agrupamento hierárquico

Os algoritmos de agrupamento hierárquico utilizam o conceito de uma matriz de dissimilaridade para decidir quais clusters mesclar ou dividir. Dissimilaridade é a distância entre dois pontos de dados, medida por um método de ligação escolhido. Os valores em uma matriz de dissimilaridade expressam:

- A distância5, uma distância euclidiana como exemplo, entre pontos únicos de um conjunto

- Um critério de agrupamento de ligação, que especifica a dissimilaridade em função das distâncias de pares de pontos entre conjuntos

Métodos de ligação

Vamos explorar os métodos mais comuns de vinculação de distância euclidiana. Exemplos de outras métricas de distância que podem ser usadas incluem a distância de Minkowski, Hamming, Mahalanobis, Hausdorf e Manhattan. Observe que cada método de vinculação gera diferentes clusters a partir do mesmo conjunto de dados. A seleção do método de agrupamento de ligação apropriado depende de fatores como o tipo de dados sendo agrupados, a densidade dos dados, a forma do cluster e se há valores discrepantes ou ruído no conjunto de dados.

Ligação mínima (única)

O método de ligação única analisa as distâncias em pares entre os itens em dois clusters e, em seguida, usa a distância mínima entre os clusters. O método min lida bem com formas de clusters não elípticas, mas será afetado por ruídos e valores discrepantes. Ele apresenta uma limitação conhecida como efeito de encadeamento6. Alguns pontos que criam uma ponte entre um par de clusters podem resultar na fusão dos dois clusters em um. Os critérios de ligação mínima podem ser representados como:

 mina∈A,b∈Bd(a,b)

onde A e B são dois conjuntos de observações e d é uma função de distância.

Ligação máxima (completa)

As distâncias de clusters também podem ser calculadas com base nos pontos que estão mais distantes uns dos outros. O método max é menos sensível a ruído do que o método min e valores discrepantes, mas sua utilização pode distorcer os resultados quando há clusters globulares ou grandes. O max-linkage frequentemente produz clusters mais esféricos do que min-linkage. O max-linkage pode ser representado na fórmula:

 maxa∈A,b∈Bd(a,b)

onde A e B são dois conjuntos de observações e d é a distância.

Link médio

Esses métodos, lançados por Sokal e Michener, definem a distância entre clusters como a distância média entre pares em todos os pares de pontos nos clusters. O algoritmo pode ser o método de grupos de pares não ponderados com média aritmética (UPGMA) ou o método de grupos de pares ponderados com média aritmética (WPGMA). O significado de "não ponderado" aqui é que todas as distâncias contribuem igualmente para cada média.

O UPGMA é representado pela fórmula

 1∣A∣·∣B∣∑a∈A∑b∈Bd(a,b)

onde *A* e *B* são dois conjuntos de observações, e *d* é a distância.

WPGMA é representado pela fórmula

 d(i∪j,k)=d(i,k)+d(j,k)2

onde i e j são os clusters mais próximos sendo combinados em cada etapa para formar um novo cluster da união de i e j. Podemos, então, calcular a distância para outro cluster k, que é a média aritmética das distâncias médias entre os pontos de dados em k e i e k e j.

Ligação centróide

Aqui, utilizamos a distância entre os centros dos clusters, ou centroides. A distância entre centroides é calculada usando uma função de distância:

∥μA-μB∥2

onde μA é o centroide de A e μB é o centroide de B.

Método de variância mínima de Ward

Joe H. Ward lançou o método de aumento mínimo da soma dos quadrados (Missq)8 na década de 1960. Cada ponto de dados começa em seu próprio cluster. Essa abordagem significa que a soma dos quadrados entre os pontos de dados está inicialmente em zero, depois aumenta à medida que mesclamos os clusters. O método de Ward minimiza a soma das distâncias quadradas dos pontos dos centros dos clusters à medida que são mesclados. O método de Ward é uma boa escolha para variáveis quantitativas9 e é menos afetado por ruídos ou valores discrepantes. Pode ser representado como:

 ∣A∣·∣B∣A∪B∥μA-μB∥2=∑x∈A∪B∥x-μA∪B∥2-∑x∈A∥x-μA∥2-∑x∈B∥x-μB∥2

onde a média de A e a média de B são os centroides de A e B, respectivamente, e x é um ponto de dados que pertence à união de A e B

Algoritmo de Lance-Williams

O método de variância mínima de Ward pode ser refinado utilizando-se o algoritmo de Lance-Williams. Esses algoritmos utilizam uma fórmula recursiva para atualizar distâncias de clusters e encontrar o par de clusters mais próximo ideal para mesclar.

Etapas de agrupamento agregativo

No agrupamento hierárquico aglomerativo, também conhecido como aninhamento aglomerativo (AGNES), cada ponto de dados começa como um cluster. O algoritmo usa um critério de agrupamento de ligação selecionado com base em uma matriz de disparidade para decidir qual par de clusters unir. O algoritmo sobe na hierarquia e continua emparelhando clusters até que tudo tenha sido vinculado, criando uma série hierárquica de clusters aninhados. Basicamente, as 10 etapas do agrupamento aglomerativo são:

1. Calcule a matriz de dissimilaridade com uma métrica de distância específica.

2. Atribua cada ponto de dados a um cluster.

3. Mescle os clusters com base em um critério de ligação para a semelhança entre os clusters.

4. Atualize a matriz de distância.

5. Repita as etapas 3 e 4 até que permaneça um único cluster ou qualquer critério de parada seja atendido.

Etapas divisivas de agrupamento

Os princípios por trás do agrupamento hierárquico divisivo foram desenvolvidos por Macnaughton-Smith e outros11 em 1964 e explorados mais profundamente por Kaufman e Rousseeuw com seu algoritmo DIANA (Divisive ANAlysis clustering)12 em 1990. O agrupamento divisivo usa a abordagem oposta à do agrupamento aglomerativo. Todos os pontos de dados começam em um único cluster, que é dividido repetidamente em mais clusters. A divisão ocorre até que todos os clusters restantes sejam singletons ou que um critério de parada, como um número predefinido de clusters, seja atendido. Os métodos divisivos são melhores na identificação de grandes clusters13 e podem ser mais precisos do que os métodos aglomerativos porque o algoritmo considera toda a distribuição do conjunto de dados desde o início do processo.

Para melhorar a eficiência, os métodos divisivos usam algoritmos de agrupamento plano, como o k-means , para dividir o conjunto de dados em clusters. O número de clusters deve ser especificado desde o início. O algoritmo k-means divide clusters minimizando a soma dos quadrados dentro do cluster entre os pontos do centroide. Isso é conhecido como critério de inércia14. As etapas do agrupamento divisivo15 são:

1. Comece com todos os pontos de dados para um tamanho de conjunto de dados N (d1, d2, d3 ... dN) em um cluster.

2. Divida o cluster em dois clusters diferentes ou heterogêneos com um método de agrupamento plano, como o algoritmo k-means.

3. Repita a etapa 2, escolhendo o melhor cluster para dividir e removendo os valores discrepantes do cluster menos coeso após cada iteração.

4. Pare quando cada exemplo estiver em seu próprio cluster individual; caso contrário, repita a etapa 3.

Interpretação dos resultados de agrupamento hierárquico

Os resultados dos clusters são normalmente apresentados em um dendograma (estrutura de árvore binária). O eixo eixo x no dendograma representa os pontos de dados, e o eixo y, ou a altura das linhas, mostra a que distância os clusters estavam quando foram mesclados.

Você pode usar um dendograma para decidir quantos clusters16 estarão em seu modelo de agrupamento final. Uma estratégia é identificar o ponto de corte natural na árvore onde os galhos diminuem e se tornam mais longos. Ou então, o número de clusters é dado pelo número de linhas verticais cruzadas quando uma linha horizontal corta o dendograma.

Na imagem de exemplo mostrada aqui, a linha horizontal H1 corta duas linhas verticais. Isso mostra que há dois clusters nesse ponto do processo: um cluster com os pontos 5, 8 e 2 e um cluster com os pontos restantes. Quanto mais a linha horizontal puder se mover para cima ou para baixo sem cortar outras linhas horizontais no dendograma, melhor será a seleção desse número de clusters para o seu modelo de agrupamento. No exemplo abaixo, a linha horizontal H2 seleciona quatro clusters. H2 não pode se mover para cima e para baixo até H1 antes de cortar outras linhas horizontais. Esse cenário mostra que a escolha de dois clusters (H1) é provavelmente mais apropriada para o seu modelo de agrupamento.

O diagrama do dendrograma, traçando os pontos de dados (eixo x) e a altura das linhas mostram a distância entre os agrupamentos quando foram mesclados (eixo y) Corte de um dendograma com linhas horizontais para determinar o número de agrupamentos

Um modelo de agrupamento robusto17 cria clusters com alta similaridade intraclasse e baixa similaridade interclasse. No entanto, pode ser difícil definir a qualidade dos clusters, e a seleção do critério de ligação e dos números dos clusters pode afetar significativamente os resultados. Portanto, ao construir um modelo de agrupamento, experimente diferentes opções e selecione aquelas que melhor o ajudarem a explorar e revelar padrões no conjunto de dados para consideração futura. Os fatores a serem considerados18 incluem:

- O número de clusters práticos ou lógicos para o conjunto de dados (tamanho do conjunto de dados, formas de cluster, ruído etc.)

- Estatísticas, como os valores médio, máximo e mínimo para cada cluster

- A melhor métrica de disparidade ou critério de ligação a ser aplicado

- O impacto de quaisquer valores discrepantes ou variáveis de resultado

- Qualquer conhecimento específico de domínio ou conjunto de dados

Outros métodos para ajudar a determinar o número ideal de clusters19 são:

- O método do cotovelo, onde você traça a soma dos quadrados dentro do cluster em relação ao número de clusters e determina o "cotovelo" (o ponto em que o gráfico se nivela)

- Estatística de lacuna, onde você compara a soma real dos quadrados dentro do cluster com a soma esperada dos quadrados dentro do cluster para uma distribuição de referência nula e identifica a maior lacuna.

Mixture of Experts | 12 de dezembro, episódio 85

Decodificando a IA: resumo semanal das notícias

Participe do nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Casos de uso para agrupamento hierárquico

O agrupamento hierárquico dá aos cientistas de dados insights sobre a estrutura e os relacionamentos nos conjuntos de dados e pode ser aplicado em vários casos de uso.

Negócios

O agrupamento hierárquico pode ajudar a analisar tendências e segmentar dados de clientes, como agrupamento por escolha de produto, demografia, comportamento de compra, perfil de risco ou interações com redes sociais.

Pesquisa clínica e bioinformática

Os grupos de pacientes para pesquisa clínica podem chegar aos milhares. O agrupamento hierárquico ajuda a categorizar populações mistas em grupos mais homogêneos20 usando, por exemplo, critérios de diagnóstico, respostas fisiológicas ou mutações de DNA. Também pode ser aplicado a espécies de grupos por funcionalidades biológicas para entender o desenvolvimento evolutivo.

Processamento de imagens e informações

O agrupamento hierárquico é utilizado em aplicações de reconhecimento de texto baseadas em imagens para agrupar caracteres escritos à mão de acordo com sua forma. Também é utilizado para armazenar e recuperar informações usando determinados critérios ou para categorizar os resultados de pesquisas.

Implementando agrupamento hierárquico em Python ou R

Tanto a linguagem de programação Python quanto a R são amplamente utilizadas em ciência de dados. O Python é flexível e pode lidar com um amplo espectro de tarefas. Por outro lado, o R foi projetado especificamente para computação estatística e oferece opções avançadas para visualizar sua análise de agrupamento hierárquico.

O Python fornece a função AgglomerativeCluster 21 (consulte também exemplos de agrupamento aglomerativo22 no sklearn), e o SciPy fornece uma função para plotar dendogramas23. Pacotes como o dedextend24 aprimoram a funcionalidade do dendograma do R, melhorando a análise de sensibilidade e permitindo comparar e manipular diferentes dendogramas. Para uma experiência prática, confira nossos tutoriais passo a passo: como implementar o agrupamento hierárquico no Python e como implementar o agrupamento hierárquico no R.

Soluções relacionadas
IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real
Notas de rodapé

1 Murtagh, F., Legendre, P., “Ward’s Hierarchical Agglomerative Clustering Method: Which Algorithms Implement Ward’s Criterion?,” 2014, J Classif 31, 274–295, https://link.springer.com/article/10.1007/s00357-014-9161-z

 2 Kaufman, L.; Rousseeuw, P. J., Finding Groups in Data: An Introduction to Cluster Analysis. Wiley. Chp 6. Divisive Analysis (Program DIANA) pp. 253–279, https://onlinelibrary.wiley.com/doi/book/10.1002/9780470316801

3 Galili, T., “Introduction to dendextend,” The Comprehensive R Archive Network, 2023, https://cran.r-project.org/web/packages/dendextend/index.html

4 Lecture Notes from Penn State Eberly College of Science, “Hierarchical Clustering”, https://online.stat.psu.edu/stat555/node/85/

5, 17 Maimon, O., Rokach, L., Data Mining and Knowledge Discovery Handbook, 2010 2nd ed, Springer, https://link.springer.com/book/10.1007/978-0-387-09823-4

6 Sokal, R, Michener, C., “A statistical method for evaluating systematic relationships,” 1958, University of Kansas Science Bulletin, 38: 1409–1438, https://archive.org/details/cbarchive_33927_astatisticalmethodforevaluatin1902/page/n1/mode/2up

Ward, J. H., “Hierarchical Grouping to Optimize an Objective Function,” 1963, Journal of the American Statistical Association, 58 (301): 236–244, https://www.tandfonline.com/doi/abs/10.1080/01621459.1963.10500845.

8 Lecture Notes from Penn State Eberly College of Science, “Applied Multivariate Statistical Analysis”, https://online.stat.psu.edu/stat505/lesson/14/14.7

9, 15 Shetty P. and Singh S., “Hierarchical Clustering: A Survey,” International Journal of Applied Research, Vol 7 Issue 4, Part C, 2021, https://www.allresearchjournal.com/archives/?year=2021&vol=7&issue=4&part=C&ArticleId=8484

10 Macnaugton-Smith, P., Williams, W., Dale, M., et al., “Dissimilarity Analysis: a new Technique of Hierarchical Sub-division,” Nature 202, 1034–1035 (1964), https://www.nature.com/articles/2021034a0

12 Boehmke, B., Greenwell, B., Hands-On Machine Learning with R, Taylor and Francis, 2020, https://bradleyboehmke.github.io/HOML/

13 Cavalli-Sforza, L. L., and Edwards A. W. F., “Phylogenetic analysis: models and estimation procedures,” 1967, Evolution 21: 550–570 and Am. J. Hum. Genet. 19: 233–257, https://pmc.ncbi.nlm.nih.gov/articles/PMC1706274/

14 Sci-kit learn 1.3.2, 2.3 Clustering, https://scikit-learn.org/stable/modules/clustering.html

16 Lecture notes from MIT OpenCourseWare, 2017, https://ocw.mit.edu/courses/15-071-the-analytics-edge-spring-2017/pages/clustering/recommendations-worth-a-million-an-introduction-to-clustering/video-5-hierarchical-clustering/

18 Lecture notes from the University of Washington, 2001, https://courses.cs.washington.edu/courses/csep546/04au/pdf-slides/10.pdf

19 Boehmke, B., University of Cincinnati Business Analytics R Programming Guide, https://uc-r.github.io/hc_clustering#algorithms

20 QCBS R Workshop Series, https://r.qcbs.ca/workshop09/book-en/clustering.html

21 Zhongheng Zhang et al., “Hierarchical cluster analysis in clinical research with heterogeneous study population: highlighting its visualization with R,” Annals of Translational Medicine. Fevereiro de 2017; 5(4): 75, https://atm.amegroups.org/article/view/13789/14063

22, 23 Documentação do scit-kit learn 1.3.2 , https://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html

24 SciPy Manual v1.11.4, https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.dendrogram.html