Você está na página 1de 15

Créditos

SCC5895 – Análise de  O material a seguir consiste de adaptações e


Agrupamento de Dados extensões dos originais:
 gentilmente cedidos pelo Prof. Eduardo R. Hruschka
 de (Tan et al., 2006)
Algoritmos Hierárquicos:  de E. Keogh (SBBD 2003)

Parte I  Algumas figuras são de autoria e foram


gentilmente cedidas por Lucas Vendramin
Prof. Ricardo J. G. B. Campello

PPG-CCMC / ICMC / USP


2

Relembrando...
Aula de Hoje  Matriz de Dados X:
 N linhas (objetos) e n colunas (atributos):

 Algoritmos Hierárquicos  x11 x12 L x1n 


x x22 L x2 n 
Conceitos e Definições
X =  21


 Dendrogramas  M O M 
Grafos de Proximidade  

 xN1 xN 2 L x Nn 
 Cophenetic matrices
 Métodos Aglomerativos  Cada objeto (linha da matriz) é denotado por um vetor xi
 Single Linkage  Exemplo:
x 1 = [x11 L x1n ]
T
 Complete Linkage
 Relação com Teoria dos Grafos
4
3 Prof. Eduardo R. Hruschka
Relembrando... Relembrando...
 Matriz de Proximidade (Dissimilaridade ou Similaridade): • Agrupamento Particional: constrói uma partição dos dados

 N linhas e N colunas: • Agrupamento Hierárquico: constrói uma hierarquia de partições

 d (x1 , x1 ) d (x1 , x 2 ) L d (x1 , x N ) 


 d (x , x ) d (x , x ) Hierárquicos
L d (x 2 , x N )  Particionais
D= 2 1 2 2

 M O M 
 
d (x N , x1 ) d (x N , x 2 ) L d (x N , x N )

 Simétrica se proximidade d apresentar propriedade de simetria

Keogh, E. A Gentle Introduction to Machine Learning and Data Mining for the Database Community, SBBD 2003, Manaus.
5 6

Definição de Partição de Dados Definição de Hierarquia


 Consideremos um conjunto de N objetos a  Hierarquia (de partições de dados):
serem agrupados: X = {x1, x2, ..., xN}  Sequencia de partições aninhadas
 Partição (rígida): coleção de k grupos não  Uma partição P1 está aninhada em P2 se cada componente
(grupo) de P1 é um subconjunto de um componente de P2
sobrepostos P = {C1, C2, ..., Ck} tal que:
 Exemplo:
C1 ∪ C2 ∪... ∪ Ck = X
P1 = { (x1), (x3, x4, x6), (x2, x5) }
Ci ≠ ∅ P2 = { (x1, x3, x4, x6), (x2, x5) }

Ci ∩ Cj = ∅ para i ≠ j  Contra-Exemplo:
P3 = { (x1, x3, x4, x6), (x2, x5) }
 Exemplo: P = { (x1), (x3, x4, x6), (x2, x5) }
P4 = { (x1, x2), (x3, x4, x6), (x5) }
7 8
Baseado no original do Prof. Eduardo R. Hruschka Baseado no original do Prof. Eduardo R. Hruschka
Definição de Hierarquia Hierarquias são
comumente usadas para
organizar informação,
 Uma hierarquia completa: como, por exemplo, num
portal
 Inicia ou termina com partição totalmente disjunta
 Disjoint clustering: apenas grupos atômicos (singletons)

 Exemplo: P = { (x1), (x2), (x3), (x4), (x5), (x6) } Business & Economy
 Também denominada “solução trivial”

 Inicia ou termina com partição totalmente conjunta B2B Finance Shopping Jobs

 Conjoint clustering: grupo único com todos os objetos


Aerospace Agriculture… Banking Bonds… Animals Apparel Career Workspace
 Exemplo: P = { (x1, x2, x3, x4, x5, x6) }

 Geralmente possui N – 2 partições intermediárias Keogh, E. A Gentle Introduction to Machine Learning and Data Mining for the Database Community, SBBD 2003, Manaus.
10

Métodos Clássicos para Agrupamento


 Outro Exemplo:
Hierárquico
 Árvores Filogenéticas em Biologia
Bottom-Up (aglomerativos):
- Iniciar colocando cada objeto em um cluster
- Encontrar o melhor par de clusters para unir
- Unir o par de clusters escolhido
- Repetir até que todos os objetos estejam
reunidos em um só cluster

Top-Down (divisivos):
- Iniciar com todos objetos em um único cluster
- Sub-dividir o cluster em dois novos clusters
- Aplicar o algoritmo recursivamente em ambos,
até que cada objeto forme um cluster por si só

http://en.wikipedia.org/wiki/Phylogenetic_tree
11 Keogh,, E. A Gentle Introduction to Machine Learning and Data Mining for the Database Community
Keogh Community,, SBBD 2003, Manaus. 12
Bottom--Up (aglomerativo
Bottom aglomerativo):
):
Algoritmos hierárquicos Iniciando com cada objeto em seu próprio
podem operar somente sobre cluster, encontrar o melhor par de clusters
uma matriz de distâncias: são para unir em um novo cluster. Repetir até
(ou podem ser) relacionais ! que todos os clusters sejam fundidos em
0 8 8 7 7 um único cluster.

0 2 4 4
Considerar
todas as uniões Escolher

D( , ) = 8 0 3 3 possíveis … … a melhor

0 1
D( , ) = 1 0
Considerar
todas as uniões
possíveis … …
Escolher
a melhor

Considerar Escolher
todas as uniões
possíveis …
… a melhor
Keogh, E. A Gentle Introduction to Machine Learning and Data Mining for the Database Community, SBBD 2003, Manaus. 13

How to Define Inter-Cluster (Dis)Similarity How to Define Inter-Cluster (Dis)Similarity

p1 p2 p3 p4 p5 ... p1 p2 p3 p4 p5 ...
p1 p1
(Dis)Similarity?
p2 p2

p3 p3

p4 p4

p5 p5
 MIN  MIN
. .
 MAX  MAX
. .
 Group Average .
 Group Average .
Proximity Matrix Proximity Matrix
 Distance Between Centroids  Distance Between Centroids
 Other methods  Other methods
– Ward’s – Ward’s
–… –…

© Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 15 © Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 16
How to Define Inter-Cluster (Dis)Similarity How to Define Inter-Cluster (Dis)Similarity

p1 p2 p3 p4 p5 ... p1 p2 p3 p4 p5 ...
p1 p1

p2 p2

p3 p3

p4 p4

p5 p5
 MIN  MIN
. .
 MAX  MAX
. .
 Group Average .
 Group Average .
Proximity Matrix Proximity Matrix
 Distance Between Centroids  Distance Between Centroids
 Other methods  Other methods
– Ward’s – Ward’s
–… –…

© Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 17 © Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 18

How to Define Inter-Cluster (Dis)Similarity


Como Comparar os Clusters?
p1 p2 p3 p4 p5 ...
p1  Single Linkage , Min, ou Vizinho mais Próximo :
× × p2
 Dissimilaridade entre clusters é dada pela menor
p3
dissimilaridade entre 2 objetos (um de cada cluster)
p4

p5
 MIN
.
 MAX single link (Florek, 1951; Sneath, 1957)
.
 Group Average .
Originalmente baseado em Grafos:
Proximity Matrix menor aresta entre dois vértices
 Distance Between Centroids de subconjuntos distintos
 Other methods
– Ward’s
–…

© Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 19 Figura por Lucas Vendramin 20
Exemplo de Single Linkage: Método de Johnson (1967)
Propriedade Útil  Consideremos a seguinte matriz de distâncias iniciais (D1) entre 5 objetos
{1,2,3,4,5}. Qual par de objetos será escolhido para formar o 1º cluster ?
 Propriedade da Função Mínimo (min): 1 0 
2  2 0 

 min{D} = min{ min{D1} , min{D2} }
D1 = 3  6 5 0 
 D, D1 e D2 são conjuntos de valores reais tais que D1 ∪ D2 = D  
4 10 9 4 0 
5  9 8 5 3 0
 Exemplo:
 A menor distância entre objetos é d12=d21=2, indicando que estes
 min{10, -3, 0, 100} = min { min{10, -3}, min{0, 100} } = -3
dois objetos serão unidos em um cluster. Na seqüência, calcula-se:
 Propriedade vale recursivamente (para min{D1} e min{D2}) d(12)3=min{d13,d23}=d23=5;
d(12)4=min{d14,d24}=d24=9;
 Utilidade para Single-Linkage d(12)5=min{d15,d25}=d25=8;

 Dada a distância entre os grupos A e B e entre A e C  Desta forma, obtém-se uma nova matriz de distâncias (D2), que
será usada na próxima etapa do agrupamento hierárquico:
 É trivial calcular a distância entre A e (B ∪ C) !
21 22
Baseado no original do Prof. Eduardo R. Hruschka – Exemplo de (Everitt et al., 2001)

12 0   A sequência de partições obtidas neste exemplo é, portanto:



3 5 0 
D2 = 
4 9 4 0  { (1), (2), (3), (4), (5) } → { (1, 2), (3), (4), (5) } →
 
5 8 5 3 0  { (1, 2), (3), (4, 5) } → { (1, 2), (3, 4, 5) } → { (1, 2, 3, 4, 5) }
 Qual o novo cluster a ser formado?
 Nota: Para single link, a dissimilaridade entre 2 clusters pode
 Unindo os objetos 5 e 4 obtemos três clusters: {1,2}, {4,5}, {3}
ser computada naturalmente a partir da matriz atualizada na
 Como d(12)3 já está calculado, calculamos na seqüência: iteração anterior, sem necessidade da matriz original
d(12)(45) = min{d(12)(4) , d(12)(5)} = d(12)(5) = 8
 Isso vale devido à propriedade da função min vista anteriormente
d(45)3 = min{d43,d53} = d43 = 4
obtendo a seguinte matriz:  No nosso exemplo, simplificamos o cálculo de d(12)(45) como
min{d(12)(4) , d(12)(5)} fazendo uso daquela propriedade:
12 0  * Unir cluster {3} com {4,5};
D3 = 3 5 0 

* Finalmente, unir todos os
 min{d(12)(4), d(12)(5)} = min {9, 8} = min{d14, d24, d15, d25}

45 8 4 0 clusters em um único cluster


23 24
Prof. Eduardo R. Hruschka
Dendrograma Exemplo de 10 2 7 13
2 2 0 5 10
D= 
Dendrograma: Hierarquia + Dissimilaridades entre Clusters Dendrograma 37 5

0 4

4 13 10 4 0
3
Figura por Lucas Vendramin
Terminal Branch Root
Internal Branch 1
Internal Node
Leaf

3 4

2
* A dissimilaridade entre dois clusters (possivelmente singletons) é
1
representada como a altura do nó interno mais baixo compartilhado

Keogh, E. A Gentle Introduction to Machine Learning and Data Mining for the Database Community, SBBD 2003, Manaus. uma das partições
Dendrograma
25 aninhadas 26

Outro Exemplo de Dendrograma


Cophenetic Matrix
5  Matriz com as dissimilaridades que levaram à união de cada
1
3 par de objetos na base de dados. Exemplo:

5 0.2

2 1 0.15 1 0 2 5 5
2 3 6 0.1 2 2 0 5 5
Cp =
0.05 3 5 5 0 4
4  
4 0
3 6 2 5 4 1
4 5 5 4 0

Nested Clusters Dendrogram  Esta matriz é importante para a validação de agrupamentos


hierárquicos (tópico a ser discutido posteriormente no curso)
© Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 27 28
Dendrogramas e Partições
Exercício:
 Obtenha o dendrograma completo para o exemplo visto de  Partições são obtidas via cortes no dendrograma
execução do single linkage (matriz de distâncias abaixo)
 cortes horizontais
1 0   no. de grupos da partição = no. de interseções
2  2 0 
  Exemplos:
D1 = 3  6 5 0 
  P2 = { (x1,x3,x4,x6), (x2,x5) }
4 10 9 4 0  0.25

P1 = { (x1), (x3,x4,x6), (x2,x5) }


5  9 8 5 3 0 0.2

0.15

0.1
 Apresente também a cophenetic matrix correspondente
0.05

0
3 6 4 1 2 5 30
29
Baseado no original do Prof. Eduardo R. Hruschka

Pode-se examinar o dendrograma para tentar estimar o número mais natural de Pode--se usar o dendrograma para tentar detectar outliers
Pode outliers::
clusters. No caso abaixo, existem duas sub-árvores bem separadas, sugerindo dois
grupos de dados. Infelizmente, na prática, as distinções não são tão simples…
Ramo isolado sugere que o
objeto é muito diferente dos
demais.

Outlier

Keogh, E. A Gentle Introduction to Machine Learning and Data Mining for the Database Community, SBBD 2003, Manaus.
31 Keogh, E. A Gentle Introduction to Machine Learning and Data Mining for the Database Community, SBBD 2003, Manaus. 32
Voltando ao Single Linkage (Min)…
Como Plotar o Dendrograma ?
 Para muitos objetos, ilustração manual é inviável
 Similarity of two clusters is based on the two
most similar (closest) points in the clusters
 Gerar o gráfico automaticamente demanda ordenar – Determined by one pair of points
de forma apropriada os objetos no eixo horizontal – i.e., by one link in the proximity graph
 Algoritmo Recursivo Simples:
 Iniciar com o topo da hierarquia (grupo único) I1 I2 I3 I4 I5
I1 1.00 0.90 0.10 0.65 0.20
 Dividir o eixo horizontal em 2 subintervalos e colocar em cada um
os objetos de cada um dos 2 grupos que derivam do grupo único I2 0.90 1.00 0.70 0.60 0.50
I3 0.10 0.70 1.00 0.40 0.30
 Executar recursivamente o passo anterior para cada subintervalo I4 0.65 0.60 0.40 1.00 0.80
I5 0.20 0.50 0.30 0.80 1.00 1 2 3 4 5

33 © Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 34

Strength of MIN
Grafo de Proximidades
 Grafo (ponderado, sem laços e sem múltiplas arestas) no qual: • Can handle non-elliptical shapes

 vértices representam os objetos da base de dados

 arestas representam as (dis)similaridades entre pares de objetos

 Exemplo Simples (3 objetos):


x3
1 0 5 8  8 3
D = 2 5 0 3
3 8 3 0
Figura por Lucas Vendramin
x1 5 x2

35 © Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 36


Main Limitations of MIN
Como Comparar os Clusters?
• Sensitive to noise and outliers
 Complete Linkage , Max, ou Vizinho mais Distante:
 Dissimilaridade entre clusters é dada pela maior dissimilaridade
entre dois objetos (um de cada cluster)

complete link (Sorensen, 1948)


Originalmente baseado em Grafos:
maior aresta entre dois vértices de
subconjuntos distintos

Original Points Two Clusters


© Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 37 Figura por Lucas Vendramin 38

Exemplo de Complete Linkage: Método de Johnson (1967)


Propriedade Útil
 Seja a seguinte matriz de distâncias iniciais (D1) entre 5 objetos :
 Propriedade da Função Máximo (max):
 max{D} = max{ max{D1} , max{D2} } 1 0 
2  2 0 

 D, D1 e D2 são conjuntos de valores reais tais que D1 ∪ D2 = D
D1 = 3  6 5 0 
 Exemplo:  
4 10 9 4 0 
 max{10, -3, 0, 100} = max { max{10, -3}, max{0, 100} } = 100 5  9 8 5 3 0
 Propriedade vale recursivamente (para max{D1} e max{D2})
 Execução de complete linkage através de sucessivas atualizações da
 Utilidade para Complete-Linkage matriz de distâncias (método de Johnson):
 No quadro...
 Dada a distância entre os grupos A e B e entre A e C
 É trivial calcular a distância entre A e (B ∪ C) !
39 40
Cluster Similarity: MAX or Complete Linkage
Exercício:
 Similarity of two clusters is based on the two least
 Obtenha o dendrograma completo para o exemplo anterior
similar (most distant) points in the clusters
de execução do complete linkage (matriz de distâncias abaixo)
– Determined by one pair of points
1 0 
2  2 0 

D1 = 3  6 
I1 I2 I3 I4 I5
5 0
  I1 1.00 0.90 0.10 0.65 0.20
4 10 9 4 0 
5  9 8 5 3 0
I2 0.90 1.00 0.70 0.60 0.50
I3 0.10 0.70 1.00 0.40 0.30
I4 0.65 0.60 0.40 1.00 0.80
I5 0.20 0.50 0.30 0.80 1.00 1 2 3 4 5

41 © Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 42

Hierarchical Clustering: MAX Strength of MAX

4 1
2 5 0.4

0.35
5
2 0.3

0.25

3 6 0.2

3 0.15
1 0.1

0.05
4
0
3 6 4 1 2 5 Original Points Two Clusters

Nested Clusters Dendrogram


• Less susceptible to noise and outliers

© Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 43 © Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 44
Main Limitations of MAX Vinculação Simples/Completa sob
Perspectiva de Teoria dos Grafos
Original Points Two Clusters
 Por simplicidade, assumamos uma matriz de
distâncias em escala ordinal (sem empates)
 Exemplo: x1 0 6 8 2 7
x 2 6 0 1 5 3
 
D = x 3 8 1 0 10 9
 
x 4 2 5 10 0 4
• Tends to break large clusters x 5 7 3 9 4 0
• Biased towards globular clusters
46
© Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 45
Baseado no original do Prof. Eduardo R. Hruschka

 G(v) define uma relação binária para qualquer no real v


Grafo de Limiar G(v)  subconjunto do Produto Cartesiano X × X, onde X={x1,..., xN}
 Grafo (não ponderado, sem laços e sem múltiplas arestas) no qual:  Exemplo para v = 5:
 vértices de G(v) representam os objetos da base de dados x1 0 6 8 2 7 x3 x4 x1
 arestas (links) de G(v) conectam pares de objetos que possuem x 2 6 0 1 5 3
  x2
dissimilaridade menor ou igual a um limiar v
D = x 3 8 1 0 10 9 x5
 
 ou similaridade maior ou igual a um limiar v x 4 2 5 10 0 4
x 5 7 3 9 4 0 x1 0 0 0 1 0
 Exemplo Simples: G(5)
x3 x 2 0 0 1 1 1
1 0 5 8  R = x 3 0 1 0 0 0
D = 2 5 0 3 
x 4 1 1 0 0 1

3 8 3 0 x1 x2 47 x 5 0 1 0 1 0
Baseado no original do Prof. Eduardo R. Hruschka
Algoritmo Vinculação Simples (single link): Algoritmo Vinculação Completa:
1) Iniciar com G(0): cada objeto formando um grupo. k ← 1 1) Iniciar com G(0): cada objeto formando um grupo. k ← 1
2) Formar o grafo de limiar G(k). Se o no de componentes conexos 2) Formar o grafo de limiar G(k). Se 2 dos grupos correntes formam
em G(k) for menor do que o no de grupos corrente, re-nomear um clique (subgrafo completo) em G(k), unir tais grupos
cada um dos componentes como sendo um grupo 3) Se k = N(N–1)/2, o que implica que G(k) é um grafo completo,
3) Se G(k) formar um único componente conexo, parar. Senão, fazer parar. Caso contrário, k ← k + 1 e voltar ao passo 2
k ← k + 1 e voltar ao passo 2
Exemplo: Exemplo (continuação): clique de grupos correntes → (1, 4, 5)
2 3 2 3
x1 0 6 8 2 7 5 5 2 2 3
2 3 3 2 3
x 2 6 0 1 5 3
  1 4 1 4 5 5 5 5
D = x 3 8 1 0 10 9
  2 3 1 4 1 4 1 4
x 4 2 5 10 0 4 2 3 1 4
x 5 7 3 9 4 0 5 5 grupos correntes: (2,3) (1,4) (5)

1 4 1 4 * Dois grupos: pode-se interromper o processo...


49
Baseado no original do Prof. Eduardo R. Hruschka Baseado no original do Prof. Eduardo R. Hruschka

Hierarquias Resultantes:
Observações
Vinculação simples: Vinculação completa:  Matrizes não ordinais:
{(2,3),1,4,5} {(2,3),1,4,5}
 ordena-se os valores de dissimilaridade e faz-se
{(2,3),(1,4),5} {(2,3),(1,4),5} k assumir esses valores (ao invés de inteiros)
{(2,3,5),(1,4)} {(2,3),(1,4,5)}
 inicia em k = 0 e depois assume os valores de
dissimilaridade do menor para o maior
Notem que x5 está em grupos diferentes
 os valores de k para os quais ocorre a união de
 Validação (a ser estudada posteriormente no dois grupos são armazenados para depois traçar
curso) poderá nos auxiliar nesses casos o dendrograma

51
52
Prof. Eduardo R. Hruschka
Observações Observações
 Propriedades:
 Empates na matriz de proximidades:
 O algoritmo de grafo visto anteriormente deixa evidente
 devem ser resolvidos arbitrariamente que single e complete link são monótonos
 é simples verificar que single linkage é invariante!  dissimilaridade das uniões é não decrescente

 2 uniões candidatas empatadas serão sempre feitas (e em seguida)  é crescente ao longo da hierarquia se não houver empates

 mas complete link pode ser fortemente afetado pela decisão...  dendrograma não possui “reversões” !

 Exercício: mostrar isso através de um exemplo


 Além disso, eles são invariantes a qualquer
transformação monótona da matriz de proximidades
 ou seja, que não altera a ordem relativa dos elementos
53 54

Observações Observações
 O liberalismo de single linkage e o conservadorismo de  Outras Motivações para o Estudo das
complete linkage ficam evidentes nos grafos de limiar: Relações com Grafos:
 single linkage exige apenas que cada componente seja conexa e  É possível modificar o algoritmo para tentar encontrar
que ambas se tornem conexas após a união um meio termo entre liberalismo e conservadorismo
 para m objetos, é preciso apenas m – 1 arestas...
 Por exemplo, exigindo (q, r)-conectividade:
 complete linkage exige que cada componente seja totalmente  todos os vértices de um grupo devem poder alcançar qualquer outro
conexa (completa) e que a união também seja por um caminho envolvendo apenas arestas com dissimilaridade ≤ r

 para m objetos, demanda m*(m – 1)/2 arestas...  todos os vértices de um grupo devem ser adjacentes a pelo menos q
outros através de arestas com dissimilaridade ≤ r
 a aresta referente aos 2 objetos mais distantes é só a última!

55 56
Observações
 Outras Motivações para o Estudo das
Referências
Relações com Grafos (cont.):
 Jain, A. K. and Dubes, R. C., Algorithms for
 À parte de questões computacionais e outras questões Clustering Data, Prentice Hall, 1988
de cunho prático, os princípios fundamentais por trás
 Everitt, B. S., Landau, S., and Leese, M., Cluster
das relações entre clustering e grafos são importantes
Analysis, Arnold, 4th Edition, 2001.
 medidas de conectividade, p. ex., podem definir inter-relacionamentos
indiretos entre objetos de um grupo, ao invés de similaridade explícita  Tan, P.-N., Steinbach, M., and Kumar, V.,
Introduction to Data Mining, Addison-Wesley, 2006
 Alguns algoritmos modernos de agrupamento de dados
são baseados em grafos !

57
58

Você também pode gostar