Rodrigo RochaAnálise de Clustering (tópicos adicionais) 11/11/20081/34 Análise de Clustering:...

Post on 18-Apr-2015

106 views 1 download

Transcript of Rodrigo RochaAnálise de Clustering (tópicos adicionais) 11/11/20081/34 Análise de Clustering:...

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 1/34

Análise de Clustering:Tópicos adicionais

Rodrigo Rocha Gomes e Souza

Aula de Mineração de Dados (pós-graduação)Universidade Federal de Campina Grande, 11/11/2008

Figuras tiradas do livro “Introduction to Data Mining”, de Tan, Steinbach e Kumar

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 2/34

Sumário

Algoritmos baseados em protótipos– Fuzzy c-means– EM (Expectation Maximization)

Algoritmos baseados em densidades– Grid-based– DENCLUE

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 3/34

Algoritmos baseados em grafos– Sparsification (técnica)– Chameleon– SNN (Shared Nearest Neighbor - técnica)– Jarvis-Patrick– SNN Density

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 4/34

Algoritmos baseados em protótipos

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 5/34

K-means (revisão)

Não lida bem com clusters de diferentes formas, tamanhos e densidades

É um algoritmo rápido

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 6/34

Fuzzy c-means: Introdução

Motivação– Nem sempre os dados estão bem separados– Atribuição de um elemento a um cluster pode

ser quase arbitrária Solução

– Clusters são conjuntos nebulosos: x

i pertence a C

j com grau w

ij (entre 0 e 1)

– wi1 + w

i2 + ... + w

ik = 1

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 7/34

Fuzzy c-means: Algoritmo

Atribua um valor a cada wij

repita– Calcule o centróide de cada cluster– Recalcule cada w

ij até os centróides se estabilizarem

c j =∑i=1

m

w ij2 xi

∑i=1

m

w ij2

w ij =1/dist x i , c j

2

∑q=1

k

1/dist x i , cq2

Para obter um clustering, atribua cada elemento ao cluster para o qual seu grau de pertinência é maior

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 8/34

Fuzzy c-means: Exemplo

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 9/34

EM (Expectation Maximization)

Motivação: dados seguem distribuições estatísticas conhecidas

Generalização do k-means e do fuzzy c-means

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 10/34

EM: Maximum Likelihood Estimation

Likelihood: até que ponto determinada distribuição estatística explica os dados?

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 11/34

EM: Algoritmo

Cada cluster é representado por uma distribuição estatística com determinados parâmetros

Algoritmo– Selecione um conjunto inicial de parâmetros– repita

Para cada objeto xi, calcule a probabilidade de x

i

pertencer a cada distribuição.Ache os parâmetros que maximizam o likelihood

– até os parâmetros se estabilizarem

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 12/34

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 13/34

densidades e tamanhos diferentes

formas elípticas

EM

K-means

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 14/34

EM: Weka=== Run information ===

Scheme: weka.clusterers.EM -I 100 -N 3 -M 1.0E-6 -S 100Relation: irisInstances: 150Attributes: 5 sepallength sepalwidth petallength petalwidth classTest mode: evaluate on training data

=== Model and evaluation on training set ===

EM==

Number of clusters: 3

Fonte: Wikipedia

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 15/34

ClusterAttribute 0 1 2 (0.34) (0.33) (0.32)============================================sepallength mean 5.9188 5.006 6.6181 std. dev. 0.5168 0.3489 0.6001

sepalwidth mean 2.7577 3.418 2.9906 std. dev. 0.3133 0.3772 0.3064

petallength mean 4.268 1.464 5.5681 std. dev. 0.4667 0.1718 0.5369

petalwidth mean 1.3303 0.244 2.0348 std. dev. 0.1968 0.1061 0.2665

class Iris-setosa 1 51 1 Iris-versicolor 50.5437 1 1.4563 Iris-virginica 2.3846 1 49.6154 [total] 53.9283 53 52.0717

Clustered Instances

0 52 ( 35%)1 50 ( 33%)2 48 ( 32%)

Log likelihood: -2.21075

likelihood ≈ 0,11

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 16/34

Algoritmos baseados em densidades

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 17/34

DBSCAN (revisão)

Lida bem com clusters de diferentes tamanhos e formas

Não lida bem com clusters de diferentes densidades

1 2

3

5

6

4

7

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 18/34

Grid-based

Motivação: eficiência Desvantagem: sensível a parâmetros (limiar de

densidade, tamanho de cada célula)

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 19/34

DENCLUE

Generalização do DBSCAN

Maneira mais precisa de calcular densidades

Fonte: Wikipedia

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 20/34

Algoritmos baseados em grafos

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 21/34

Clustering Hierárquico Aglomerativo Matriz de proximidade entre objetos

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 22/34

Clustering Hierárquico Aglomerativo Inicialmente, cada cluster contém um objeto A cada passo, agrupa os dois clusters mais

próximos entre si

Clusters aninhados Dendrograma

3 6 4 1 2 50

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

1

2

3

4

5

6

1

2 5

3

4

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 23/34

Clustering Hierárquico Aglomerativo Proximidade entre clusters?

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 24/34

Sparsification

Variações– Remover arestas com similaridade < limiar– Manter apenas arestas para os k vizinhos mais

próximos de cada nó Vantagens: menos dados a processar; é possível

usar algoritmos de particionamento de grafos

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 25/34

Chameleon

Motivação: modelo local (dinâmico) de cluster

Closeness schemes will merge (a) and (b)

(a)

(b)

(c)

(d)

Average connectivity schemes will merge (c) and (d)

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 26/34

Chameleon: Conceitos

Relative closeness (RC) Relative interconnectivity (RI)

Proximidade entre dois clusters:

RI(Ci, C

j) * RC(C

i, C

j)a

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 27/34

Chameleon: Algoritmo

Construa o grafo dos k vizinhos mais próximos Particione o grafo (algoritmo METIS) repita

– Agrupe os clusters de acordo com RI e RC até não ser possível agrupar clusters

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 28/34

Chameleon: Resultados

Lida bem com diferentes formas, tamanhos e densidades

Assume que o particionamento do grafo produz subclusters

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 29/34

SNN (Shared Nearest Neighbors)

Motivação: dificuldade em tratar alta dimensionalidade e densidades diferentes

“Dois pontos similares aos mesmos pontos são similares entre si” (mesmo se a similaridade original era pequena)

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 30/34

SNN: Algoritmo

Compute o grafo dos k vizinhos mais próximos Se dois pontos x, y não estão ligados,

similaridade(x, y) = 0 Caso contrário, similaridade(x, y) = número de

vizinhos comuns entre x e y

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 31/34

Jarvis-Patrick

Algoritmo– Compute o grafo de similaridade SNN– Remova as arestas com similaridade < limiar– Encontre os componentes conexos do grafo

resultante

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 32/34

Jarvis-Patrick: Resultados

Lida bem com clusters de diferentes densidades, tamanhos e formas

Muito sensível ao parâmetro limiar

limiar = L limiar = L + 1

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 33/34

SNN density

Algoritmo– Compute o grafo de similaridade SNN– Aplique o DBSCAN (Eps, MinPts)

Lida bem com diferentes tamanhos, densidades e formas

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 34/34

SNN density

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 35/34

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 36/34

CURE

Cada cluster tem múltiplos pontos representativos Escolhe pontos mais distantes uns dos outros Encolhe os pontos em direção ao centróide Usa amostragem e particionamento para tratar de

forma eficiente grandes volumes de dados

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 37/34

CURE: Algoritmo

Selecione uma amostra aleatória dos dados Particione a amostra em partições de tamanho

igual Agrupe os pontos de cada partição usando o AHC

de CURE Use o AHC de CURE para agrupar os clusters do

passo anterior até restarem apenas K clusters Atribua cada ponto (de fora da amostra) ao cluster

mais próximo

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 38/34

CURE: Resultados

Não lida bem com diferentes densidades Lida bem com outliers

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 39/34

Subspace (CLIQUE)

Motivação: clusters em subespaços CLIQUE: de Agrawal, baseado no Apriori Vantagens e desvantagens do Apriori

– lento

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 40/34

SOM – Mapas auto-organizáveis

Motivação: redução de dimensões, visualização Motivação: vizinhança entre clusters Desvantagem:

– convergência não é garantida– lento

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 41/34

Escalabilidade

Amostragem Particionamento ...

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 42/34

Minimum Spanning TreeOPOSSUM

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 43/34

Características de dados

Alta “dimensionalidade” (procurar termo na álgebra linear)

Muitas instâncias Dados esparsos. Booleano vs. inteiro Outliers ...

Remover este slide?

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 44/34

Sumário

Características de dados e clusters Algoritmos e técnicas

– protótipo– densidade– grafos

Algoritmos escaláveis Considerações finais

Rodrigo Rocha Análise de Clustering (tópicos adicionais) 11/11/2008 45/34

Características de clusters

Forma Diferentes tamanhos Diferentes densidades