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
45
Embed
Rodrigo RochaAnálise de Clustering (tópicos adicionais) 11/11/20081/34 Análise de Clustering: Tópicos adicionais Rodrigo Rocha Gomes e Souza Aula de Mineração.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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