Rodrigo RochaAnálise de Clustering (tópicos adicionais) 11/11/20081/34 Análise de Clustering:...
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