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

  1. Construir a árvorefundir o par mais próximo; quatro ligações à mão
  2. Ler a árvorealturas, não a ordem das folhas; a matriz Z
  3. Cortá-lauma linha horizontal; os saltos e a silhueta
  4. 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

  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, 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

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?

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.

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 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.

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.
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é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.

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: uma matriz, três árvores.
  3. 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.
  4. Um corte é uma partição; os cortes de uma árvore são aninhados; a faixa de alturas mais larga aponta o \(k\).
  5. Correlação cofenética = quão fiel a árvore é às distâncias, não quão bons são os grupos.
sintomao que fazer
todo \(k\) sobrevive só numa faixa estreita de alturasrelatar a árvore; não forçar um \(k\)
dois cortes, ambos com saltos largosmanter 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.