40
Clustering (k-means, SOM e hierárquicos) André Tavares da Silva [email protected] (Capítulo 10 de Duda e Hart)

(k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Embed Size (px)

Citation preview

Page 1: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Clustering(k-means, SOM e hierárquicos)

André Tavares da [email protected]

(Capítulo 10 de Duda e Hart)

Page 2: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Roteiro

• Clustering– Introdução e tipos

• Agrupamentos hierárquicos– AGNES, DIANA e Dendogram

• K-means (k-médias)

• Modelo Mistura de Gaussianas e EM

• SOM (Self-Organizing Maps)

Page 3: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Clustering

• Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering) são utilizados para classificação.

• Clustering:– Dado um conjunto de objetos, colocar os mesmos em

grupos baseados na similaridade entre eles

– Usado para encontrar padrões inesperados nos dados

– É um problema inerentemente não definido claramente

Page 4: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Clustering

Como agrupar esses elementos?

Page 5: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Família Simpson Masculino Feminino

Possibilidades:Possibilidades:

Empregados da Escola

Page 6: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Tipos de clustering

• Algoritmos de Particionamento: separam um espaço de acordo com algum critério(k-means, SOM,...).

• Algoritmos hierárquicos: Além da partição espacial, também podem conter subgrupos,ou seja, alguns grupos podem ainda ser subdivididos (multidão→pessoa→mão→dedos→...).

Page 7: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Agrupamento hierárquico

• Usam matriz de distância como critério de agrupamento. Necessita de um critério de parada para sair da recursão.

Page 8: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

• AGNES (Agglomerative Nesting)– Inicialmente cada objeto é um cluster (folha da

árvore);

– Os nós são agrupados pela menor distância (similaridade) recursivamente;

– Os critérios de parada definidos pelo usuário são: distância mínima, distância máxima, distância média e distância central.

– No topo da árvore (raiz), todos os elementos estarão em um mesmo cluster.

Agrupamento hierárquico

Page 9: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

• DIANA (Divisive Analysis)– Inverso do AGNES

– Inicia com a raiz contendo todos os objetos;

– recursivamente divide os agrupamentos;– Os nós folhas conterão apenas um objeto.

Agrupamento hierárquico

0

1

2

3

4

5

6

7

8

9

10

0 1 2 3 4 5 6 7 8 9 10

0

1

2

3

4

5

6

7

8

9

10

0 1 2 3 4 5 6 7 8 9 10

0

1

2

3

4

5

6

7

8

9

10

0 1 2 3 4 5 6 7 8 9 10

Page 10: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

• Dendrogram– Os objetos (dados,imagens,...) são decompostos em

vários níveis de particionamento (árvores de clusters), chamados de dendrograma.

– Um agrupamento é obtido cortando o dendrogram em um nível preestabelecido

– Em seguida, os componentes ligados formam um novo aglomerado.

– Muito usado na Biologia Computacional (ver imagem “hominidae”).

Agrupamento hierárquico

Page 11: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Algoritmo k-means

1. Decidir um valor para k.

2. Inicializa os k centros de clusters (protótipos) aleatoriamente (ou algum critério predefinido).

3. Decidir a classe (rótulo) dos objetos em Z de acordo com o protótipo mais próximo.

4. Estimar novamente a posição dos protótipos pelo centro do agrupamento, assumindo que a classificação está correta.

5. Enquanto os objetos mudarem de rótulo, volta ao passo 3.

Page 12: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Exemplo do algoritmo k-means

0

1

2

3

4

5

6

7

8

9

10

0 1 2 3 4 5 6 7 8 9 10

0

1

2

3

4

5

6

7

8

9

10

0 1 2 3 4 5 6 7 8 9 10

0

1

2

3

4

5

6

7

8

9

10

0 1 2 3 4 5 6 7 8 9 10

0

1

2

3

4

5

6

7

8

9

10

0 1 2 3 4 5 6 7 8 9 10

Page 13: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Considerações sobre k-means

• Relativamente eficiente O(tkn), onde n é o número de objetos em Z, k é o número de clusters e t é o número de iterações.

• Frequentemente cai em um mínimo local. Métodos como simulated annealing e algoritmos genéticos são usados para encontrar um mínimo melhor (melhor agrupamento).

Page 14: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Considerações sobre k-means

• Aplicado somente a dados numéricos.

• Sensível a dados ruidosos e outliers.

• Não adequado para descobrir agrupamentos em formas não convexas (distribuições não esféricas).

• É preciso definir o valor de k a priori.

Page 15: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Considerações sobre k-means

• Aplicado somente a dados numéricos.

• Sensível a dados ruidosos e outliers.

• Não adequado para descobrir agrupamentos em formas não convexas (distribuições não esféricas).

• É preciso definir o valor de k a priori.

Testar diferentes valores de k e testar qualgera maior “separabilidade” entre classese/ou maior “compactabilidade” interclasses.

Page 16: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Considerações sobre k-means

• Aplicado somente a dados numéricos.

• Sensível a dados ruidosos e outliers.

• Não adequado para descobrir agrupamentos em formas não convexas (distribuições não esféricas).

• É preciso definir o valor de k a priori.

Page 17: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Modelo de Misturas

• Caso o modelo seja conhecido, assume-se que os dados sejam gerados usando o seguinte procedimento:

• 1. Pegar um dos k componentes de acordo com P(Z

k). Este procedimento seleciona uma classe

rotulada Zk.

• 2. Gerar uma nuvem de pontos pela amostragem de p(x|Z

k).

Page 18: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Modelo de Misturas

• Resulta na distribuição de probabilidade de um ponto p(x):

onde p(x|Zk) é qualquer distribuição (gaussiana,

poisson, exponencial,...).

p( x)=∑k =1

K

P (Z k ) p ( x∣Z k )

Page 19: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Modelo Mistura de Gaussianas (MMG)• O modelo mais comum de modelo de mistura é

o de gaussianas – MMG.

• Modelo do cluster: distribuição normal (média, covariância).

• Assume-se que as medidas sejam iguais para todos os clusters.

• Probabilidade máxima: média é a de todas as amostras.

Page 20: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Modelo Mistura de Gaussianas (MMG)• Mas:

– quais pontos pertencem a uma mesma amostra?– para estimar a probabilidade é preciso de um

modelo (problema do ovo e da galinha).– para resolver o problema, podemos usar o

algoritmo EM (Expectation Maximization), que é capaz de encontrar um ótimo local da função de máxima verossimilhança de uma mistura de Gaussianas.

Page 21: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Algoritmo EM• O EM possui duas etapas iterativas:

• Expectation Step: Nessa etapa ele calcula a probabilidade de cada ponto pertencer a cada Gaussiana. Além disso, é calculada uma nova estimativa da função de verossimilhança utilizando a equação:

j

jijkikki cdwcdwcdP ) |Pr() |Pr() (

N

cdw i

ki

k

) Pr(

Page 22: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Algoritmo EM

• Maximation step: Nessa etapa, as componentes da mistura são maximizadas (estimativa dos parâmetros do modelo)

m

ik

ji

kiik cdP

cdPd

m 1 ) (

) (1

Page 23: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)
Page 24: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)
Page 25: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Iteração 1

Ponto médio dos clusters são estimados aleatoriamente

Page 26: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Iteração 2

Page 27: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Iteração 5

Page 28: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Iteração 25

Page 29: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Considerações sobre EM

• Parâmetro k é definido a priori.

• Converge para um mínimo local.

• k-means é um caso especial(hiperesferas em vez de hiperelipsóides).

Page 30: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

SOM(Self-Organizing Maps - Mapas Auto-Organizáves)

• Assim como k-means, o número de clusters deve ser definido a priori;

• Diferente do k-means, no SOM há uma ordenação topológica dos clusters.

Page 31: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

SOM

Definir número de clusters: 6

Page 32: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

SOM

Posicionar uma grade com seis nós

Page 33: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

SOM

P

Um padrão P é selecionado aleatoriamente

Page 34: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

SOM

NP

O nó NP mais próximo a P é selecionado

P

Page 35: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

SOM

A posição do nó NP é ajustada

P

NP

Page 36: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

SOM

O padrão Q é selecionado aleatoriamente

Q

NQ

Page 37: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

SOM

A posição do nó NQ é ajustada

Q

NQ

Page 38: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

SOM

Repetir até que o critério de parada seja satisfeito

Page 39: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Considerações sobre SOM

• Número k de clusters é definido a priori

• Não-determinístico – inicializações aleatórias dos pesos

• Define a ordenação topológica dos aglomerados

• Resultado depende de muitos parâmetros: inicializações de pesos, taxa de aprendizado, taxa de vizinha, número de iterações...

Page 40: (k-means, SOM e hierárquicos) · Clustering •Nos casos onde não são conhecidos os rótulos das classes ou mesmo a quantidade de classes, algoritmos de agrupamento (clustering)

Outros modelos

• Uso de Análise de Componentes Principais

• Agrupamento dinâmico– Variação do k-means (k-medoids,...)

• Algoritmo de agrupamento baseado em árvore geradadora mínima (minimal Spanning trees)

• Self-Organizing Tree algorithm

• Mapas de Kohonen

• Nearest Neighbor Clustering (não confundir com Knn)