Machine Learning · Insper
Agrupamento Hierárquico
Abordagem fundamental
Como fundir o par mais próximo, de novo e de novo, constrói uma árvore e como a árvore vira grupos
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 parte
- Construir a árvorefundir o par mais próximo; quatro ligações à mão
- Ler a árvorealturas, não a ordem das folhas; a matriz Z
- Cortá-lauma linha horizontal; os saltos e a silhueta
- Conferi-laquão fielmente as alturas guardam as distâncias
Cada etapa responde a uma pergunta: como fundir par a par constrói uma árvore? → o que a árvore diz? → como a árvore vira grupos? → quão fiel a árvore é às distâncias?
Etapa 1 · como fundir par a par constrói uma árvore?
A ideia: fundir os dois grupos mais próximos e repetir
- comece com \(n\) grupos, um por ponto;
- encontre os dois grupos mais próximos entre si;
- funda os dois num só e registre a distância: a altura da fusão;
- 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ção | distância entre \(P\) e \(Q\) | tende a produzir |
| simples (single) | o par mais próximo | cadeias; uma ponte funde dois grupos |
| completa (complete) | o par mais distante | grupos compactos, de diâmetro parecido |
| média (average) | a média de todas as distâncias cruzadas | um meio-termo |
| Ward | quanto a fusão aumenta a soma de quadrados dentro dos grupos | grupos 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, quatro ligações, passo a passo
A = 0, B = 3, C = 7, D = 12, E = 18 sobre uma reta: os espaços crescem de um em um. Preveja. Depois de A + B, qual é a próxima fusão de cada ligação? Depois avance e troque a ligação.
Uma matriz, árvores diferentes
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?
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.]]
| coluna | significado |
| 0, 1 | os dois grupos fundidos; os ids de 0 a \(n-1\) são pontos e a linha \(i\) cria o grupo \(n + i\) |
| 2 | a altura da fusão: 3, 5, 11, 18 |
| 3 | quantos 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.
Etapa 3 · como a árvore vira grupos?
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 em | grupos |
| 4 | {A, B}, {C}, {D}, {E} |
| 8 | {A, B}, {C, D}, {E} |
| 12 | {A, B}, {C, D, E} |
| 20 | tudo 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.
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 corte | salto | silhueta |
| 2 | 32,3 a 159,2 | 126,9 | 0,787 |
| 3 | 30,3 a 32,3 | 2,1 | 0,664 |
| 4 | 9,7 a 30,3 | 20,6 | 0,545 |
| 5 | 9,2 a 9,7 | 0,5 | 0,473 |
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.
Etapa 4 · quão fiel a árvore é às distâncias?
Correlação cofenética, par a par
\(d\) = distância original de um par; \(c\) = a sua distância cofenética, a altura em que os dois pontos se juntam pela primeira vez. A correlação cofenética é a correlação entre \(d\) e \(c\) nos 10 pares. Preveja. A árvore simples, em forma de cadeia, guarda as distâncias melhor ou pior que a completa?
Árvore fiel ≠ bons grupos
As quatro bolhas dos slides anteriores, quatro ligações. ARI (índice de Rand ajustado, adjusted Rand index): 1 = os grupos verdadeiros, perto de 0 = o acaso.
| correlação cofenética | ARI em \(k = 4\) |
| simples | 0,944 | 0,496 |
| completa | 0,947 | 0,954 |
| média | 0,953 | 0,856 |
| Ward | 0,952 | 0,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.
Resumo
- Funda os dois grupos mais próximos e repita: o histórico das fusões é a árvore.
- A ligação define "mais próximo" e decide o que a árvore encontra: uma matriz, três árvores.
- Leia alturas, não a ordem da esquerda para a direita: dois pontos são tão parecidos quanto a barra em que se encontram.
- Um corte é uma partição; os cortes de uma árvore são aninhados; a faixa de alturas mais larga aponta o \(k\).
- Correlação cofenética = quão fiel a árvore é às distâncias, não quão bons são os grupos.
| sintoma | o que fazer |
| todo \(k\) sobrevive só numa faixa estreita de alturas | relatar a árvore; não forçar um \(k\) |
| dois cortes, ambos com saltos largos | manter os dois níveis: eles são aninhados |
Lab fundamental · cerca de 30 min, em duplas
Uma árvore de 101 animais, passos 1 a 6
- A tabela Zoo da UCI (University of California, Irvine): 15 perguntas de sim/não e o número de pernas. A classe dos zoólogos fica lacrada até o passo 8, na parte avançada.
- Escalar as colunas, construir quatro árvores e ficar com a mais fiel, desenhá-la, escolher o corte e dar nome aos grupos.
- Baixe o notebook do lab e abra no Jupyter ou no Colab.
- Em cada passo, responda ao Preveja antes de rodar.
- Simulações: a árvore sem escala (passo 2) e um animal novo, sem
predict (passo 6).
Ritmo: passos 1 e 2 e a primeira simulação em 10 min; passos 3 a 5 em 10 min; passo 6 e a segunda simulação em 10 min.