Construir à mão, ler, cortar e saber o que a ligação decide
precisa de \(k\) antes de começar; devolve uma única partição, plana
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.
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).
| 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 |
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.
Preveja. Na cadeia (duas bolhas e uma ponte), qual ligação vai colar as duas bolhas muito antes da última fusão?
| ponto | A | B | C | D | E |
|---|---|---|---|---|---|
| posição | 0 | 3 | 7 | 12 | 18 |
Os espaços crescem de um em um: 3, 4, 5, 6. Exatamente o tipo de dado em que as ligações discordam.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| A | 0 | 3 | 7 | 12 | 18 |
| B | 3 | 0 | 4 | 9 | 15 |
| C | 7 | 4 | 0 | 5 | 11 |
| D | 12 | 9 | 5 | 0 | 6 |
| E | 18 | 15 | 11 | 6 | 0 |
A linha nova: a distância de \(\{A, B\}\) a todo o resto.
| de {A, B} até | simples = mín | completa = máx | média |
|---|---|---|---|
| C | mín(7, 4) = 4 | 7 | 5,5 |
| D | 9 | 12 | 10,5 |
| E | 15 | 18 | 16,5 |
O resto da matriz não muda: C–D = 5, C–E = 11, D–E = 6.
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.
| ligação | fusões | alturas |
|---|---|---|
| simples | AB → ABC → ABCD → ABCDE | 3; 4; 5; 6 |
| completa | AB → CD → CDE → tudo | 3; 5; 11; 18 |
| média | AB → CD → ABCD → tudo | 3; 5; 8; 12,5 |
| Ward | AB → CD → CDE → tudo | 3; 5; 9,81; 16,78 |
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.
Uma linha horizontal na altura \(t\): cada pedaço pendurado abaixo dela é um grupo.
| 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.
AgglomerativeClustering(n_clusters=2, linkage='ward').fit(X)
AgglomerativeClustering(n_clusters=None, distance_threshold=8, linkage='complete').fit(X)
predict: um ponto novo não tem lugar na árvore até você reconstruí-la ou atribuí-lo com outra regra.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.
| simples | completa | média | Ward | |
|---|---|---|---|---|
| bolhas | 0,57 | 0,98 | 0,98 | 0,98 |
| bolhas + ponte | 0,00 | 0,91 | 0,99 | 0,96 |
| luas | 1,00 | 0,20 | 0,43 | 0,30 |
| faixas paralelas | 1,00 | 0,12 | 0,19 | 0,22 |
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.
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.
A correlação entre as distâncias originais e as cofenéticas. À mão, para a árvore de ligação simples dos cinco pontos:
| AB | AC | AD | AE | BC | BD | BE | CD | CE | DE | |
|---|---|---|---|---|---|---|---|---|---|---|
| original \(d\) | 3 | 7 | 12 | 18 | 4 | 9 | 15 | 5 | 11 | 6 |
| cofenética \(c\) | 3 | 4 | 5 | 6 | 4 | 5 | 6 | 5 | 6 | 6 |
\(33 / \sqrt{220 \times 10} = \mathbf{0{,}704}\). As outras árvores: completa 0,565, média 0,691, Ward 0,561.
As quatro bolhas, quatro ligações:
| 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 |
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.
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.
| linhas | distâncias entre pares |
|---|---|
| 1.000 | 0,004 GB |
| 10.000 | 0,400 GB |
| 100.000 | 40 GB |
| 1.000.000 | cerca de 4.000 GB |
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.
| hierárquico | k-means | DBSCAN / HDBSCAN | |
|---|---|---|---|
| um grupo é | um ramo da árvore de fusões | os pontos mais perto de um centroide | uma região densa |
| decidido depois do ajuste | \(k\) ou a altura do corte | — | — |
| saída | uma família aninhada de partições | uma partição | uma partição mais ruído |
| qualquer distância? | sim, exceto Ward | só euclidiana | sim |
| pontos novos | sem predict | predict | sem predict |
| mesmo resultado a cada execução | sim | depende da inicialização | sim |
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.
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.
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