Machine Learning · Insper

Agrupamento Hierárquico

A família inteira de agrupamentos, na forma de uma árvore

Construir à mão, ler, cortar e saber o que a ligação decide

De uma partição a uma árvore

k-means

precisa de \(k\) antes de começar; devolve uma única partição, plana

hierárquico

constrói todos os agrupamentos de uma vez, uns dentro dos outros, na forma de uma árvore: o dendrograma. O \(k\) é escolhido depois, cortando-a.

A maneira mais antiga de organizar os seres vivos: reinos, classes, ordens, famílias, espécies. Continua sendo o que biólogos, bibliotecários e equipes de marketing querem quando um único nível de detalhe não basta.

O caminho desta aula

  1. Construir a árvorefundir o par mais próximo; quatro ligações à mão
  2. Ler e cortaro dendrograma, a matriz Z, o corte
  3. Escolher e conferircomportamento das ligações, onde cortar, correlação cofenética
  4. Na práticaoutras distâncias, custo, contra k-means e agrupamento por densidade
Cada etapa responde a uma pergunta: como fundir par a par constrói uma árvore? → o que a árvore diz e como ela vira grupos? → qual ligação, qual corte e quão fiel é a árvore? → quando uma árvore é a ferramenta certa?
Etapa 1 · Como fundir par a par constrói uma árvore?

A ideia: fundir os dois grupos mais próximos e repetir

  1. comece com \(n\) grupos, um por ponto;
  2. encontre os dois grupos mais próximos entre si;
  3. funda os dois num só e registre a distância: a altura da fusão;
  4. volte ao passo 2 até sobrar um único grupo.

Depois de \(n - 1\) fusões, o histórico das fusões é a árvore. Nada é sorteado e nada é iterado até convergir: os mesmos dados sempre dão a mesma árvore (a menos de empates).

O passo 2 esconde a única decisão de verdade: a distância entre dois grupos.

A ligação: distância entre grupos

ligaçãodistância entre \(P\) e \(Q\)tende a produzir
simples (single)o par mais próximocadeias; uma ponte funde dois grupos
completa (complete)o par mais distantegrupos compactos, de diâmetro parecido
média (average)a média de todas as distâncias cruzadasum meio-termo
Wardquanto a fusão aumenta a soma de quadrados dentro dos gruposgrupos redondos, de tamanho parecido, como o k-means
\[ \Delta(P, Q) = \frac{|P|\,|Q|}{|P| + |Q|}\, \lVert \mu_P - \mu_Q \rVert^2 \]

A soma de quadrados dentro dos grupos é a inércia do k-means: Ward a faz crescer o mais devagar possível, uma fusão gulosa de cada vez.

Simulador: funda, veja a árvore crescer e corte

Preveja. Na cadeia (duas bolhas e uma ponte), qual ligação vai colar as duas bolhas muito antes da última fusão?

Cinco pontos sobre uma reta

pontoABCDE
posição0371218

Os espaços crescem de um em um: 3, 4, 5, 6. Exatamente o tipo de dado em que as ligações discordam.

ABCDE
A0371218
B304915
C740511
D129506
E18151160
A fusão 1 é a mesma para todas as ligações: entre pontos isolados, toda definição dá a distância comum. A + B na altura 3.

A fusão 2 já separa as ligações

A linha nova: a distância de \(\{A, B\}\) a todo o resto.

de {A, B} atésimples = míncompleta = máxmédia
Cmín(7, 4) = 475,5
D91210,5
E151816,5

O resto da matriz não muda: C–D = 5, C–E = 11, D–E = 6.

Preveja. Para cada ligação, qual é a próxima fusão?

Simples: a menor entrada é 4, então C se junta a {A, B}. Completa e média: a linha nova é maior e a menor entrada passa a ser C–D = 5, então C forma par com D.

Quatro árvores, até o fim

ligaçãofusõesalturas
simplesAB → ABC → ABCD → ABCDE3; 4; 5; 6
completaAB → CD → CDE → tudo3; 5; 11; 18
médiaAB → CD → ABCD → tudo3; 5; 8; 12,5
WardAB → CD → CDE → tudo3; 5; 9,81; 16,78
  • Fusão 3: a média junta os dois pares (8 contra 8,5); a completa enxerga o 12 entre A e D e traz E para {C, D} (11).
  • Custos \(\Delta\) de Ward: 4,5 + 12,5 + 48,17 + 140,83 = 206, a soma de quadrados dos cinco pontos em torno da média 8. A altura reportada é \(\sqrt{2\Delta}\): \(\sqrt{2 \cdot 4{,}5} = 3\).

Uma matriz, árvores diferentes

Os cinco pontos e os quatro dendrogramas; cortadas em dois grupos, a simples e a média dão {ABCD}{E}, a completa e Ward dão {AB}{CDE}
Pedindo dois grupos: a simples e a média isolam o E; a completa e Ward cortam entre B e C. Nenhuma está errada: são respostas a definições diferentes de "grupo".
Etapa 2 · O que a árvore diz e como ela vira grupos?

Como ler um dendrograma

  • O eixo y é uma distância. Dois pontos são tão parecidos quanto a altura da barra mais baixa que os liga: a distância cofenética. Árvore completa: A e B em 3, A e E em 18.
  • As linhas verticais longas são a parte interessante: um grupo que continua longe de todo o resto. {C, D, E} se forma em 11 e espera até 18.
  • A ordem da esquerda para a direita quase não traz informação: cada barra pode ser girada, então 5 folhas têm \(2^4 = 16\) desenhos equivalentes.
Na árvore completa, o E aparece desenhado ao lado do B, embora os dois terminem a 18 de distância. Leia a semelhança na altura em que se encontram, nunca em folhas vizinhas.

A matriz de ligação Z


Z = linkage(X, 'complete')
# [[ 0.  1.  3.  2.]
#  [ 2.  3.  5.  2.]
#  [ 4.  6. 11.  3.]
#  [ 5.  7. 18.  5.]]
    
colunasignificado
0, 1os dois grupos fundidos; os ids de 0 a \(n-1\) são pontos e a linha \(i\) cria o grupo \(n + i\)
2a altura da fusão: 3, 5, 11, 18
3quantos pontos o grupo novo tem: 2, 2, 3, 5

Uma linha por fusão, \(n - 1\) linhas, na ordem em que as fusões aconteceram.

Cortando a árvore

Uma linha horizontal na altura \(t\): cada pedaço pendurado abaixo dela é um grupo.

Preveja. Árvore completa (alturas 3, 5, 11, 18). Que grupos um corte em 8 dá?
corte emgrupos
4{A, B}, {C}, {D}, {E}
8{A, B}, {C, D}, {E}
12{A, B}, {C, D, E}
20tudo num grupo só

Qualquer corte entre 11 e 18 dá os mesmos dois grupos: uma faixa de 7 unidades de largura. É essa largura que torna estável aqui a resposta de dois grupos.

No scikit-learn e uma propriedade


AgglomerativeClustering(n_clusters=2, linkage='ward').fit(X)
AgglomerativeClustering(n_clusters=None, distance_threshold=8, linkage='complete').fit(X)
  
  • As mesmas alturas de fusão das tabelas feitas à mão (Ward na escala \(\sqrt{2\Delta}\)).
  • Sem predict: um ponto novo não tem lugar na árvore até você reconstruí-la ou atribuí-lo com outra regra.
Cortes da mesma árvore são aninhados: o corte em 3 grupos é o corte em 2 com um dos grupos partido em dois. Duas execuções do k-means com \(k = 3\) e \(k = 4\) não têm essa obrigação.
Etapa 3 · Qual ligação, qual corte e quão fiel é a árvore?

O comportamento de cada ligação, medido

Quatro conjuntos com grupos conhecidos, 300 pontos cada; todo método recebe o número verdadeiro de grupos. A nota é o ARI (índice de Rand ajustado, Adjusted Rand Index): 1 para os grupos verdadeiros, perto de 0 para o acaso.

Preveja. Qual ligação recupera as duas luas?
simplescompletamédiaWard
bolhas0,570,980,980,98
bolhas + ponte0,000,910,990,96
luas1,000,200,430,30
faixas paralelas1,000,120,190,22

Dois campos

Quatro conjuntos por quatro ligações: a simples ganha nas luas e nas faixas, mas falha nas bolhas e na ponte; as outras, o contrário

A simples pergunta "existe algum salto curto?": segue cadeias (1,00 nas luas e nas faixas) e uma ponte de 20 pontos funde duas bolhas (0,00). Isso é o encadeamento (chaining).

A completa, a média e Ward comparam os grupos como um todo: uma ponte não consegue puxar duas bolhas uma para a outra, mas elas cortam as luas e as faixas de través, como o k-means.

Ward (o padrão) ou a média para grupos compactos; a simples para formas finas, conectadas e bem separadas. Sempre olhe a árvore.

Onde cortar

400 pontos em quatro bolhas que vêm em dois pares: duas escalas de estrutura. Árvore de Ward.

\(k\)faixa de alturas de cortesaltosilhueta
232,3 a 159,2126,90,787
330,3 a 32,32,10,664
49,7 a 30,320,60,545
59,2 a 9,70,50,473
Árvore de Ward de 400 pontos com cortes em 2 e em 4 grupos; salto de 126,9 para k=2 e 20,6 para k=4; silhueta caindo de 0,787 para 0,545

Quanto mais larga a faixa de alturas a que um \(k\) sobrevive, mais os dados insistem nele. A silhueta prefere a divisão mais grossa e não enxerga a segunda escala.

Então qual corte está certo?

  • Os dois: os cortes são aninhados. Relate dois segmentos no nível grosso e quatro no nível fino; eles concordam entre si.
  • Quando um único número é exigido, escolha pensando na pergunta (com quantos grupos alguém consegue agir?) e use os saltos e a silhueta para descartar cortes que os dados não sustentam: \(k = 3\), salto de 2,1.
  • O coeficiente de inconsistência é local: com profundidade 2, ele não passa de \(2/\sqrt3 = 1{,}15\) e as três fusões do topo chegam todas a esse máximo. Mais uma pista, no máximo.

Correlação cofenética: quão fiel é a árvore?

A correlação entre as distâncias originais e as cofenéticas. À mão, para a árvore de ligação simples dos cinco pontos:

ABACADAEBCBDBECDCEDE
original \(d\)37121849155116
cofenética \(c\)3456456566

\(33 / \sqrt{220 \times 10} = \mathbf{0{,}704}\). As outras árvores: completa 0,565, média 0,691, Ward 0,561.

A simples é a que melhor preserva as distâncias, mesmo sendo uma cadeia; a completa e Ward empurram todo par cruzado para uma mesma altura grande, apagando a diferença entre B–C (4) e A–E (18).

Árvore fiel ≠ bons grupos

As quatro bolhas, quatro ligações:

correlação cofenéticaARI em \(k = 4\)
simples0,9440,496
completa0,9470,954
média0,9530,856
Ward0,9520,892
A correlação cofenética mede quão fielmente a árvore representa as distâncias, não quão bons são os grupos. Use-a quando o produto é a própria árvore: uma taxonomia, a ordem de um mapa de calor.
Etapa 4 · Quando uma árvore é a ferramenta certa?

Além da distância euclidiana

perfis: distância de correlação

Quatro clientes: dois crescem de forma constante, dois gastam quase tudo num único mês; em cada par, um gasta cinco vezes mais.

A euclidiana agrupa por quanto gastam; \(1 - r\) agrupa pelo formato do gasto.

documentos: distância do cosseno

Um texto, o mesmo texto dez vezes mais longo, um texto sobre outro tema. A partir do primeiro, euclidiana: 20,12 até a cópia longa, 3,87 até o outro tema. Cosseno: 0,0 e 1,0.

Qual distância está certa depende da pergunta; nenhum índice calculado nos dados pode decidir isso. A simples, a completa e a média aceitam qualquer dissimilaridade; Ward, só a euclidiana.

Custo: por que não escala

linhasdistâncias entre pares
1.0000,004 GB
10.0000,400 GB
100.00040 GB
1.000.000cerca de 4.000 GB
O tempo do linkage do SciPy cresce como n elevado a 2,5 para Ward e a 2,3 para a simples, contra 0,004 s do k-means; memória de 0,4 GB com 10.000 linhas, 40 GB com 100.000

Os melhores algoritmos são \(O(n^2)\), ainda quadráticos. Na máquina em que a figura foi gerada, 16.000 linhas levaram 6,11 s com Ward; o k-means, 0,004 s. Um método para centenas a dezenas de milhares de linhas.

O que fazer com mais linhas

  • Amostrar e depois atribuir. Árvore numa amostra de 2% (2.000 de 100.000 linhas), cortada em 5, cada um dos demais pontos ao centroide mais próximo: ARI 0,993. O que se perde é a estrutura fina: um grupo de 30 pontos teria cerca de 0,6 representante.
  • Restrições de conectividade: só fundir vizinhos num grafo esparso.
  • O HDBSCAN (o DBSCAN hierárquico; DBSCAN: density-based spatial clustering of applications with noise) é ele próprio hierárquico: uma árvore de ligação simples sobre uma distância ajustada pela densidade, sem a matriz completa. Além disso, marca ruído.

Hierárquico vs k-means vs DBSCAN

hierárquicok-meansDBSCAN / HDBSCAN
um grupo éum ramo da árvore de fusõesos pontos mais perto de um centroideuma região densa
decidido depois do ajuste\(k\) ou a altura do corte——
saídauma família aninhada de partiçõesuma partiçãouma partição mais ruído
qualquer distância?sim, exceto Wardsó euclidianasim
pontos novossem predictpredictsem predict
mesmo resultado a cada execuçãosimdepende da inicializaçãosim

Aplicações

Taxonomias: sempre que o produto é uma árvore e não uma partição.

Segmentação em várias granularidades: 12 segmentos finos que são subdivisões de 3 grossos.

Mapas de calor de expressão gênica: agrupe linhas e colunas com distância de correlação e redesenhe na ordem das folhas.

Uma tabela de 40 genes por 12 amostras parece ruído na ordem medida e forma blocos nítidos na ordem das folhas do dendrograma; as amostras de tumor e as normais se separam no topo

Os mesmos números, reordenados pela árvore: aparecem blocos de genes que sobem e que descem nos tumores e a árvore das colunas separa as amostras de tumor das normais na sua fusão do topo.

Resumo

  1. Funda os dois grupos mais próximos e repita: o histórico das fusões é a árvore.
  2. A ligação define "mais próximo" e decide o que a árvore encontra.
  3. Leia alturas, não a ordem da esquerda para a direita; cortes de uma árvore são aninhados.
  4. Escolha o corte pelos saltos nas alturas das fusões, pensando na pergunta.
  5. Correlação cofenética = fidelidade da árvore, não qualidade dos grupos.
  6. Custo quadrático: centenas a dezenas de milhares de linhas.
Lab · roda em poucos segundos

Uma árvore de 101 animais

  • A tabela Zoo da UCI (University of California, Irvine): 15 perguntas de sim/não e o número de pernas. A classe do zoólogo fica lacrada até o passo 8.
  • Uma árvore de 16 atributos simples consegue redescobrir a taxonomia? O que ela mostra que o k-means não mostra?
  • Baixe o notebook do lab e abra no Jupyter ou no Colab.

1. carregar e olhar
2. pôr as colunas na mesma escala
3. quatro ligações e a fidelidade de cada árvore

4. desenhar a árvore
5. escolher o corte: saltos e silhueta
6. traçar o perfil dos grupos

7. os mesmos dados com k-means
8. abrir o gabarito
9. o mapa de calor, reordenado pela árvore