Post on 16-Jan-2016
description
Formação de agrupamentos: conceitos básicos e algoritmos
prof. Luis Otavio Alvares
INE/UFSC
Parte desta apresentação é baseada em material do livro
Introduction to Data Mining de Tan, Steinbach, Kumar
e de material do prof. José Leomar Todesco (UFSC)
Prof. Luis Otavio Alvares 2
Conceitos
O problema de Clustering é descrito como: recebido
um conjunto de dados (de objetos), tentar agrupá-
los de forma que os elementos que compõem
cada grupo sejam mais parecidos entre si do que
parecidos com os elementos dos outros grupos.
Em resumo, é colocar os iguais (ou quase iguais)
juntos num mesmo grupo e os desiguais em
grupos distintos.
2
Dado um conjunto de objetos, colocar os objetos em grupos baseados na similaridade entre eles
Inerentemente é um problema não definido claramente
Como agrupar os animais seguintes?
O que é formação de agrupamentos (clustering)?
Adaptado de material de Marcílio C. P. de Souto - DIMAp/UFRN
Dado um conjunto de objetos, colocar os objetos em grupos baseados na similaridade entre eles
Inerentemente é um problema não definido claramente
Como agrupar os animais seguintes?
Com bicoCom bico
Sem bicoSem bico
O que é formação de agrupamentos (clustering)?
Adaptado de material de Marcílio C. P. de Souto - DIMAp/UFRN
Dado um conjunto de objetos, colocar os objetos em grupos baseados na similaridade entre eles
Inerentemente é um problema não definido claramente
Como agrupar os animais seguintes?
TerraTerraÁguaÁgua
O que é formação de agrupamentos (clustering)?
Adaptado de material de Marcílio C. P. de Souto - DIMAp/UFRN
Dado um conjunto de objetos, colocar os objetos em grupos baseados na similaridade entre eles
Inerentemente é um problema não definido claramente
Como agrupar os animais seguintes?
AveAve
MamíferoMamífero
O que é formação de agrupamentos (clustering)?
Adaptado de material de Marcílio C. P. de Souto - DIMAp/UFRN
O que é formação de agrupamentos (clustering)?
Dado um conjunto de objetos, colocar os objetos em grupos baseados na similaridade entre eles
Distâncias entre cluster
são maximizadas
Distâncias intra-cluster
são minimizadas
Aplicações de clustering
Entendimento– Agrupar documentos
relacionados, agrupar proteínas com funcionalidades similares, agrupar ações com as mesmas flutuações de preço
Sumarização– Reduzir o tamanho de
grandes conjuntos de dados
Discovered Clusters Industry Group
1 Applied-Matl-DOWN,Bay-Network-Down,3-COM-DOWN,
Cabletron-Sys-DOWN,CISCO-DOWN,HP-DOWN, DSC-Comm-DOWN,INTEL-DOWN,LSI-Logic-DOWN,
Micron-Tech-DOWN,Texas-Inst-Down,Tellabs-Inc-Down, Natl-Semiconduct-DOWN,Oracl-DOWN,SGI-DOWN,
Sun-DOWN
Technology1-DOWN
2 Apple-Comp-DOWN,Autodesk-DOWN,DEC-DOWN,
ADV-Micro-Device-DOWN,Andrew-Corp-DOWN, Computer-Assoc-DOWN,Circuit-City-DOWN,
Compaq-DOWN, EMC-Corp-DOWN, Gen-Inst-DOWN, Motorola-DOWN,Microsoft-DOWN,Scientific-Atl-DOWN
Technology2-DOWN
3 Fannie-Mae-DOWN,Fed-Home-Loan-DOWN, MBNA-Corp-DOWN,Morgan-Stanley-DOWN
Financial-DOWN
4 Baker-Hughes-UP,Dresser-Inds-UP,Halliburton-HLD-UP,
Louisiana-Land-UP,Phillips-Petro-UP,Unocal-UP, Schlumberger-UP
Oil-UP
Agrupando a precipitação na Austrália
A noção de cluster pode ser ambígua
Quantos clusters?
Quatro Clusters Dois Clusters
Seis Clusters
Prof. Luis Otavio Alvares 10
Encontrar o melhor agrupamento para um conjunto de objetos não é uma tarefa simples, a não ser que n (número de objetos) e k (número de clusters) sejam extremamente pequenos, visto que o número de partições distintas em que podemos dividir n objetos em k clusters é aproximadamente
kn/k! Ex. k=2 e n=5 então são 16 formas de dividir 5
elementos em 2 grupos.
Dificuldades
10
Para agrupar 25 objetos em 5 grupos, existem 2.436.684.974.110.751 maneiras possíveis.
E se o número de clusters é desconhecido, precisamos somar todas as partições possíveis para cada número de clusters entre 2 e 5 (desconsiderando um só cluster).
Dificuldades
11
Porque a efetividade dos algoritmos de Clustering é um
problema:
1. Quase todos os algoritmos de Clustering requerem
valores para os parâmetros de entrada que são
difíceis de determinar, especialmente para conjuntos
de dados do mundo real contendo objetos com
muitos atributos.
Dificuldades
12
2. Os algoritmos são muito sensíveis a estes valores de
parâmetros, freqüentemente produzindo partições
muito diferentes do conjunto de dados mesmo para
ajustes de parâmetros significativamente pouco
diferentes.
3. Conjuntos de dados reais de alta dimensão (muitos
atributos) têm uma distribuição muito ampla o que
dificulta a análise.
Dificuldades
13
Medidas de Similaridade
As medidas de similaridade fornecem valores numéricos que expressam a “distância” entre dois objetos.
Quanto menor o valor desta “distância”, mais semelhantes serão os objetos, e tenderão a ficar no mesmo cluster.
Quanto maior a “distância”, menos similares serão os objetos e, em conseqüência, eles deverão estar em grupos distintos.
14
Prof. Luis Otavio Alvares 15
Uma função de distância deve ser tal que:
• não assuma valores negativos (o menor valor é 0);
• ser simétrica (a distância do objeto i ao j tem que ser igual à distância do objeto j ao i);
• forneça o valor 0 quando calculada a distância do objeto a si mesmo ou quando dois objetos são idênticos;
• respeite a desigualdade triangular, (dados 3 objetos, a distância entre dois deles tem que ser menor ou igual a soma das distâncias entre esses dois objetos e o terceiro).
Medidas de Similaridade
Prof. Luis Otavio Alvares 16
Medidas de Similaridade Distância Euclidiana
City block (Manhattan, taxicab, L1 norm, Hamming)
– Um exemplo comum é a distância de Hamming, que é o número de bits que é diferente entre dois vetores binários
2222
211 )(...)()(),( pp yxyxyxyxd
pp yxyxyxyxd ...),( 2211
Prof. Luis Otavio Alvares 17
Métrica de Canberra
coeficiente de CzeKanowski
p
i ii
ii
yx
yxyxd
1
,
p
iii
p
iii
yx
yxyxd
1
1
,min21,
17
Não há uma medida de similaridade que sirva para todos os tipos de variáveis que podem existir numa base de dados.
Variáveis numéricas:A medida que é normalmente usada para
computar as dissimilaridades de objetos descritos por variáveis numéricas é a Distancia Euclidiana
A normalização faz com que todas as variáveis tenham um peso igual. A normalização deve ser efetuada para todos os atributos.
Medidas de Similaridade
18
Medidas de Similaridade
19
Prof. Luis Otavio Alvares 20
Exemplos para strings:
Cores = {Branco, Amarelo, Vermelho, Marrom, Preto}x1 = Brancoy1 = Amarelo
0, se a1 = a2 d(x1,y1) =
1, se a1 a2
Opção1: medida binária de similaridade
Medidas de Similaridade
Opção2: transformar o string em um valor numérico (mais usado quando há ordem entre os valores nominais)
E usar a distância Euclidiana
Vermelho PretoMarromAmarelo
0,25 0,5 0,75 1
Branco
0
Medidas de Similaridade
Prof. Luis Otavio Alvares 22
Principais abordagens de Clustering
Particionamento (K-médias e variantes)– Divide os pontos (dados) em conjuntos disjuntos (clusters) tal que cada
ponto pertence a um único cluster
Hierárquica– Um conjunto de clusters aninhados organizados como uma árvore
Baseadas em densidade– Encontra clusters baseado na densidade de regiões
Baseadas em grade (Grid-based)– Encontra clusters baseado no número de pontos em cada célula
K-médias (K-means)
Abordagem por particionamento Cada cluster está associado a um centróide (ponto central) Cada ponto é associado ao cluster cujo centróide está mais próximo Número de clusters, K, precisa ser especificado O algoritmo básico é bem simples:
Prof. Luis Otavio Alvares 24
K-médias: exemplo do funcionamento
Prof. Luis Otavio Alvares 25
K-médias: partição
Diagrama de Voronoi – poliedros convexos em torno dos centróides
Prof. Luis Otavio Alvares 26
k-means (Exemplo)
VariáveisItem x1 x2A 5 3B -1 1C 1 -2D -3 -2
Usar k=2 (parâmetro informado pelo usuário)
Dataset a ser clusterizado
Prof. Luis Otavio Alvares 27
Passo 1
Determina-se os centróides iniciais (normalmente pega-se ao acaso k pontos (registros): por exemplo os registros A e B),isto é:
C1(1) = (5,3)C2(1) = (-1,1)
k-means (Exemplo)
Prof. Luis Otavio Alvares 28
Passo 2:
Calcula-se as distâncias de cada ponto aos centróides, para definir os cluster iniciais.
k-means (Exemplo)
Os clusters são:
C1 = {A}C2 = {B,C,D}
Pois C e D estão mais perto de B do que de A
Prof. Luis Otavio Alvares 29
k-means (Exemplo)
Passo 3: cálculo dos novos centróides
C1(2)= (5,3)
C2(2)=
Prof. Luis Otavio Alvares 30
k-means (Exemplo)
Passo 4: novo cálculo dos clusters
Os clusters são:
C1 = {A}C2 = {B,C,D}
Pois: •A está mais perto de C12 do que de C22
•B, C e D estão mais perto de C22 do que de C12
Como os elementos dos clusters não se alteraram, os centróides vão ser os mesmos e com isso o algoritmo para.
Prof. Luis Otavio Alvares 31
Outros exemplos com o k-médias
Dois conjuntos de clusters diferentes gerados pelo K-médias
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Particionamento sub-ótimo
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Particionamento ótimo
Pontos originais
Importância de escolher os centróides iniciais
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 3
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 6
Importância de escolher os centróides iniciais
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 3
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 6
Avaliando os clusters gerados
A medida mais comum é a soma dos erros quadrados (Sum of Squared Error - SSE)
Para cada ponto, o erro é a distância ao centróide mais próximo
x é um ponto de dados no cluster Ci e mi é o ponto representativo (centróide) do cluster Ci
Uma maneira fácil de reduzir o SSE é aumentar K, o número de clusters Um bom particionamento com um K pequeno pode ter um SSE menor do que um mau particionamento com um K maior
K
i Cxi
i
xmdistSSE1
2 ),(
Importância da escolha dos centróides iniciais
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 3
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 3
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
xy
Iteration 5
Importância da escolha dos centróides iniciais
Exemplo com 10 clusters
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
yIteration 1
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
yIteration 2
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
yIteration 3
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
yIteration 4
Iniciando com dois centróides em um cluster para cada par de clusters
Exemplo com 10 clusters
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 1
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 2
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 3
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 4
Iniciando com dois centróides em um cluster para cada par de clusters
Exemplo com 10 clusters
Iniciando com um par de clusters tendo 3 centróides iniciais e outro par com somente um.
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 1
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 2
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 3
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 4
Exemplo com 10 clusters
Iniciando com um par de clusters tendo 3 centróides iniciais e outro par com somente um.
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
yIteration 1
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 2
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 3
0 5 10 15 20
-6
-4
-2
0
2
4
6
8
x
y
Iteration 4
Pré e Pós-processamento
Pré-processamento– Normalize os dados
– Elimine exceções (outliers)
Pós-processamento– Elimine clusters pequenos que podem representar
outliers
– Divida clusters “fracos” i.e., clusters com SSE relativamente alto
– Junte clusters que estão “perto” e que tenham SSE relativamente baixo
Limitações do K-médias
K-médias tem problemas quando os clusters têm– Tamanhos diferentes
– Densidades diferentes
– Formato não esférico
K-médias tem problemas quando os dados contêm outliers.
Limitações do K-médias: tamanhos diferentes
Pontos originais K-médias (3 Clusters)
Limitações do K-médias: densidades diferentes
pontos originais K-médias (3 Clusters)
Limitações do K-médias: formatos não esféricos
Pontos originais K-médias (2 Clusters)
Superando as limitações do K-médias
Pontos originais Clusters do K-médias
Uma solução é usar muitos clusters.Encontra partes de clusters, mas que precisam ser unidos.
Superando as limitações do K-médias
Pontos originais clusters do K-médias
Superando as limitações do K-médias
Pontos originais clusters do K-médias
O algoritmo K-médias é sensível a ruídos visto que um objeto com um valor extremamente grande pode, distorcer a distribuição de dados.
Para diminuir essa sensibilidade, no algoritmo K- medoids, ao invés de utilizar o valor médio dos objetos em um cluster como um ponto referência, a mediana é utilizada, que é o objeto mais centralmente localizado em um cluster.
Prof. Luis Otavio Alvares 51
Métodos de K-medoids (K-medianas) Em vez de médias (centróides), usa objetos
representativos chamados medoids
PAM (Partitioning Around Medoids, 1987) – inicia com um conjunto de medoids e iterativamente substitui um dos medoids por um dos pontos não-medoids se ele melhora a distância total do particionamento resultante
CLARA (Clustering Large Applications, 1990) – It draws multiple samples of the data set, applies PAM on each sample, and gives the best clustering as the output
CLARANS (“Randomized “CLARA, 1994) – mais eficiente e escalável que CLARA e PAM
Prof. Luis Otavio Alvares 52
Exercício
+
+